1 .在MFC添加控件—Picture Control、按钮button
2.添加初始化代码
代码:
//以下代码是将显示的图片窗口嵌入到MFC界面当中
//创建cv窗口
namedWindow("view",WINDOW_AUTOSIZE);
// 设置依附关系, 将cv窗口嵌入MFC主要是下述代码起作用了.
HWND hWnd = (HWND)cvGetWindowHandle("view");
HWND hParent = ::GetParent(hWnd);
::SetParent(hWnd,GetDlgItem(IDC_RECT1)->m_hWnd);
::ShowWindow(hParent,SW_HIDE);
3 .在按钮对应的实现函数里加上如下代码
void CQRCodeDemoDlg::OnBnClickedOpenImage()//打开图像
{
// TODO: 在此添加控件通知处理程序代码
CString picPath; //定义图片路径变量
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT, NULL, this); //选择文件对话框
if(dlg.DoModal() == IDOK)
{
picPath= dlg.GetPathName(); //获取图片路径
}
//CString to string 使用这个方法记得字符集选用“使用多字节字符”,不然会报错
string picpath=picPath.GetBuffer(0);
org=imread(picpath);
imagedst;
//以下操作获取图形控件尺寸并以此改变图片尺寸
CRect rect;
//使用GetDlgItem函数来访问对话框中的控件
GetDlgItem(IDC_RECT1)->GetClientRect(&rect);
//Rect dst(rect.left,rect.top,rect.right,rect.bottom);
resize(org,imagedst,cv::Size(rect.Width(),rect.Height()));
imshow("view",imagedst);
}
4 .结果