OpenCV + VS2012 打开图像/图像文件
来源:互联网 发布:dwg文件打印软件 编辑:程序博客网 时间:2024/05/23 11:04
- 这些小知识每次生成应用时都会用到,但是总是忘记记录,要用时就得翻看以前的程序,挺耗费时间的,所以在此记下。
- 打开单张图像
- 使用工具箱生成如下界面
- 将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; //存放文件标题CString fileTemp,fileTitle,fileName;CString sFilter = _T("image Files (*.jpg;*.gif;*.bmp;*.tif;...)|*.jpg;*.gif;*.bmp*.tif;|All Files (*.*)|*.*||");CFileDialog my_file_dialog(TRUE, _T("xxx"),NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT,sFilter, this);if ( my_file_dialog.DoModal()!=IDOK )return;POSITION pos ( my_file_dialog.GetStartPosition() );int imageSum=0; //统计图像数while( pos ){imageSum++; //统计0//do something with the filename variablefileTemp=my_file_dialog.GetNextPathName(pos);ary_filename.Add(fileTemp);//获取文件名//从字符串的后面往前遍历,如果遇到'\'则结束遍历,'\'右边的字符串则为文件名int length = fileTemp.GetLength();for(int i = length -1; i>0;i--){if(fileTemp.GetAt(i)=='\\')//'\'==fileTemp.GetAt(i){//判断当前字符是否是'\'fileName = fileTemp.Right(length - i -1);break;//跳出循环}}//endfor//获取文件名(不包含后缀)//采用CString的Left(int count)截取CString中从左往右数的count个字符//fileName.GetLength()-4中的4表示".dat"四个字符fileTitle = fileName.Left(fileName.GetLength()-4);//AfxMessageBox(fileTitle);ary_fileTitle.Add(fileTitle);//将文件名(不包含后缀)添加到数组中}m_imageList.Format("%d",imageSum);UpdateData(FALSE);}
- 打开文件夹并获取文件夹内信息
- 代码如下// TODO: 在此添加控件通知处理程序代码CArray<CString,CString>ary_filename; //存放路径BROWSEINFO bi = { 0 };TCHAR path[MAX_PATH];bi.lpszTitle = _T("Pick a Directory");bi.pszDisplayName = path;LPITEMIDLIST pidl = SHBrowseForFolder ( &bi );if ( pidl != 0 ){SHGetPathFromIDList(pidl , path);//把项目标识列表转化成字符串,获取文件夹名称m_FilePath = path;}CFileFind ff;CString FilePath;if (m_FilePath.Right(1)!="/"){m_FilePath+="/";}m_FilePath+="*.*";BOOL res=ff.FindFile(m_FilePath);while (res){res=ff.FindNextFile();FilePath=ff.GetFilePath();/* if (ff.IsDirectory() && !ff.IsDots())// 找到的是文件夹{FileSearch(FilePath);// 递归}*//*else*/ if (!ff.IsDirectory() && !ff.IsDots())// 找到的是文件{ary_filename.Add(FilePath);}}m_FilePath=ary_filename.GetAt(1);UpdateData(FALSE);
0 0
- OpenCV + VS2012 打开图像/图像文件
- OpenCV图像编程实例-图像文件批量读取
- VS2012+OpenCV 打开计算机摄像头
- opencv--打开图像
- OpenCV 打开图像
- MFC+OpenCV打开图像
- opencv图像缩放与google的webp图像文件压缩结合
- OpenCV打开和显示图像
- opencv 单文档 打开图像
- opencv打开一幅图像
- 【OpenCV】1st-打开图像
- 图像显示、图像文件输入输出
- mfc从磁盘中打开图像文件并显示在图像控件中
- opencv & qt study-(4)- 图像的载入,显示,及写入到图像文件
- opencv的基本运用:打开,显示图像
- opencv图像处理7-打开大图
- Opencv打开一个文件夹里面图像
- opencv打开一幅图像(一)
- 日经春秋 20150316
- android网络请求
- 获取一个数据每个位上的数据
- poj 2135 Farm Tour 最小费用流入门模板
- 火星人敏捷开发1001问
- OpenCV + VS2012 打开图像/图像文件
- CentOS 6.5 安装Oracle11g R2
- 提升UITableView性能-复杂页面的优化
- Linux(Ubuntu)下安装Android设备的ADB/USB驱动
- 找一个无序数组第m大的数的算法
- 日经社説 20150316 難民に冷たい国でいいのか
- VMWare中的Host-only、NAT、Bridge的比较
- Linux命令8——cp
- android service getIntent