0

QT の QGraphicsView オブジェクトに 3D シーン (OpenGL-OpenCV) を表示しようとしています。このシーンには、上、下、右、左、前の 5 つの平面があります。ウェブカメラから画像を取得し、前面にマッピングしています。5 面のうち 4 面が正常に表示されましたが、正面の面がありません。

このチュートリアルに従って OpenGL シーンをロードしました: http://doc.trolltech.com/qq/qq26-openglcanvas.html

しかし、IplImage を QT オブジェクトに表示する方法がわかりません。何か提案はありますか?

4

1 に答える 1

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/ をご覧ください。

于 2011-05-19T08:36:47.077 に答える