crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Интеграция QT и OpenCV 2.4.6
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
borune Дата 13.3.2015, 12:26
  ребят, подскажите, стоит кьют 5.4.1 с MinGW, собрал opencv 2.4.11 делал по этому мануалу. Делаю простенький проект:
Раскрывающийся текст
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

INCLUDEPATH+=E:\\openCV\\build\\install\\include
INCLUDEPATH+=E:\\openCV\build\include\\opencv

LIBS+=E:\\openCV\\build\\bin\\libopencv_imgproc2411.dll
LIBS+=E:\\openCV\\build\\bin\\libopencv_highgui2411.dll

TARGET = opencv
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

main.cpp
Раскрывающийся текст
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
    IplImage *img = cvLoadImage("E:\\Grendizer1.png");
    //cvNamedWindow("Hello, QT! From OpenCV!");
    cvShowImage("Hello, QT! From OpenCV!", img);
    cvWaitKey();
    return 0;
}


собирается, все норм. Но при запуске не может найти dll:


как лечить, помогите пожалста
ano Дата 7.10.2013, 9:51
  С таким же траблом Qt5 OpenCv 2.4.6 заработало:


INCLUDEPATH += C:/opencv/build/include
LIBS += C:/opencv/build/x86/vc10/bin/*.dll
LIBS += C:/opencv/build/x86/vc10/lib/*.lib


#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;

Гость_Dmitry_* Дата 27.8.2013, 10:10
  C Qt 5 сейчас совместима последняя версия openCV - 2.4.6. Для предыдущих надо было много телодвижений.

На самом деле главное чтобы Qt и openCV были собраны одной версией компилятора. WITH_QT лишь добавляет дополнительные фичи
для openCV GUI, без которых вполне можно обойтись, тем более GUI все равно будет построен на QT.
До выхода последней версии openCV я просто качал установщик Qt5 на mingw, компилятор устанавливается вместе с пакетом,
потом этим компилятором собирал OpenCV, но без WITH_QT. Пару дней назад прочитал, что теперь есть совместимость с QT5 и собрал с WITH_QT.

P.S. Может у меня в проекте чет не так, но расширеный GUI тупит страшно.
skipy Дата 2.8.2013, 3:05
  скорей всего с Qt5 не совместимость. Поставил Qt4.8 - заработало


ViGOur Дата 1.8.2013, 13:47
 
Цитата(skipy @ 31.7.2013, 23:35) *
только теперь вот такой вопрос: где они находятся?
Или их нету и необходимо самому написать
Они есть в сырцах Qt, если ты используешь уже сконфигуренное и скомпиленное Qt, то тебе нужно скачать исходники Qt, и самому сконфигурить их...


Цитата(Iron Bug @ 31.7.2013, 22:21) *
роблемы будут не только в случае с исключениями, но и в случае вызова виртуальных методов и контрукции дочерних классов
Про виртуальные методы вылетело из головы... Я не говорю, что это правильно, а говорю о том, что для Qt Designer это принято и *.h c *.cpp файлы автоматически генерируются Qt Designer, которые отвечают за ручную компановку форм...
skipy Дата 31.7.2013, 22:35
  по ходу я понял, всё-таки неправильно скомпилировал либы
cmake 2.8.11.2 не имеет findQt5CMake, а значит надо вручную прописывать пути к make-файлам
Qt5Concurrent_DIR-NOTFOUND
Qt5Core_DIR-NOTFOUND
Qt5Test_DIR-NOTFOUND
Qt5Widgets_DIR-NOTFOUND
только теперь вот такой вопрос: где они находятся?
Или их нету и необходимо самому написать
skipy Дата 31.7.2013, 21:24
  как я понял проблема с библиотекой libstdc++-6.dll
стек вызовов:
Thread 1 (Thread 7144.0x1a78):
#0 0x6fc830d0 in ?? () from D:\qt-workspace\hello_opencv\test3\build-test3-Desktop_Qt_5_1_0_MinGW_32bit-Debug\debug\libstdc++-6.dll
No symbol table info available.
#1 0x106e9e9a in cv::BmpDecoder::BmpDecoder() () from D:\qt-workspace\hello_opencv\test3\build-test3-Desktop_Qt_5_1_0_MinGW_32bit-Debug\debug\libopencv_highgui246.dll
No symbol table info available.
#2 0x106f8a90 in cv::ImageCodecInitializer::ImageCodecInitializer() () from D:\qt-workspace\hello_opencv\test3\build-test3-Desktop_Qt_5_1_0_MinGW_32bit-Debug\debug\libopencv_highgui246.dll
No symbol table info available.
#3 0x1079f5f7 in _GLOBAL__sub_I__ZN2cv6imreadERKSsi () from D:\qt-workspace\hello_opencv\test3\build-test3-Desktop_Qt_5_1_0_MinGW_32bit-Debug\debug\libopencv_highgui246.dll
No symbol table info available.
#4 0x106b1eef in __do_global_ctors () at ../mingw/gccmain.c:59
nptrs = <optimized out>
i = 2
#5 0x106b10f3 in DllMainCRTStartup@12 (hDll=0x106b0000, dwReason=1, lpReserved=0x28fd24) at ../mingw/dllcrt1.c:83
bRet = <optimized out>
#6 0x77839950 in ntdll!RtlpNtMakeTemporaryKey () from C:\Windows\system32\ntdll.dll
No symbol table info available.
#7 0x106b0000 in ?? ()
No symbol table info available.
#8 0x7783d8c9 in ntdll!RtlEmptyAtomTable () from C:\Windows\system32\ntdll.dll
No symbol table info available.
#9 0x106b1058 in __dll_exit () at ../mingw/dllcrt1.c:158
next_atexit = 0x34108
first_atexit = 0x34050
#10 0x7784681c in ntdll!RtlStatMemoryStream () from C:\Windows\system32\ntdll.dll
No symbol table info available.
#11 0x0028fd24 in ?? ()
No symbol table info available.
#12 0x778452d6 in ntdll!TpCaptureCaller () from C:\Windows\system32\ntdll.dll
No symbol table info available.
#13 0x0028fd24 in ?? ()
No symbol table info available.
#14 0x77839e79 in ntdll!RtlpNtSetValueKey () from C:\Windows\system32\ntdll.dll
No symbol table info available.
#15 0x0028fd24 in ?? ()
No symbol table info available.
#16 0x00000000 in ?? ()
No symbol table info available.
Iron Bug Дата 31.7.2013, 21:21
 
Цитата(ViGOur @ 31.7.2013, 19:49) *
Если быть точным, то уже определен, правда не до конца, а вот в случае исключения в конструкторе будут проблемы. ;)

проблемы будут не только в случае с исключениями, но и в случае вызова виртуальных методов и конструкции дочерних классов (http://www.parashift.com/c++-faq/using-this-in-ctors.html).
в общем, лучше не надеяться на авось и не создавать мест для наступания на грабли, особенно когда класс наследуется от чужих классов, реализация которых в любой момент может поменяться. в конструкторе объект должен создаваться и это его главная функция. всё остальное лучше делать вне конструктора.
ViGOur Дата 31.7.2013, 16:49
 
Цитата(Iron Bug @ 31.7.2013, 8:42) *
у тебя в контрукторе this недоопределён. нельзя так делать. отсюда и ошибка.
Если быть точным, то уже определен, правда не до конца, а вот в случае исключения в конструкторе будут проблемы. ;)
ilyabvt Дата 31.7.2013, 16:36
 
Цитата
namespace Ui {
class MainWindow;
}

Рекомендую к прочтению:
Using a Designer UI File in Your Application
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 16.4.2024, 13:54