OpenCV を使用して Qt でビデオを再生しようとしています。次のコードを使用しています。
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());
qapp->processEvents();
}
}
ボタンをクリックして再生しようとすると、正常に動作します。ただし、MainWindow コンストラクターで同じコードを記述すると、予想外に終了します。ボタンをクリックしたときではなく、画面の起動時にビデオを表示する必要があります。同じために私は何をすべきですか?ありがとうございました :)