Jump to content
Compvision.ru
Sign in to follow this  
uchiro

[Qt][JPG][C++] OpenCV 2.3

Recommended Posts

Нашел книжку: "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);

}

Что ему надо? :З

Share this post


Link to post
Share on other sites

Я не спец по КуТэ, но может быть opencv собрана с выключенной (в CMake) поддержкой Jpeg?

Share this post


Link to post
Share on other sites

Я не спец по КуТэ, но может быть 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 Недопустимая инструкция"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×