Как установить opencv на qt под windows

Обновлено: 08.07.2024

Подключение OpenCV
В линкере и в компоновщике все прописал ,но выдает ошибки ,делаю все в vs 2015: Знаю может не в.

Подключение OpenCV 2.4 в Qt Creator
Кто нибудь может четко обьяснить как настраивать OpenCv в Qt Creator под Win7?

Подключение библиотеки OpenCV
Здравствуйте! Подскажите пожалуйста, как подключить OpenCV - 2.4.6.0 к Microsof Visual Studio C++.

Подключение OpenCV к VS2010
Здравствуйте все, у меня первый проект, более менее серьезный, нужно работать с OpenCV, но как её.

И зачем здесь Qt? Ты же ничего не используешь. Делай обычное приложение. nmcf, Здесь - нет. Есть приложение в среде Qt. Необходимо доработать. Сейчас я пытаюсь подключить OpenCV и для этого создал пустой проект. Там, наверное, можно использовать только то, что работает с данными. Никаких окон типа cvNamedWindow().

У меня пример работает. Только я использую Linux.

Добавил следующую строку в pro файл:

Всё остальное по умолчанию. Картинка показалась.

Добавлено через 5 минут
Вот ещё один вариант, который, возможно, будет работать и не только в Linux.

Я терминале набрал команду:

pkg-config --libs opencv

Вылезло множество библиотек. Я их всех скопировал и вставил в проект pro следующиую строчку:

Libs += <эти библиотеки>

Всё тоже заработало. Но важно, что вставить картинку надо в проект build-untitled1-Desktop_Qt_5_9_2_GCC_64bit-Debug (где untitled1 -- название проекта). Тогда всё работает. Никаких проблет нет. Всё элементарно просто.

Вот мой файл Pro:

У меня этот пример тоже прекрасно работает.

Добавлено через 3 минуты
На Linux можно в стандартный файл pro добавить всего лишь две строчки:

CONFIG += link_pkgconfig
PKGCONFIG += opencv

И всё будет работать.

Digital_Cry, а что за файл special.pri?
Также Вы используете -lopencv_world310, который я не собирал

Добавлено через 9 минут
jvf, хотелось бы просто добавить, но у меня виндоус

Добавлено через 2 минуты
nmcf, нет, не работает ничего. Получается только создать объекты классов opencv. Функции не работают.

nmcf, распознавать с видеопотока линии, и с фотографий текст. Машинка по линии должна ехать, но с помощью видео. Без ИК датчиков. и просто распознавать текст. да там ничего интересного, это мои настройки, ну там раздельный билд бинарей и объектных файлов, настройки флагов компилятора и ещё чего-то там, не помню уже
какой ещё лини и что значит "но с помощью видео", какие то семантические ошибки
причём тут ИК датчики и распознавание текста? Или ИК датчики на столкновения со стенами?
С точки зрения русского языка - полнейшая дичь, формулируй свои мысли корректно.

Видимо речь о неком роботе, который должен воспринимать текстовые команды, написанные на полу. Или там надписи на этикетках коробок, расставленных сбоку от его пути.

Добавлено через 49 секунд
А направление корректировать по начерченной на полу линии.

какой ещё лини и что значит "но с помощью видео", какие то семантические ошибки
причём тут ИК датчики и распознавание текста? Или ИК датчики на столкновения со стенами?
С точки зрения русского языка - полнейшая дичь, формулируй свои мысли корректно. это уже не по теме вопроса. Просто ответил nmcf с какой целью мне нужен Opencv.
TRam_ все верно. Если уж совсем ничего не выйдет, пиши, я тебе накидаю демо проект и скину тебе архив его папки вместе со всем необходимым. Но ты действительно сначала попробуй, что бы меня лишний раз не отвлекать.
P.S.: распознавание у OpenCL так себе. Лично я занимаюсь своей системой подлинного искусственного интеллекта на своих моделях бионических нейронных сетей. Если хочешь что-то сделать хорошо - делай сам и помни, что deep learning к ИИ не имеет никакого отношения распознавание у OpenCL так себе. Лично я занимаюсь своей системой подлинного искусственного интеллекта на своих моделях бионических нейронных сетей проблема в том, что собрать и не могу.Не такой большой опыт работы со сторонними библиотеками.

