Я использую OpenCV 2.4.10 с Eclipse C ++ с MinGW. Эта версия opencv имеет библиотеки только для Visual C, поэтому я связал эти библиотеки в MinGW (eclipse). Я попытался запустить простой код для загрузки и отображения изображения:
#include<iostream>
#include<cv.h>
#include<highgui.h>
using namespace std;
using namespace cv;
int main(){
Mat image = imread("D:/photo1.tif",1);
namedWindow( "Display", WINDOW_AUTOSIZE );
imshow( "Display", image );
return 0;
}
Но при построении он показывает следующие ошибки:
undefined reference to `cv::imread(std::string const&, int)'
undefined reference to `cv::namedWindow(std::string const&, int)'
undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'
Я также пытался сделать то же самое с механизмом распознавания текста Tesseract, но там также обнаруживалась та же проблема, то есть неопределенная ссылка на различные функции и классы. Я не знаю, упускаю ли я что-то при компоновке или создании файлов. Поэтому, пожалуйста, помогите. Спасибо
ИМО Ашот ответил почти правильно, но у меня такое чувство, что ты их вообще не строил. Если это так ..
Сборка для MinGW, библиотеки имеют разные ссылки на весь код, и вы не можете компилировать с разными скомпилированными библиотеками
Как вы создали свой код? Если компилятор GCC, вам нужно добавить opencv libs с флагом -l.
Вы можете найти opencv libs с помощью команды — pkg-config opencv —libs (в Linux).
«В этой версии opencv есть только библиотеки для Visual C, поэтому я связал эти библиотеки в MinGW (eclipse)».
нет, это не сработает.
Вы не можете использовать готовые Visual Studio, они предназначены для другого компилятора.
вам придется получить Cmake и строить OpenCV libs с Mingw первым.
Начал работать, сначала собрав библиотеки с CMake, а затем используя их в eclipse.