MFC中picture控件中利用OpenCV显示图像
2016-05-16 09:12
696 查看
如何将一张图像(Mat类型或者IplImage* 类型)显示到指定图像控件中?经过一系列探索,解决方法如下:
OpenCV程序在MFC中实现的方法通常是采用CvvImage类,这个类的成员函数DrawToHDC可将位图整体经缩放后显示到视图窗口中,但是我的opencv版本为2.4.9,没有这个类,因此需要手动添加”CvvImage.h”和”CvvImage.cpp”.这个自己可以在网上自行下载。
那如何将IplImage*类型的图像转化为CvvImage类型呢,很简单,因为CvvImage类有CopyOf(IplImage*)函数。代码如下:
如果要显示Mat类型呢,可以先将Mat类型转换为IplImage类型,再转换为CvvImage类型:
OpenCV程序在MFC中实现的方法通常是采用CvvImage类,这个类的成员函数DrawToHDC可将位图整体经缩放后显示到视图窗口中,但是我的opencv版本为2.4.9,没有这个类,因此需要手动添加”CvvImage.h”和”CvvImage.cpp”.这个自己可以在网上自行下载。
那如何将IplImage*类型的图像转化为CvvImage类型呢,很简单,因为CvvImage类有CopyOf(IplImage*)函数。代码如下:
void ImageShow(IplImage* img,UINT ID){ CDC *pDC=GetDlgItem(ID)->GetDC();//获得显示控件的DC HDC hDC=pDC->GetSafeHdc();//获取设备句柄来进行绘图操作 CRect rect; GetDlgItem(ID)->GetClientRect(&rect); CvvImage cimg; cimg.CopyOf(img); cimg.DrawToHDC(hDC,&rect); ReleaseDC(pDC); }
如果要显示Mat类型呢,可以先将Mat类型转换为IplImage类型,再转换为CvvImage类型:
void ImageShow(Mat img, UINT ID) { CDC *pDC = GetDlgItem(ID)->GetDC();//获得显示控件的DC HDC hDC = pDC->GetSafeHdc();//获取设备句柄来进行绘图操作 CRect rect; GetDlgItem(ID)->GetClientRect(&rect); CvvImage cimg; IplImage img_temp = IplImage(img);//转化为IplImage类型 cimg.CopyOf(&img_temp); cimg.DrawToHDC(hDC, &rect); ReleaseDC(pDC); }
相关文章推荐
- IT在线学习网站总结
- CoreThink基础模块结构、主题,开源地址
- Target runtime Apache Tomcat v6.0 is not defined.
- Shell标准输出、标准错误
- 最新Eclipse TomCat 进行JRebel热部署插件安装、破解及配置
- 关于NSRunLoop和NSTimer的深入理解
- 1015 of dop
- 在模拟器上安装OpenCV Manager
- 影响网站收录正常的6大原因
- 网站创建:必要探听的域名和空间相关知识
- linux centos6.5下mysql 数据库的源码安装
- linux中使用yum进行软件的安装
- LVS & Nginx 的区别与优缺
- Tomcat阀
- 电商系统的高并发设计和挑战
- 构建高性能.NET应用之配置高可用IIS服务器-第一篇:IIS必须掌握的知识
- poj 1521 Entropy 并查集+优先队列实现哈夫曼编码
- linux input output i/o重定向 bash算术运算
- Nginx安装与配置文件解析
- Pause/Resume Instance 操作详解 - 每天5分钟玩转 OpenStack(34)