А такое нигде не преподают, ведь систему подлинного искусственного интеллекта ещё не изобрели. Всё, что сейчас есть - шлак на дип лёрниге, который к ИИ вообще никак не относится, это чисто хорошо распаренный мыльный пузырь, который служит хорошим инструмент для выбивания бюджетов своего государства Есть лишь некоторые отдельные учёные и конторы (включая меня), которые ведут исследования в этом направление, но их можно по пальцам пересчитать, все остальные - торчат на дип лёрниге

Добавлено через 1 час 12 минут
В общем, начал собирать и забил на это дело, потому что вспомнил, что там куча параметров сборки OpenCV, которые специфичны под конкретное железо. У меня он там по дефолту CUDA определяет и многое другое, я поснимал там кучу галок, думая, что тебе это подойдёт, в итоге компилятор выдал ошибки. аа. забей. Что бы тебе помочь, нужно сначала понять, что у тебя там за робот:
1. Что за робот? Он у тебя на каком железе? PC/104?
2. Какая на нём ОС? Есть ли она вообще? Как ты собрался на нём виндовые бинари запускать?
3. В идеале, тебе нужно собирать OpenCV на том желе, на котором она и будет работать.

2. Сам Qt ( на данный момент у меня стоит 5.10.1 v)
3. На Диске C:\ или на диске D:\ создает папку OpenCV
3.0 В этой папке(OpenCV) скидываем папку, которую мы достали из архива OpenCV.zip.
3.1 В этой же папке (OpenCV) создаем папке OpneCV_bin
4. Запускаем СMake

ВНИМАНИЕ.
Обратите внимание на ссылку
C:/OpenCV/opencv/sources(Это в папке которую мы разархивировали после того как скачали в ней есть эта папка SOURCES!)
C:/OpenCV/opencv_bin(А это пустая ! папка которую мы создали)

Как установить OpenCV на Qt под Windows, изображение №1

5. ВАЖНО.
В этом списке снимите флажок ENABLE_PRECOMPILED_HEADERS, WHIT_IPP, WHIT_CUDA, WHIT_TBB.
В этом списке поставьте флажок WHIT_QT, WHIT_OPENGL
6. Нажимаем на Configuer там будет проходить процесс установки и он остановится. Некоторые поля будут красными их нужно поменять в ручную.

— Установите QT_MAKE_EXECUTABLE в D: \ Qt \ 5.9 \ mingw53_32 \ bin \ qmake.exe
— Установите Qt5Concurrent_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Concurrent
— Установите Qt5Core_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Core — Установите Qt5Gui_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Gui
— Установите Qt5Test_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Test — Установите Qt5Widgets_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5Widgets
— Установите Qt5OpenGL_DIR в D: \ Qt \ 5.9 \ mingw53_32 \ lib \ cmake \ Qt5OpenGL
— Установите CMAKE_BUILD_TYPE для Release или RelWithDebInfo

потом занова нажимает на Конфиг а после окончания на Генерацию( Generate). И все, завкрываем СMake.
7. Открываем командную строку и заходим в папку C:\OpenCV\opencv_bin (Это в моем случае) и в командной строке набираем

cd с: \OpenCV\opencv_bin mingw32-make -j 8 mingw32-make install

Дорогие друзья Установить OpenCV на Qt под MacOS можно тоже также. но там нужно использовать команду sudo make
8. Потом добавляем PATH

CodeBlocks для MinGW скачивать не нужно, он уже есть в составе Qt.

Следующий шаг - установка OpenCV, это самораспаковывающийся архив, можно распаковать куда-то на диск C, получится директория OpenCV с подкаталогами build и sources.
Точно так же устанавливаем CMake, лучше куда-то в корень, он много места не занимает и потребуется только на начальном этапе.
Теперь устанавливаем Qt, тут нужно быть осторожным и в процессе выбора устанавливаемых компонентов выбрать в качестве базового компилятора MinGW (я ставил версию 4.9.1), а также не забыть выбрать MinGW в подпункте Tools.

qt_install

Пока ставится Qt, можно прописать пути в переменную окружения, я прописывал в пользовательские, потому что глобальные у меня уже под завязку заполнены всяческой нечистью. Я добавил следующие:
C:\Qt\5.4\mingw491_32\bin;C:\Qt\Tools\mi ngw491_32\bin;
Естественно, это если Qt ставился в корень диска C.
Итак, Qt установился, запускаем CMake (cmake-gui.exe в каталоге bin установки CMake).

cmake

