【发布时间】:2014-04-30 05:02:46
【问题描述】:
我正在做一个人脸识别项目。 Qt 用于创建前端。
当我单击按钮(带有“从网络摄像头选择视频”标签)时,它将从网络摄像头捕获视频,但不可见。从某种意义上说是不可见的,父窗口正在覆盖当前正在播放的视频,或者当前正在播放的视频在父窗口的后面。我应该怎么做才能让它出现在所有父窗口的前面,直到视频结束。
void admin_db_creation::on_pushButton_3_clicked()
{
capture = cvCaptureFromCAM(0);
if(!capture)
{
cout<<"Could not initialize capturing..."<<endl;
}
while(1)
{
frame2 = cvQueryFrame(capture);
frame3=detectFace(frame2);
imshow("window", frame2);
char key = cvWaitKey(10);
if (key == 27)
break;
}
}
这是按钮点击代码,它包含播放视频的代码..
【问题讨论】:
-
不明白问题所在。能不能放个截图?
-
如果我们不知道您是如何播放视频的,我们该如何帮助您?贴出代码。
-
您需要添加用于创建播放视频的窗口的代码。
-
你的问题不清楚..可以尝试放更多截图/代码以使工作流程清晰
-
您的 while(1) 循环可能阻塞了主 Qt gui 更新线程。其次, imshow() 根本与 Qt 无关。您可能希望将视频图像渲染到 QLabel 或其他东西,而不是从 Qt 的 OpenCV 调用 imshow()。最后,您可能只想使用 Qt 作为控制应用程序并使用 OpenCV 在单独的窗口中显示视频。