(10条消息) MFC与opencv窗口绑定
使用MFC界面显示OpenCV内容,其方法之一是将OpenCV与MFC窗口绑定,然后在MFC中直接使用OpenCV 中的代码进行输入和输出,这样方便代码的书写和搬用。这里用VS2012进行介绍。
OpenCv与MFC进行窗口绑定:
首先:在解决方案资源管理中找到头文件,在头文件中找到“某某Dlg.h”的头文件文件,点进去之后在其中加好opencv的头文件,并添加好命名空间,如:
include “opencv2/opencv.hpp”
using namespace cv接下来,在解决方案资源管理中找到源文件,在源文件中找到“某某Dlg.cpp”的头文件文件,点进去之后在其中’OnInitDialog’类中,找到'// TODO: 在此添加额外的初始化代码’进行添加要运行的控件进行初始化
最后再对初始化的控件进行相应的操作
例如对Button按键和显示图片控件进行显示一张图像操作:
首先创建Button控件和Picture control控件,如图:
然后添加头文件,如图:
接下来双击Bottom 控件或者在解决方案资源管理中找到源文件,在源文件中找到“training42Dlg.cpp”的头文件文件进入代码文件中,找到’OnInitDialog’类,在后面进行初始化
// TODO: 在此添加额外的初始化代码CWnd *pWnd1= GetDlgItem (IDC_PIC1);//CWnd是MFC窗口类的基类,提供了微软基础类库中所有窗口类的基本功能。pWnd1->GetClientRect (&rect1);//GetClientRect为获得控件相自身的坐标大小namedWindow("src1",WINDOW_AUTOSIZE );//设置窗口名HWND hWndl=(HWND )cvGetWindowHandle ("src1");//hWnd 表示窗口句柄,获取窗口句柄HWND hParent1=::GetParent (hWndl );//GetParent函数一个指定子窗口的父窗口句柄::SetParent (hWndl, GetDlgItem (IDC_PIC1)->m_hWnd );::ShowWindow (hParent1 ,SW_HIDE );//ShowWindow指定窗口中显示//rect1变量要在头文件中定义为CRect类,如:public: CRect rect1;
然后在Button控件函数中进行相关操作,如:
void Ctraining42Dlg::OnBnClickedButton2() { // TODO: 在此添加控件通知处理程序代码 Mat srcImg=imread("1.jpg");resize (srcImg, srcImg ,Size(rect1.Width (),rect1 .Height ()) );imshow("src1",srcImg); }
输出结果如图:
赞 (0)