crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 5:56