uchiro 0 Жалоба Опубликовано January 26, 2012 Нашел книжку: "Laganiere Robert - OpenCV 2 Computer Vision Application Programming Cookbook - 2011". Увидел как прикрутить opencv к Qt GUI. Все прекрасно работает с png, но когда пытаюсь открыть jpg, он вываливается с ошибками: Qt_4_8_0___PATH__________________/test_opencv... QGtkStyle was unable to detect the current GTK+ theme. OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /build/src/OpenCV-2.3.1/modules/core/src/array.cpp, line 2482 Qt has caught an exception thrown from an event handler. Throwing exceptions from an event handler is not supported in Qt. You must reimplement QApplication::notify() and catch all exceptions there. terminate called after throwing an instance of 'cv::Exception' what(): /build/src/OpenCV-2.3.1/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat вот код: //.... cv::Mat image; //.... void MainWindow::on_pushButton_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("Open Image"), ".", tr("Image Files (*.png *.jpg *.jpeg *.bmp)")); image = cv::imread(fileName.toAscii().data(),1); cv::namedWindow("Original Image"); cv::imshow("Original Image", image); } Что ему надо? :З Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано January 26, 2012 Я не спец по КуТэ, но может быть opencv собрана с выключенной (в CMake) поддержкой Jpeg? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
uchiro 0 Жалоба Опубликовано January 26, 2012 Я не спец по КуТэ, но может быть opencv собрана с выключенной (в CMake) поддержкой Jpeg? Пересобрал с '-D WITH_JPEG=ON' Результата не дало, и в бинарнике он по умолчанию собран же. Так что проблема в другом. Да и пример: #include <opencv/highgui.h> #include <opencv/cxcore.h> int main(int argc, char* argv[]) { IplImage* image = cvLoadImage("background.jpg"); cvNamedWindow( "Image", CV_WINDOW_AUTOSIZE ); cvShowImage("Image", image); if( (cvWaitKey(10) & 255) == 27 ) cvDestroyWindow("Image"); return 0; } Так же говорит: "init done Недопустимая инструкция" Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах