1.打开界面,新建一个button,一个picturecontrol,双击button会进入程序编辑界面,先在BOOL CMFCApplication3Dlg::OnInitDialog()里放入下面语句
namedWindow("view",WINDOW_AUTOSIZE); //button部分
HWND hWnd = (HWND)cvGetWindowHandle("view");
HWND hParent = ::GetParent(hWnd);
::SetParent(hWnd,GetDlgItem(IDC_STATIC)->m_hWnd);
::ShowWindow(hParent,SW_HIDE);
然后再按钮对应的函数里放入下面语句
void CMFCApplication3Dlg::OnBnClickedButton1()
{
// 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);
t_img=imread(picpath);
/*Mat imagedst;
//以下操作获取图形控件尺寸并以此改变图片尺寸
CRect rect;
GetDlgItem(IDC_STATIC)->GetClientRect(&rect);
Rect dst(rect.left,rect.top,rect.right,rect.bottom);
resize(t_img,imagedst,cv::Size(rect.Width(),rect.Height())); */
imshow("view",t_img);
}
IDC_STATIC是控件窗口的id,
这样运行后就可以在本地文件中选择图片打开,实现打开图片功能