crgd12吧 关注:5贴子:104
  • 0回复贴,共1
MyFrame::MyFrame(QWidget *parent) :
QWidget(parent),_capture(NULL)
{
this->setGeometry(0, 0, 1024, 700);
_capture = cvCaptureFromAVI("/home/cc/av.avi");
_srcImage = cvQueryFrame(_capture);
_tempImage = cvCreateImageHeader(cvSize(_srcImage->width, _srcImage->height), 8, 3);
_image = new QImage(_srcImage->width, _srcImage->height, QImage::Format_RGB888);
_tempImage->imageData = (char *)_image->bits();
_timer = new QTimer(this);
_timer->setInterval(30);
connect(_timer, SIGNAL(timeout()), this, SLOT(loadCVImage()));
_timer->start();
}
MyFrame::~MyFrame()
{
cvReleaseImage(&_tempImage);
cvReleaseCapture(&_capture);
delete _image;
delete _timer;
}
void MyFrame::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawImage(0, 0, *_image);
}
void MyFrame::loadCVImage()
{
_srcImage = cvQueryFrame(_capture);
if (_srcImage)
{
if (_srcImage->origin == IPL_ORIGIN_BL)
{
cvCopy(_srcImage, _tempImage);
}
else
{
cvFlip(_srcImage, _tempImage);
}
cvCvtColor(_srcImage, _tempImage, CV_BGR2RGB);
}
this->update();
}


1楼2013-08-09 22:53回复