接上文 VS2013 MFC + OpenCV3.0 打开图片;

既然我们已经从 OpenCV1.0 走到了 OpenCV2.0 乃至更高,又何苦在写基于 MFC 的图像处理程序时,又回到 OpenCV 旧式的语法结构。

如此优雅的方式,见于知乎 在 MFC 框架中,有什么方法能直接将 OpenCV 2.0 库中 Mat 格式的图片传递到 Picture Control(图片控件)显示?

我们直接进入代码修改部分:

1. 添加所需的头文件

在 C**Dlg 类所对应的头文件(**Dlg.h)中添加:

#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include "CvvImage.h"

2. 创建 OpenCV 窗口

在 C**Dlg.h 类所对应的源文件(**Dlg.cpp)的 BOOL CMFC_DEMODlg::OnInitDialog()添加:

    cv::namedWindow("view", cv::WINDOW_AUTOSIZE);HWND hWnd = (HWND)cvGetWindowHandle("view");HWND hParent = ::GetParent(hWnd);::SetParent(hWnd, GetDlgItem(IDC_STATIC)->m_hWnd);::ShowWindow(hParent, SW_HIDE);

3. 响应鼠标左键,显示图像

在 OnBnClickedOpenImage 函数体内:

    cv::Mat img = cv::imread("./BaboonRGB.bmp");cv::imshow("view", img);

4. 修正一个问题

view窗口句柄的方法,虽然设置的view窗口是在相应ID的PictureControl上显示了,但显示的图片仍保持原本的尺寸大小,而不是根据在对话框中的PictureControl窗口大小自适应显示;

所以,在调用imshow(“view”, img) 前最好先加上:

    cv::Mat m_dst;cv::Mat img = cv::imread("./BaboonRGB.bmp");CRect rect;GetDlgItem(IDC_STATIC)->GetClientRect(&rect);cv::Rect dst(rect.left, rect.top, rect.right, rect.bottom);cv::resize(img, m_dst, cv::Size(rect.Width(), rect.Height()));// 需要添加 #include <opencv2/imgproc/imgproc.hpp>cv::imshow("view", m_dst);

VS2013 MFC 直接将 OpenCV2.0/3.0 库中的 Mat 结构的图像传递到 Picture Control(图片控件)相关推荐

  1. MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片

    最近有同学问我如何实现MFC基于对话框在图片控件中加载图片?其实使用MFC显示图片的方法各种各样,但是还是有些同学不知道怎样显示.以前在<数字图像处理>课程中完成的软件都是基于单文档的程序 ...

  2. MFC Picture Control 自适应控件大小显示图片,失真和不失真

    StretchBlt和BitBlt都用在双缓冲视图中,用来显示一幅图像 一.StretchBlt 函数从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩.也即是将内存中的 ...

  3. VS2013图片控件bug

    在VS2013中添加图片控件,经常会出现 error RC2108: expected numerical dialog constant这个错误. 个人感觉这应该是VS2013的一个bug.经过几番 ...

  4. OpenCV+MFC学习笔记(二):OpenCV二值化处理图像并在Picture Control中并自适应显示

    在前面我们已经完成通过OpenCV读取图片在Picture Control中并自适应显示.下面我们很自然的需要对读取的图片进行处理,处理完之后很自然的想到要看看效果.所以今天的笔记是通过OpenCV灰 ...

  5. vs2015+opencv3.2+mfc读取摄像头显示在图片控件Picture Control

    vs2015 + opencv3.3 + mfc读取摄像头显示在图片控件Picture Control 要开始做一个行人检测的小项目,首先读取出摄像头显示,参考了这位博主的教程:http : //bl ...

  6. 项目MFC总结(二)——读取CSV文件将数据转化为图像显示在图片控件

    功能 点击[打开文件]按钮,选择文件打开,将数据处理为图像(默认处理第10帧开始),然后将图像显示在图片控件. 注:整个项目有关图像处理的操作基本用OpenCV实现. 读取文件实现 1.添加按钮控件 ...

  7. MFC基于对话框添加图片控件

    建立MFC基于对话框工程,命名为AutoRecFunct. 第一种方法:拖动一个图片控件修改其ID为IDC_STATIC_PICTURE. 右击为其添加变量m_picture. 不知为何不能在初始化的 ...

  8. MFC的图片控件的使用(图片适应控件大小并不失真)

    MFC的图片控件的使用 建立一个基于对话框的MFC  如图 ,为新建MFC的窗口 接下来添加图片控件(如果添加全部背景则不需要添加图片控件,直接进行消息响应函数的添加即可)       添加图片控件 ...

  9. ajax control toolkit vs2013,如何将Ajax Control Toolkit控件安装到Visual Studio 2005工具箱

    摘要:如何将 Ajax Control Toolkit 控件安装到 Visual Studio 2005 工具箱 How to Install Ajax Control Toolkit for Vis ...

最新文章

  1. 筛选法求N以内的所有素数
  2. 南大电子机器人入驻云南_云南大学外语协会 英文歌曲演唱比赛
  3. music算法原理_大话FMCW雷达之区域检测原理
  4. 基于pygame的射击小游戏制作(二)射击子弹
  5. 布隆过滤器避免redis缓存穿透
  6. oracle删除判断是否存在,oracle创建表之前判断表是否存在,如果存在则删除已有表...
  7. 34、JS/AJAX
  8. Python 中的range,以及numpy包中的arange函数
  9. LAMP、LNMP实战之九搭建cms、blog、bbs(持续更新)
  10. linux查找、搜索字符或文件
  11. Windows Devcpp配置MYSQL
  12. 整理了20个最全的设计师学习网站,推荐收藏!
  13. 回顾传输层的TCP与UDP协议
  14. 英特尔服务器主板型号哪里看,intel cpu型号参数如何查看
  15. Java教师工资习题
  16. 基于LAB颜色空间的彩色图像分割
  17. linux 查看用户访问ip,(总结)按时按登录IP记录Linux所有用户操作日志的方法(附脚本)...
  18. HAL库自学笔记#2【PWM】
  19. 太吾绘卷第一世攻略_《太吾绘卷》怎么让自己子嗣兴旺 后宫养成子嗣兴旺方法攻略...
  20. 记录(Record)

热门文章

  1. Mysql 引优化分析
  2. php验证码图片看不清更换代码,php如何实现验证码看不清换一张的效果
  3. 计算机应用技术参加文献,面向科技文献的机器翻译(4)-计算机应用技术专业毕业论文.docx...
  4. 技术文件服务器搭建,搭建文件服务器_mob604756e49326的技术博客_51CTO博客
  5. php编程输出心形图案_如何用C语言先输出一段文字如何再输出心形图案?
  6. layui totalRow 多层嵌套json_自定义 Behavior,实现嵌套滑动、平滑切换周月视图的日历...
  7. OpenCV精进之路(十九):工具——程序打包发布
  8. CUDA——线程配置
  9. 每天一算法(一)——用链表实现加减乘运算
  10. 华语歌坛年度压轴 王力宏新专辑《心中的日月》