Не могу увидеть IplImage в QGraphicsView - PullRequest
0 голосов
/ 23 марта 2011

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

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

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

1 Ответ

1 голос
/ 19 мая 2011

Это то, что я спас от публикации в блоге, Это предоставит вам 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/

...