我正在Qt的标签上播放视频。我正在使用Open CV。视频正在播放,但速度太快了。如何降低播放速度。我尝试使用setCaptureProperty,但它无法正常工作。我的代码如下
HeaderFile声明:
CvCapture *capture;
IplImge *frame;
cv::Mat source_image;
cv::Mat dest_image;
QTimer *imageTimer;
按钮点击插槽:
void MainWindow::onButtonClick()
{
capture = cvCaptureFromFile("/mp.mp4");
while(capture
{
frame = cvQueryFrame((capture);
source_image = frame;
cv::resize(source_image,source_image,cv::Size(420,180),0,0);
cv::cvtColor(source_image,source_image,CV_BGR2RGB);
QImage qimg = QImage((const unsigned char*)source_image.data,source_image.cols,source_imge.rows,QImage::Format_RGB888);
label->setPixmap(QPixmap::fromImage(qimg));
label->resize(label->pixmap()->size());
}
}
有人请指导...谢谢你:)
答案 0 :(得分:1)
我以这种方式使用Qtimer,而不是while循环,如下所示:
void on_button_click()
{
cap.open(0);
timer->start(50);
}
void readframe()
{
//display image in label
cap>>frame;
Mat2QImage(); // convert mat to QImage;
...
//setpixmap();
...
}
并在主窗口中
connet(timer,timeout(),this,readframe());