библиотеки openCV вызывают локальный путь, который не существует - PullRequest
0 голосов
/ 24 сентября 2019

Я делаю простую программу на С ++ с включенной библиотекой openCV.Eclipse IDE распознает команды openCV и расположения библиотек, но когда я пытаюсь построить проект, компилятор выдает внешнюю ошибку, ссылаясь на файл opencv.hpp или core.hpp, вызывающий путь "opencv2 / core.hpp", которого нет в opencvпапка.Я понял, что проблема связана с тем, как вызывается core.hpp, но файлы библиотеки доступны только для чтения.Из того, что я увидел в файле opencv.hpp, эта относительная ссылка "opencv2 / [module] .hpp" относится не только к ядру, но и ко всем другим модулям.На самом деле внутри той папки, в которой установлен openCV, нет никакой папки opencv.

Я попытался переустановить и заново преобразовать openCV с другими аргументами создания, используя другую IDE и включая папки прямого поиска в eclipse.Проблема, по-видимому, заключается в самих файлах или в том, как они могут быть неправильно установлены в системе.Проблема сохраняется как на моей основной машине с Ubuntu, так и на ARMbian orange pi.

Я получаю эту ошибку при попытке включить любую библиотеку openCV, в которой содержится #include "opencv2/[opencv module].hpp"

, в результате компиляциизавершается сообщением об ошибке "/usr/local/include/opencv4/opencv2/opencv.hpp:52:28: фатальная ошибка: opencv2 / core.hpp: нет такого файла или каталога"

edit 1: Опции компилятора GCC c ++ -Iusr/local/include/opencv4/opencv2 -O3 -Wall -c -fmessage-length=0 и опции компоновщика -L/usr/local/lib.Код представляет собой простой displayImage

#include <opencv4/opencv2/opencv.hpp>
#include <opencv4/opencv2/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main( int argc, char** argv )
{
  Mat image;
  image = imread( argv[1], 1 );

  namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
  imshow( "Display Image", image );

  waitKey(0);

  return 0;
}

edit 2: $ pkg-config --libs opencv не видит openCV, установленный в системе, хотя я обязательно запустил make install и ldconfig на пути.Это может быть сигналом о неправильной установке, но это просто примечание, не полностью связанное с основной проблемой.Я попытался переустановить и в разные папки, но это также сохраняется, а также основная проблема

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

очевидно, ответ @sgarizvi был ответом.Мне просто нужно было установить путь включения I/usr/local/include/opencv4, и это сработало.После этого ошибка была исправлена.

Я отвечаю на свой вопрос, чтобы закрыть дело, так как не могу поднять / подтвердить комментарий

0 голосов
/ 25 сентября 2019

В вашем случае, поскольку ваш путь включения равен /usr/local/include/opencv4/opencv2 Замените первые три строки

#include <opencv4/opencv2/opencv.hpp>
#include <opencv4/opencv2/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

на

#include <opencv.hpp>
#include <imgproc.hpp>
#include <highgui.hpp>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...