OpenCV + VS2012 打开图像/图像文件

本文介绍了如何在Visual Studio 2012中结合OpenCV库,通过MFC实现打开单张或多张图像以及文件夹内所有图像的功能。详细步骤包括使用CFileDialog打开对话框获取文件路径,用OpenCV的imread函数读取图像并使用imshow显示,以及处理多选文件和文件夹内的图像文件。
摘要由CSDN通过智能技术生成
  • 这些小知识每次生成应用时都会用到,但是总是忘记记录,要用时就得翻看以前的程序,挺耗费时间的,所以在此记下。

  • 打开单张图像


  1. 使用工具箱生成如下界面
  2. 将textControl关联CString的变量:m_path
  3. 使用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);       
        }  
  4. 使用OpenCV读取并显示图像,在if里添加如下代码
    cv::Mat image=cv::imread(LPCSTR(m_path),-1);
    cv::imshow("image",image);
  5. 示例如下:
          
  • 打开多张图像


  1. 代码如下
    void CBagOfWordsDlg::OnBnClickedOpenimglist()  //打开多张图像
    {
        // TODO: 在此添加控件通知处理程序代码
        CArray<CString,CString>ary_filename;  //存放路径
        CArray<CString,CString>ary_fileTitle;  //存放文件标题
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值