打开图片:

  1. void CImageProDlg::OnImageopen()
  2. {
  3. // TODO: 在此添加命令处理程序代码
  4. Invalidate();
  5. CFileDialog dlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_READONLY,
  6. TEXT("Supported Types (*.jpg;*.png;*.gif;*.bmp;...)|*.jpg;*.png;*.gif;*.bmp|Tiff(*.tiff;*.tif)|*.tiff;*.tif|All Files(*.*)|*.*||"), NULL);
  7. dlg.m_ofn.nFilterIndex = ;
  8. dlg.m_ofn.hwndOwner = m_hWnd;
  9. dlg.m_ofn.lStructSize = sizeof(OPENFILENAME);
  10. dlg.m_ofn.lpstrTitle = TEXT("Opening Image...\0");
  11. dlg.m_ofn.nMaxFile = MAX_PATH;
  12. if (dlg.DoModal() == IDOK)
  13. {
  14. m_path = dlg.GetPathName();
  15. m_capacity = TRUE;
  16. UpdateData(FALSE);
  17. }
  18. else
  19. return;
  20. //左边图片控件显示图片
  21. //string s_path(m_path.GetBuffer()); //这样就要#include <string.h>
  22. char *s_path;
  23. s_path = m_path.GetBuffer(m_path.GetLength()); //将CString转化为Char * 格式
  24. //m_StaticPath.SetWindowTextA(m_path); //将图片路径显示到静态文本控件
  25. Mat Mat_image = imread(s_path, );
  26. SavedImage = Mat_image; //全局变量
  27. IplImage image = Mat_image;
  28. DrawPicToHDC(&image, ID_SHOWLEFT);
  29. }

保存图片:

(需输入完整路径,包括拓展名)

  1. void CImageProDlg::OnSaveas()
  2. {
  3. // TODO: 在此添加命令处理程序代码
  4. if (m_capacity)
  5. {
  6. CFileDialog dlg(FALSE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_READONLY,
  7. TEXT("Supported Types (*.jpg;*.png;*.gif;*.bmp;...)|*.jpg;*.png;*.gif;*.bmp|Tiff(*.tiff;*.tif)|*.tiff;*.tif|All Files(*.*)|*.*||"), NULL);
  8. dlg.m_ofn.nFilterIndex = ;
  9. dlg.m_ofn.hwndOwner = m_hWnd;
  10. dlg.m_ofn.lStructSize = sizeof(OPENFILENAME);
  11. dlg.m_ofn.lpstrTitle = TEXT("Saving Image...[Meantime input extension name! ]\0");
  12. dlg.m_ofn.nMaxFile = MAX_PATH;
  13. CString strPath(""), strExt("");
  14. char write[];
  15. if (dlg.DoModal() == IDOK)
  16. {
  17. strPath = dlg.GetPathName(); //文件名
  18. char *s_path;
  19. s_path = strPath.GetBuffer(strPath.GetLength());
  20. imwrite(s_path, SavedImage);
  21. strPath.ReleaseBuffer();
  22. }
  23. }
  24. else
  25. MessageBox("还未选择原始图片,无法保存图片!");
  26. }

【OpenCV, MFC】利用MFC和OpenCV通过系统对话框打开和保存图片的更多相关文章

  1. MFC中快速应用OpenCV(转)

    转载链接:http://wiki.opencv.org.cn/index.php/MFC%E4%B8%AD%E5%BF%AB%E9%80%9F%E5%BA%94%E7%94%A8OpenCV 简介和缘 ...

  2. opencv与mfc显示图片操作,MFC的鼠标响应在opencv图片上失效,opencv滚轮事件没有响应问题描述解决。

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11588758.html 用mfc 与OPENCV编写成. 出了很多冲突异常事件导致鼠标操作没有 ...

  3. VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)

    VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)-软件开发-鸡啄米 http://www.jizhuomi.com/software/141.html   上一讲中讲了VS20 ...

  4. opencv学习_15 (利用cmake查看opencv的源码)

    当我们有时想查看opencv自带的函数的源代码,比如函数cvCreateImage, 此时我们选中cvCreateImage, 点击鼠标右键->转到定义,我们会很惊讶的发现为什么只看到了cvCr ...

  5. 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域

    这是两个相关的程序,前者是后者的基础.实际上前一个程序也是在前面博文的基础上做的修改,请参考<在OpenCV中利用鼠标绘制直线> .下面贴出代码. 程序之一,在OpenCV中利用鼠标绘制矩 ...

  6. 利用Java调用OpenCV进行人脸识别

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt409 今天我准备学习如何用Java来进行人脸检测.人脸检测有助于在任何数字图 ...

  7. 基于opencv和qt的人脸检测小系统

    摘要:利用opencv读取视频.图片并检测人脸,利用QT显示窗口,功能选择等 环境:Ubuntu18.04.OpenCV3.4.0.QT5.10.1 效果图: 代码如下(比较简单没什么注释): mai ...

  8. 利用cmake查看opencv的源码

    当我们有时想查看opencv自带的函数的源代码,比如函数cvCreateImage, 此时我们选中cvCreateImage, 点击鼠标右键->转到定义,我们会很惊讶的发现为什么只看到了cvCr ...

  9. OpenCV - Android Studio 2.2 中利用CAMKE进行OpenCV的NDK开发

    我在http://www.cnblogs.com/fx-blog/p/8206737.html一文中提到了如何在Android Studio中Java层导入OpenCV(包含opencv_contri ...

随机推荐

  1. maven pom 详细配置

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  2. 【WIP_S2】递归

    创建: 2018/01/14    递归  定义  自己召唤自己  通用形式  if (基本情况A的处理) {     ...     return 值A  } else if (基本情况B的处理) ...

  3. Springboot 相关注解大全

    1.Spring注解 1.@Autowired 标注在方法,Spring容器创建当前对象,就会调用方法,完成赋值:方法使用的参数,自定义类型的值从ioc容器中获取自动装配; Spring利用依赖注入( ...

  4. spring 异常处理

    1. 实现接口 HandlerExceptionResolver 捕获异常 2.@ExceptionHandler 在方法添加注解,捕获本地controller异常 3.@ControllerAdvi ...

  5. Windows Server 2008 R2关闭FTP服务

    公司在ZJ的项目给了一台互联网可以访问的测试服务器,但是只给了三个访问端口,而且还做了映射. 映射信息如下:[1050->3389,1051->50000,1053->21] 其中1 ...

  6. ASP.NET 简介(转自Wiki)

    ASP.NET是由微软在.NET Framework框架中所提供,开发Web应用程序的类库,封装在System.Web.dll文件中,显露出System.Web名字空间,并提供ASP.NET网页处理. ...

  7. 304 Range Sum Query 2D - Immutable 二维区域和检索 - 不可变

    给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2). 上图子矩阵左上角 (row1, col1) = (2, 1) ,右 ...

  8. Kali Linux的介绍

    Kali Linux是什么? Kali Linux是一个渗透测试平台兼安全审计平台,它集成了多款漏洞检测.目标识别和漏洞利用工具. Kali Linux是专门用于渗透测试的Linux操作系统:基于De ...

  9. python2 'str' object has no attribute 'decode'

    '.decode('hex') 上述代码,报错: 'str' object has no attribute 'decode' 查找原因: https://stackoverflow.com/ques ...

  10. Java开发笔记(九十二)文件通道的基本用法

    前面介绍的各色流式IO在功能方面着实强大,处理文件的时候该具备的操作应有尽有,可流式IO在性能方面不尽如人意,它的设计原理使得实际运行效率偏低,为此从Java4开始增加了NIO技术,通过全新的架构体系 ...