Выбираем каталоги с исходниками и бинарниками (те самые sources и build из установки OpenCV).
Жмем Configure. В появившемся окошке отвечаем Yes. Далее в раскрывающемся списке выбираем «MiniGW Makefiles» и ставим галочку «Specify native compilers», жмем Next.
Выбираем компиляторы gcc и g++, которые лежат внутри установки Qt, у меня они расположены в каталоге C:\Qt\Tools\mingw491_32\bin.
Жмем Finish
В главном окне CMake ставим галочки на: WITH_QT, жмем еще раз Configure.
Указываем путь для QT_QMAKE_EXECUTABLE, у меня он (qmake.exe) лежит в каталоге C:\Qt\5.4\mingw491_32\bin.
Ставим галочку BUILD_EXAMPLES, устанавливаем значение CMAKE_BUILD_TYPE равным Debug
Еще раз жмем Configure. По идее, все должно получиться, появится надпись Configuring done. Если возникли проблемы с Qt5xxxx_DIR (у меня так произошло на одной из машин), то нужно не пугаться и выбрать их руками, все эти каталоги лежат в папке C:\Qt\5.4\mingw491_32\lib\cmake.
Жмем кнопку Generate, должна появиться надпись Generating done. Все, работа с CMake завершена.
Запускаем консоль CMD (с правами администратора), переходим в каталог C:\OpenCV\build (к бинарникам), запускаем сборку: mingw32-make. Теперь стоит запастись терпением, сборка длится достаточно долго:

5c76648f9e

Если она успешно завершилась, то инсталлируем библиотеки:
mingw32-make install
Все, OpenCV установлен и практически готов к работе. Осталось добавить в переменные окружения папку с его бинарниками: C:\OpenCV\build\include\;C:\OpenCV\build\b in;
Для того, чтобы добавить в проект Qt поддержку OpenCV, я использую следующую вставку в pro-файл:
INCLUDEPATH += C:/OpenCV/build/install/include
LIBS += "C:/OpenCV/build/bin/*.dll"

Единственное, что такой подход приводит к ругани на вот этот файл: opencv_ffmpeg2411_64.dll.
Его я из каталога C:/OpenCV/build/bin перенес в другой. Не знаю пока, с чем это связано, потом уже буду разбираться.

В прошлый раз мы познакомились с OpenCV под Linux. Теперь проделаем аналогичную процедуру по установке под Windows. А также создадим простое приложение, использующее модуль OpenCV для работы с веб-камерами:

Установка OpenCV под Windows

  1. Устанавливаем Git;
  2. Устанавливаем MinGW. Я установил его вместе с пакетом Qt;
  3. Устанавливаем Cmake;
  4. Прописываем пути к bin -каталогам MinGW и Cmake в переменную окружения PATH . По умолчанию Git сам прописывает пути к своим исполняемым файлам, поэтому дополнительные манипуляции с PATH для него не требуются.

Шаг 1: Получаем исходные коды OpenCV из Git

Шаг 2: Подготавливаем OpenCV к сборке

В качестве каталога установки я использую C:\OpenCV\ .

Шаг 3: Собираем и устанавливаем OpenCV

Если все прошло без ошибок, то мы можем проверить работоспособность сборки на примере по распознаванию лиц из прошлой статьи ( скачать). Однако нам потребуется внести пару изменений в pro -файл. Они отражены в следующих строках:

Реклама

OpenCV: Реализация примера для работы с веб-камерой

Начинаем с pro -файла:

По сравнению с примером чуть выше мы отключили модуль objdetect , но подключили videoio .

Заголовочный файл mainwidget.h :

Обратите внимание, что мы заготовили класс задачи WebCamStreamTask . Именно здесь мы задействуем функции модуля VideoCapture . Главный поток управления с GUI будет всего лишь получать готовые изображения QImage и отображать их в QLabel .

Особый интерес для нас представляет следующий фрагмент:

Сначала мы пытаемся открыть веб-камеру по умолчанию. Если что-то пошло не так, то поток прерывает свое выполнение (это не слишком информативно, поэтому никогда не делайте так в настоящем приложении):

Далее мы запускаем бесконечный цикл (он остановится при выходе из приложения или при сбое в работе веб-камеры), в котором получаем кадры от веб-камеры:

Во второй части каждой итерации мы преобразуем полученный кадр (объект класса cv::Mat ) в QImage , копию которого затем отправляем с помощью сигнала frameAvailable() :

Следует заметить, что мы преобразуем исходный cv::Mat в определенный формат, из которого уже и формируется QImage . При этом мы отправляем именно копию QImage , потому что конструктор QImage не делает глубокую копию входного буфера с данными изображения.

Читайте также: