在QGraphicsView中看不到IplImage

时间:2011-03-22 21:45:33

标签: qt opencv iplimage

我正在尝试在QT中的QGraphicsView对象中显示3D场景(OpenGL-OpenCV)。场景有5个平面:顶部,底部,右侧,左侧和前部。我正在从我的网络摄像头拍摄图像并将它们映射到前面的平面。我已经成功显示了5架飞机中的4架,前方飞机缺失。

我按照本教程加载了OpenGL场景:http://doc.trolltech.com/qq/qq26-openglcanvas.html

但是,我不知道如何处理要在QT对象中显示的IplImage。你们有什么建议吗?

1 个答案:

答案 0 :(得分:1)

这是我在博文中挽救的东西, 这将为您提供可以使用Qt显示的QImage。 你应该根据自己的需要定制它。

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/