【发布时间】:2015-03-27 10:12:06
【问题描述】:
我正在使用 MFC 开发一个允许使用 opencv 显示视频的 GUI。 GUI 允许在 GUI 中自动调整控件的大小。它适用于视频显示。但是,打开视频时遇到问题。打开视频时,我无法单击该 GUI 中的任何控制或最小化按钮。我也无法在屏幕中单击或移动该 GUI。如果我想关闭 GUI,我必须在 Visual Studio 中Shift+ F5。我的代码发生了什么。这个问题显示在youtube 我想显示我的代码如下。谢谢
void CDialogResizeDlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
cv::VideoCapture cap(0);
//VideoCapture cap("C:/Users/lsf-admin/Pictures/Camera Roll/video000.mp4");
cv::vector<cv::Rect> faces;
cv::Mat frame;
cv::Mat graySacleFrame;
cv::Mat original;
if (!cap.isOpened())
{
return exit(1);
}
while (true)
{
cap >> frame;
if (!frame.empty()){
//clone from original frame
original = frame.clone();
}
CDC* vDC;
vDC = GetDlgItem(IDC_VIDEO)->GetDC();
CRect rect;
GetDlgItem(IDC_VIDEO)->GetClientRect(&rect);
IplImage* image2=cvCloneImage(&(IplImage)original);
DisplayIplImageToPictureBox(image2, vDC, rect); //img is IplImage* variable.
ReleaseDC(vDC);
if (cv::waitKey(30) >= 0) break;
}
}
你可以在here下载我的源代码(visual 2012+ opencv 2.4.10)
【问题讨论】: