Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Free Pascal, Pascal ABC и другие _ Code::Blocks и OpenCV

Автор: Игорь 14.02.2012 0:20

Вобщем, пытаюсь пользоваться opencv, но не получается. Проблема вроде-как в линковке т.к. выползает очень много "underfined reference to".

Вот как настраивал (компилятор, кстати, MinGW):

1) Создал глобальную переменную cv, где:

base C:\CV\opencv
include $(#cv)\build\include
lib $(#cv)\build\x86\mingw\lib

2) Настроил компилятор:

Comp. and debug. --> Search dir. --> Compiler добавил $(#cv.include)
Comp. and debug. --> Search dir. --> Linker добавил $(#cv.lib)

Код (на C):

Спойлер (Показать/Скрыть)


Вывод:
Спойлер (Показать/Скрыть)


Наверное опять что-то упустил.
В линуксе всё это как-то поще было по-моему.... Избаловал он меня....

Автор: IUnknown 14.02.2012 0:58

OpenCV 2.3.1, установлена в D:\opencv\opencv

+
Прикрепленное изображение

+ в Project->Build options -> Linker settings добавлены библиотеки
mingw/lib/libopencv_highgui231.dll.a
mingw/lib/libopencv_core231.dll.a

= результат на скрине... smile.gif

Автор: Игорь 14.02.2012 20:23

Что-бы хоть как-то скомпилировать пришлось, помимо твоих двух библиотек, добавил C:\CV\opencv\build\x86\mingw\lib\libopencv_imgproc231.dll.a , теперь куча сообщений типа оно объявлено, но не используется и при запуске жалуется, что libopencv_core231.dll не найден. Может что-то в других настройках?

Автор: IUnknown 14.02.2012 23:39

Цитата
теперь куча сообщений типа оно объявлено, но не используется
Это предупреждения, ничего страшного. Хотя и странно. У меня подобного нет. Скорее всего - потому что я использую g++, а не gcc, эти предупреждения появляются только в случае gcc smile.gif

Цитата
и при запуске жалуется, что libopencv_core231.dll не найден
А это... Ты в переменную окружения PATH прописал путь к папке с DLL-ками? Я прописывал. И при запуске простейшей программы:
#include <stdio.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>

int main(int argc, char* argv[])
{
IplImage* img = cvLoadImage("F:\\test\\pic.jpg", CV_LOAD_IMAGE_UNCHANGED);
if (!img) {
printf("Error: Could not open the image file! \n");
exit(1);
}

cvSmooth(img, img, CV_BLUR);
cvSaveImage("F:\\test\\blurred.jpg", img);

cvReleaseImage(&img);
return 0;
}

в папке наблюдаю замутненное изображение.

Автор: Игорь 15.02.2012 22:35

Добавил пути к cv'шным и mingw'шным (потребовал ещё и libstdc++-6.dll) dll-кам. Стало запускаться, зато вылезает окошко: OpenCV - обнаружена ошибка (после появления окна, но до картинки). В доп. сведениях libopencv_highgui231.dll. Может надо указать путь к 3rdparty?

Автор: IUnknown 16.02.2012 14:46

Что-то меня терзают смутные сомнения, что ты не пересобрал библиотеку перед тем, как ее использовать. А собирать ее надо тем же самым компилятором, которым будешь компилировать приложение: http://opencv.willowgarage.com/wiki/InstallGuide

Цитата
Windows: <...> It is generally recommended to download the source .zip package and rebuild OpenCV from scratch using the same compiler that you use to build your applications.
Сделал это?

Автор: Игорь 16.02.2012 17:14

Неа... Думал можно просто скачать и всё, а собирать для каких-то особых случаев. Сегодня, может, попробую.

Автор: Игорь 16.02.2012 23:06

Наконец-то всё работает! По крайней мере, мне так кажется...

Цитата
Windows: <...> It is generally recommended to download the source .zip package and rebuild OpenCV from scratch using the same compiler that you use to build your applications.


В последней версии (2.3.1) этого .zip уже нет, всё есть в superpack (это я для тех, кто будет в подобной ситуации).

Ну а тебе, IUnknown, спасибо, в очередной раз. Хотя, как всегда виноват был я сам.