Не удается увидеть IplImage в QGraphicsView

Я пытаюсь отобразить 3D-сцену (OpenGL-OpenCV) в объекте QGraphicsView в QT. Сцена имеет 5 плоскостей: верхнюю, нижнюю, правую, левую и переднюю. Я беру изображения со своей веб-камеры и наношу их на переднюю плоскость. У меня успешно отобразились 4 из 5 плоскостей, передняя плоскость отсутствует.

Я следовал этому руководству, чтобы загрузить сцену OpenGL: http://doc.trolltech.com/qq/qq26-openglcanvas.html

Однако я не знаю, как обрабатывать IplImage, отображаемый в объекте QT. У вас есть какие-нибудь предложения?


person Eric Bautista    schedule 22.03.2011    source источник


Ответы (1)


Это то, что я вытащил из публикации в блоге. Это предоставит вам QImage, который вы можете отобразить с помощью Qt. вы должны адаптировать его в соответствии с вашими потребностями.

QImage img;


constructor()
{
// setup capture device
CvCapture *cvCapture = cvCreateCapture(0);
}


getQImageFromIplImage()
{
// this frame gets a frame from capture device
IplImage *frame = new IplImage();
frame = cvQueryFrame(cvCapture);

// create an IplImage with 8bit color depth
IplImage *iplImg = cvCreateImage(cvSize(frame->width, frame->height),IPL_DEPTH_8U, 3);

// copy image captured from capture device to new image, converting pixel data from OpenCV's default BGR format to Qt's RGB format
cvCvtColor(frame, iplImg, CV_BGR2RGB);

// create a this newly converted RGB pixel data with a QImage
qImg = QImage((uchar *)iplImg->imageData, iplImg->width, iplImg->height, QImage::Format_RGB888);
}

полный код см. на странице http://www.morethantechnical.com/2009/03/05/qt-opencv-combined-for-face-detecting-qwidgets/

person Muhammad Anjum Kaiser    schedule 19.05.2011