- 这些小知识每次生成应用时都会用到,但是总是忘记记录,要用时就得翻看以前的程序,挺耗费时间的,所以在此记下。
- 打开单张图像
- 使用工具箱生成如下界面
- 将textControl关联CString的变量:m_path
- 使用CFileDialog完成获取文件路径的的功能,双击button"打开图像",输入如下代码:
// TODO: 在此添加控件通知处理程序代码//打开对话框CFileDialog hFileDlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_READONLY,TEXT("支持的图像文件 (*.jpg;*.gif;*.bmp;...)|*.jpg;*.gif;*.bmp|专用Tiff图像文件(*.tiff;*.tif)|*.tiff;*.tif|所有文件(*.*)|*.*||"),NULL);hFileDlg.m_ofn.nFilterIndex=1;hFileDlg.m_ofn.hwndOwner=m_hWnd;hFileDlg.m_ofn.lStructSize=sizeof(OPENFILENAME);hFileDlg.m_ofn.lpstrTitle=TEXT("打开图像文件...\0");hFileDlg.m_ofn.nMaxFile=MAX_PATH;if(hFileDlg.DoModal() == IDOK) //判断路径是否为空{m_path = hFileDlg.GetPathName(); //获取路径名称UpdateData(FALSE);}
- 使用OpenCV读取并显示图像,在if里添加如下代码
cv::Mat image=cv::imread(LPCSTR(m_path),-1);cv::imshow("image",image);
- 示例如下:
- 打开多张图像
- 代码如下
void CBagOfWordsDlg::OnBnClickedOpenimglist() //打开多张图像{// TODO: 在此添加控件通知处理程序代码CArray<CString,CString>ary_filename; //存放路径CArray<CString,CString>ary_fileTitle; //存放文件标题