VS2013 MFC 直接将 OpenCV2.0/3.0 库中的 Mat 结构的图像传递到 Picture Control(图片控件)
接上文 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(图片控件)相关推荐
- MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片
最近有同学问我如何实现MFC基于对话框在图片控件中加载图片?其实使用MFC显示图片的方法各种各样,但是还是有些同学不知道怎样显示.以前在<数字图像处理>课程中完成的软件都是基于单文档的程序 ...
- MFC Picture Control 自适应控件大小显示图片,失真和不失真
StretchBlt和BitBlt都用在双缓冲视图中,用来显示一幅图像 一.StretchBlt 函数从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩.也即是将内存中的 ...
- VS2013图片控件bug
在VS2013中添加图片控件,经常会出现 error RC2108: expected numerical dialog constant这个错误. 个人感觉这应该是VS2013的一个bug.经过几番 ...
- OpenCV+MFC学习笔记(二):OpenCV二值化处理图像并在Picture Control中并自适应显示
在前面我们已经完成通过OpenCV读取图片在Picture Control中并自适应显示.下面我们很自然的需要对读取的图片进行处理,处理完之后很自然的想到要看看效果.所以今天的笔记是通过OpenCV灰 ...
- vs2015+opencv3.2+mfc读取摄像头显示在图片控件Picture Control
vs2015 + opencv3.3 + mfc读取摄像头显示在图片控件Picture Control 要开始做一个行人检测的小项目,首先读取出摄像头显示,参考了这位博主的教程:http : //bl ...
- 项目MFC总结(二)——读取CSV文件将数据转化为图像显示在图片控件
功能 点击[打开文件]按钮,选择文件打开,将数据处理为图像(默认处理第10帧开始),然后将图像显示在图片控件. 注:整个项目有关图像处理的操作基本用OpenCV实现. 读取文件实现 1.添加按钮控件 ...
- MFC基于对话框添加图片控件
建立MFC基于对话框工程,命名为AutoRecFunct. 第一种方法:拖动一个图片控件修改其ID为IDC_STATIC_PICTURE. 右击为其添加变量m_picture. 不知为何不能在初始化的 ...
- MFC的图片控件的使用(图片适应控件大小并不失真)
MFC的图片控件的使用 建立一个基于对话框的MFC 如图 ,为新建MFC的窗口 接下来添加图片控件(如果添加全部背景则不需要添加图片控件,直接进行消息响应函数的添加即可) 添加图片控件 ...
- ajax control toolkit vs2013,如何将Ajax Control Toolkit控件安装到Visual Studio 2005工具箱
摘要:如何将 Ajax Control Toolkit 控件安装到 Visual Studio 2005 工具箱 How to Install Ajax Control Toolkit for Vis ...
最新文章
- 筛选法求N以内的所有素数
- 南大电子机器人入驻云南_云南大学外语协会 英文歌曲演唱比赛
- music算法原理_大话FMCW雷达之区域检测原理
- 基于pygame的射击小游戏制作(二)射击子弹
- 布隆过滤器避免redis缓存穿透
- oracle删除判断是否存在,oracle创建表之前判断表是否存在,如果存在则删除已有表...
- 34、JS/AJAX
- Python 中的range,以及numpy包中的arange函数
- LAMP、LNMP实战之九搭建cms、blog、bbs(持续更新)
- linux查找、搜索字符或文件
- Windows Devcpp配置MYSQL
- 整理了20个最全的设计师学习网站,推荐收藏!
- 回顾传输层的TCP与UDP协议
- 英特尔服务器主板型号哪里看,intel cpu型号参数如何查看
- Java教师工资习题
- 基于LAB颜色空间的彩色图像分割
- linux 查看用户访问ip,(总结)按时按登录IP记录Linux所有用户操作日志的方法(附脚本)...
- HAL库自学笔记#2【PWM】
- 太吾绘卷第一世攻略_《太吾绘卷》怎么让自己子嗣兴旺 后宫养成子嗣兴旺方法攻略...
- 记录(Record)
热门文章
- Mysql 引优化分析
- php验证码图片看不清更换代码,php如何实现验证码看不清换一张的效果
- 计算机应用技术参加文献,面向科技文献的机器翻译(4)-计算机应用技术专业毕业论文.docx...
- 技术文件服务器搭建,搭建文件服务器_mob604756e49326的技术博客_51CTO博客
- php编程输出心形图案_如何用C语言先输出一段文字如何再输出心形图案?
- layui totalRow 多层嵌套json_自定义 Behavior,实现嵌套滑动、平滑切换周月视图的日历...
- OpenCV精进之路(十九):工具——程序打包发布
- CUDA——线程配置
- 每天一算法(一)——用链表实现加减乘运算
- 华语歌坛年度压轴 王力宏新专辑《心中的日月》