Russian Qt Forum
Март 28, 2024, 18:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QtCreator + OpenCV  (Прочитано 9298 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« : Август 28, 2017, 15:34 »

Пытаюсь установить либу OpenCV
Взял с http://opencv.org
Скачал release 3.3.0 win pack и sources

Я так понимаю ее надо собрать из исходников.
Но поясните как это сделать. 
Вообще не понятно куда крутить. Обеспокоенный

Распаковал win pack  создалась папка opencv.
В build\bin две dll.
В build\x64\vc14\lib одна либа лежит opencv_world330

Пытался их про файл проекта прописать толку никакого.
Не видит функций из бибоиотеки.

Скажите каким макаром ее подключить?  Непонимающий
Записан
Bepec
Гость
« Ответ #1 : Август 28, 2017, 16:53 »

Как и все либы. Указать путь к исходникам, подключить их хедеры, подключить либы.
Подключение хедеров даст функции, подключение либ даст реализацию. И вуаля.
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #2 : Август 28, 2017, 17:08 »

Как и все либы. Указать путь к исходникам, подключить их хедеры, подключить либы.
Подключение хедеров даст функции, подключение либ даст реализацию. И вуаля.
Т.е указать путь к исходникам?
Либы я и так подключил там она одна  opencv_world330.
Код:
INCLUDEPATH+="C:/.../opencv/build/include"
LIBS+="C:/.../opencv/build/x64/vc14/lib/opencv_world330.lib"
Может мне надо собрать библиотеку?
Но про-файла нет.
Или как его сделать,  чтобы собрать?
Записан
Bepec
Гость
« Ответ #3 : Август 28, 2017, 17:50 »

Ашники подключи. типа opencv.h. тогда сразу функции вылезут.
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #4 : Август 28, 2017, 17:59 »

Ашники подключи. типа opencv.h. тогда сразу функции вылезут.

Да прописал инклюды целую кучу *.hpp и *.h
Но ошибки остаются типа
Код:
undefined reference to'cvLoadImage'

Что делаю нитак не знаю?
Записан
Bepec
Гость
« Ответ #5 : Август 28, 2017, 18:01 »

В душе не чаю, я не экстрасенс, что ты там наподключал целую кучу и какой код пытаешься компилить.

PS не надо так!!!
Записан
Bepec
Гость
« Ответ #6 : Август 28, 2017, 18:09 »

update:
По быстрому скачал с соурсфорджа - там нет lib для x86 венды. Потому вам придётся собирать, если у вас x32 компилятор.
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #7 : Август 28, 2017, 19:30 »

update:
По быстрому скачал с соурсфорджа - там нет lib для x86 венды. Потому вам придётся собирать, если у вас x32 компилятор.
Скачал CMake 3.2.1-win32-x86
Сгенерил Makefile
Запустил migw32-make
На 28% выдал ошибку
Код:
C:\...\windres.exe:unknown option -- W
.
.
.
Записан
Bepec
Гость
« Ответ #8 : Август 29, 2017, 02:02 »

Вон в гугле пишут, там нужна "своя" версия mingw для сборки. Погуглите, вроде темы отмечены как решённые.
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #9 : Август 29, 2017, 06:38 »

Вон в гугле пишут, там нужна "своя" версия mingw для сборки. Погуглите, вроде темы отмечены как решённые.
Интересно, что значит своя?
Какой в креаторе был mingw такой и использовал.
Записан
Bepec
Гость
« Ответ #10 : Август 29, 2017, 11:40 »

Это значит, что с другими версиями mingw библиотека не собирается. Совсем. Это же линуксоиды. Улыбающийся
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #11 : Август 29, 2017, 15:29 »

Сделал.
Собрал.
Еще пришлось чуть - чуть подправить вот тут
Код:
I also had this issue when I compiled OpenCV3.3 source code for Qt. Then I found the hint here(https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows).

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ If you have the following error : ... windres.exe: unknown option -- W ...

try this : in cmake uncheck ENABLE_PRECOMPILED_HEADERS

If, in the file opencv/sources/modules/videoio/src/cap_dshow.cpp, you have the following error : 'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' was not declared in this scope ...

try this :put the following line: #define NO_DSHOW_STRSAFE, before the line : #include "DShow.h"

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

в про-файле прописал либы
Код:
NCLUDEPATH += "C:\Qt\Qt5.7.0\opencv\build\include"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_calib3d330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_core330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_dnn330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_features2d330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_imgcodecs330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_imgproc330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_ml330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_objdetect330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_shape330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_stitching330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_superres330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_video330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_videoio330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_videostab330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_photo330.dll.a"
LIBS += "C:/Qt/Qt5.7.0/opencv/build/lib/libopencv_highgui330.dll.a"

Компилится норм.
Но почемуто при запуске программа падает при использовании opencv функций Непонимающий

Код
C++ (Qt)
#include <opencv/cv.h>
#include <opencv/cvwimage.h>
#include <opencv2/imgcodecs.hpp>
#include <opencv/highgui.h>
#include <opencv2/highgui.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv_modules.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/imgproc.hpp>
 
MainWindow::MainWindow(QWidget *parent) :
   QMainWindow(parent),
   ui(new Ui::MainWindow)
{
   ui->setupUi(this);
 
   IplImage *img = cvLoadImage("D:\picture.jpg");
   cvNamedWindow("Hello, Qt! From OpenCv");
   cvShowImage("Hello, Qt! From OpenCV!",img);
   cvWaitKey();
 
}
 
MainWindow::~MainWindow()
{
   delete ui;
}
 
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #12 : Август 30, 2017, 23:39 »

Сделал.
Перемобрал.
 И добавил к папке где лежит exe-файл библиотеки dll.
Можно было их в принципе прописать путь к ним в PATH.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.08 секунд. Запросов: 23.