opencv图片显示到mfc控件中,按键打开

首先给mfc图片控件添加一个变量m_picture
在这里插入图片描述
在这里插入图片描述
然后在按键单机处理函数中添加代码:

void CxxxDlg::OnBnClickedButton_xxx()//按钮_打开图片
{
		//TODO: 在此添加控件通知处理程序代码
		//打开文件管理器
		CString strFile = _T("");
		CFileDialog dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T("Describe Files (*.jpg)|*.jpg|All Files (*.*)|*.*||"), NULL);
		if (dlgFile.DoModal())
		{
			strFile = dlgFile.GetPathName();//获取打开的图片路径
		}
		int flag=strFile.GetLength();//判断是否打开了图像
		if (flag>0)//如果打开了图像则显示 
		{
			//opencv清除上一张图
			cvDestroyAllWindows();
			//mfc清除上一张图
			m_picture.SetBitmap(NULL);
			this->RedrawWindow();
			//创建OpenCV窗口
			namedWindow("ImageShow");
			//嵌套opencv窗口
			HWND hWnd2 = (HWND)cvGetWindowHandle("ImageShow");
			HWND hParent = ::GetParent(hWnd2);
			::SetParent(hWnd2, GetDlgItem(IDC_STATIC1)->m_hWnd);
			::ShowWindow(hParent, SW_HIDE);
			//CString转cv::String
			USES_CONVERSION;
			String img_path(W2A(strFile));
			Mat mat = imread(img_path);//opencv读取图片
			imshow("ImageShow", mat);//opencv显示图片
			waitKey(1);
		}
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值