我正在寫一個opencv代碼,並希望使用MFC在GUI上顯示框架。如何在MFC中顯示opencv框架?
問題是我不知道如何。
在的OnInitDialog()
如果我試圖嵌入cvWindow到MFC窗體,這可能是工作。
display = new IplImage(trackview);//trackview is a totally black Mat.
cvNamedWindow("IDC_STATIC_OUTPUT", 0);
cvResizeWindow("IDC_STATIC_OUTPUT", 480, 640);
hWnd = (HWND) cvGetWindowHandle("IDC_STATIC_OUTPUT");
hParent = ::GetParent(hWnd);
::SetParent(hWnd, GetDlgItem(ID_DISPLAY)->m_hWnd);
::ShowWindow(hParent, SW_HIDE);
cvShowImage("IDC_STATIC_OUTPUT", display);
但是,當我的OpenCV嵌入代碼並打開網絡攝像頭,該GUI沒有響應,並且不能被顯示的幀。即使我只是將此示例代碼(打開網絡攝像頭)添加到OnInitDialog(),應用程序窗體將不會顯示。
奇怪的是,我寫了一個「imwrite(」frame.png「,tmp)」,幀可以寫入文件。但是GUI沒有響應。
while(true)
{
CvCapture* capture;
capture = cvCaptureFromCAM(0);
frame = cvQueryFrame(capture);
Mat tmp(frame);
imwrite("frame.png",tmp);
}
順便說一句,有沒有更好的方式來顯示MFC上的OpenCV IplImage?有一個cvvImage.showImage()函數,但它在Opecv 2.4版本中被丟棄。
嗨,你找到反正在MFC中使用OpenCV的,或MFC不適合使用OpenCV的,我也找了一些告訴在C++中使用什麼來開發計算機視覺應用程序 – 2017-04-26 09:11:47