【发布时间】:2011-09-08 15:47:54
【问题描述】:
我对 Qt 很陌生,并且发现学习它非常有益。我正在尝试将一些现有的 C++ 代码与新的 Qt GUI 合并。基本上,这个想法是让从 .avi 文件中提取的图像在后端进行处理,然后显示在屏幕上的 QLabel 中。我设法获得以下代码以正确显示帧:
while (frame = cvQueryFrame(capture))
{
// Some processing code...
QImage qImageFrame((uchar*) frame->imageData, frame->width, frame->height, frame->widthStep, QImage::Format_RGB888);
qImageFrame = qImageFrame.rgbSwapped();
QPixmap qFrame;
qFrame.convertFromImage(qImageFrame);
label->setPixmap(qFrame);
label->repaint();
cvWaitKey(10);
}
但是,现在,这显然意味着 UI 停止响应用户输入,直到显示电影中的所有帧。这种事情是怎么做到的?
注意:我正在使用 openCV 库执行处理,该库需要特定格式的图像。例如,我认为我不能做的一件事是直接在 Qt 域中使用 .avi 文件。
【问题讨论】:
标签: c++ qt user-interface opencv