vs2015+opencv3+mfc 基于对话框按键选择图片并显示

1.     创建一个基于对话框的MFC项目

2.     在对话框中添加控件

1) picture control 控件,命名为IDC_PICTURE

2) button 控件,命名为IDC_ShowPic(目前只做了选择图像)

3.     button控件添加函数

void CShowPicDlg::OnBnClickedShowpic() //打开文件,选择图片,并显示图片
{
	// TODO: 在此添加控件通知处理程序代码
	CString filePath; //保存打开文件的路径
	CString defaultDir = _T("D:\\video"); //设置默认打开文件夹
	CString fileFilter = _T("文件(*.jpg;*.bmp)|*.jpg;*.bmp|All File (*.*)|*.*||"); //设置文件过滤
	CFileDialog fileDlg(true, defaultDir, _T(""), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, fileFilter, NULL);

	//弹出选择文件对话框
	if (fileDlg.DoModal() == IDOK)      
	{
		filePath = fileDlg.GetPathName();//得到完整的文件名和目录名拓展名  
		CString filename = fileDlg.GetFileName();
	}
		
	//Picture Control控件显示图片
	CDC *pDC = GetDlgItem(IDC_PICTURE)->GetDC(); //根据ID获得窗口指针再获取与该窗口关联的上下文指针
	HDC hdc = pDC->GetSafeHdc(); // 获取设备上下文句柄
	CRect rect; // 矩形类
	GetDlgItem(IDC_PICTURE)->GetClientRect(&rect); //获取box1客户区
	CvvImage cimg;
	IplImage *src; // 定义IplImage指针变量src
	char * A = CStringToChar(filePath); //CString转换Char
	src = cvLoadImage(A, -1); // 将src指向当前工程文件目录下的图像    
	cimg.CopyOf(src, src->nChannels);

	cimg.DrawToHDC(hdc, &rect); //输出图像
	ReleaseDC(pDC);
	cimg.Destroy(); //销毁
}

其中,变量filepath是CString类型,需要转化为char。
一个博主写了这个转化函数 CStringToChar() 点击打开链接


  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值