Использование OpenCV 2.3 с Qt в QtCreator - PullRequest
2 голосов
/ 17 июля 2011

, так как выпуск OpenCV 2.3 наконец вышел, я хотел скомпилировать и установить этот последний выпуск в моей системе. Поскольку я часто работаю с Qt и QtCreator, я, конечно, хотел иметь возможность использовать его в своих проектах Qt. Я уже несколько часов пробовал несколько методов, но всегда получаю ошибки:

Первая попытка: компиляция OpenCV 2.3 с WITH_QT

Сначала я хотел сделать это так же, как я сделал с выпуском 2.2, который работал хорошо для меня. Для этого я следовал этому руководству: http://knowtheabc.wordpress.com/2011/02/25/windows-opencv-and-qt-creator/

  • Скачал исходный код
  • Настроил CMake и сказал ему создавать MInGW Makefiles и указал пути к g++.exe, gcc.exe и qmake.exe в моих путях C: \ Qt ..., проверил WITH_QT и сгенерировал Makefiles для выпуска.
  • Собрал и установил его в оболочку, используя mingw32-make и mingw32-make install

После того, как это было успешно завершено, мне просто нужно было добавить пути к моему файлу ".pro" и я смог создать красивое программное обеспечение, которое использует OpenCV (в то время, когда я использовал версию 2.2). В основном последняя часть описана здесь: http://knowtheabc.wordpress.com/2011/02/25/opencv-in-qt/

Так что я попробовал то же самое с выпуском 2.3, который успешно скомпилирован, как и со старым выпуском. Он даже создает мою примерную программу, но как только я ее запускаю, она снова закрывается и возвращает: -1073741515

Вторая попытка: использование готового суперпакета OpenCV с использованием MinGW

Поскольку первый метод не сработал, я попытался использовать предварительные версии. Хотя они не имеют WITH_QT, я все же хотел попробовать.

Итак, я скачал суперпакет, извлек его и где-то положил. Затем я хотел сделать то же самое, что и раньше, и добавил пути к папке include и dll в мой файл .pro:

INCLUDEPATH+= C:/workspace/opencv/OpenCV2.3/build/include
LIBS+= C:/workspace/opencv/OpenCV2.3/build/x64/mingw/bin/*.dll

В качестве компилятора я использовал MinGW-компилятор, который поставляется с текущим Qt SDK. Но это вылетает при сборке:

C:/workspace/opencv/OpenCV2.3/build/x64/mingw/bin/libopencv_calib3d230.dll: file not recognized: File format not recognized
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\CoinDetector.exe] Error 1
mingw32-make: *** [release] Error 2

Третья попытка: точно так же, как вторая, но с использованием компилятора VC2008

Я попробовал то же самое с компилятором vc2008, который также поставляется с Qt SDK. Поэтому я выбрал компилятор и адаптировал путь в файле ".pro" для использования:

LIBS+= C:/workspace/opencv/OpenCV2.3/build/x64/vc9/bin/*.dll

Но это также дает сбой с ошибкой, что он не может прочитать dll:

C:/workspace/opencv/OpenCV2.3/build/x64/vc9/bin/opencv_calib3d230.dll : fatal error LNK1107: Ungültige oder beschädigte Datei: Lesen bei 0x2F0 nicht möglich.

Так вот мои настройки:

  • Win7 Professional x64
  • Установлен последний Qt SDK (4.7.3)
  • OpenCV 2.3 release

У кого-нибудь есть идеи, что здесь может быть не так? Буду рад любой помощи!

Ответы [ 2 ]

6 голосов
/ 18 июля 2011

Я только что получил свой QT 4.7.3 для работы с OpenCV2.3.К сожалению, мне пришлось установить VC ++ 2008 Express Edition и CDB Debugger от Microsoft (оба бесплатны от Microsoft).Хорошая часть заключается в том, что теперь я могу разрабатывать для Opencv в IDE, VS 2008 и Qt Creator.

Это настройки моего .pro-файла:

INCLUDEPATH += C:/OpenCV2.3/build/include
INCLUDEPATH += C:/OpenCV2.3/build/include/opencv

LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_calib3d230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_contrib230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_core230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_features2d230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_flann230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_highgui230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_imgproc230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_objdetect230.lib
LIBS += C:/OpenCV2.3/build/x86/vc9/lib/opencv_video230.lib

Помните, выберитекомпилятор MSVC в настройках вашего проекта

Я пытался, я не знаю, сколько разных подходов, чтобы заставить его работать с MinGW, но пока не правильный.Я также в Windows 7 64 бит ... но я разрабатываю для 32 бит, я полагаю, что если я использую библиотеки x64, я мог бы получить 64-битные проекты для работы.

Удачи,

Andres

1 голос
/ 23 июля 2011

Очевидный,

Я дошел до ошибки -1073741515 и сегодня.Оказалось, что проблема была связана с DLL-библиотеками Qt, которые у меня были в папке выпуска .... Я все еще использовал версии mingw32, а не версии msvc2008.Поэтому я скопировал dll-файлы msvc2008 в свою папку Release и, наконец, мне удалось запустить мое приложение Qt.

...