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

xiaoxiao2021-02-28  59

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() 点击打开链接
转载请注明原文地址: https://www.6miu.com/read-2620113.html

最新回复(0)