Перейти к содержимому
Compvision.ru
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);

}

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×