一般的OpenCV例程在console中比较多。其实想要在MFC中也是很简单的,只要在*dlg.cpp的Init函数中添加一段类似把控件转换为窗口的代码就可以啦。 其他的就和console的编程一样。 环境属性中需要设置的参数一点都不能少。在*.h文件中添加头文件和using namespace cv;如果只有一个文件用到了opencv的东西,那么可以直接在*dlg.cpp中添加头文件和using namespace cv就可以。来看看这段代码吧。
前提操作,在界面中添加picture控件,并且命名为:IDC_SHOWIMG,
在OnInitDialog()中添加:
// TODO: 在此添加额外的初始化代码
namedWindow("ImageShow");//创建OpenCV窗口
HWND hWnd = (HWND)cvGetWindowHandle("ImageShow");//嵌套opencv窗口
HWND hParent = ::GetParent(hWnd);
::SetParent(hWnd, GetDlgItem(IDC_SHOWIMG)->m_hWnd);
::ShowWindow(hParent, SW_HIDE);
以后需要显示图片就用
imshow("ImageShow",mat)就可以显示mat图片了。 是不是很简单呢。
Mat mat=imread("d:\\user.jpg");
imshow("ImageShow",mat);
waitkey(1);//千万不能用waikey(0),一直等在这里程序就不会继续下去了。
如果要显示摄像头,只需要:
VideoCapture capture(0);