VS2013 MFC + OpenCV3.0 打开图片
2016-04-19 10:57
417 查看
本文仅涉及一些核心步骤,具体 OpenCV 的配置以及其他的细节问题,请参考 VS2010 / MFC + OpenCV 2.4.1打开图片。
OpenCV 3. 的配置相较 OpenCV 2 在依赖项的添加上会简略很多。
右击添加的按钮,属性,将其 Caption 改为 OpenImg;
(2)同理,添加Picture Control控件
右击 Picture 控件,属性,打开控件属性窗口,其 ID 为 IDC_STATIC,修改Type 为 Rectangle,将 Picture 控件大小调整合适(用于最终图像的显示)。
(3)右击按钮,添加事件处理程序
选择BN_CLICKED,类列表为CMFC_DEMODlg(交由 Dialog 类捕获按钮单击消息),函数名为OnBnClickedOpenImg,添加编辑
CvvImage.cpp 下载地址:CvvImage.cpp
【头文件】(右键)⇒ 添加现有项 ⇒ CvvImage.h
【源文件】(右键)⇒ 添加现有项 ⇒ CvvImage.cpp
(2)在 C**Dlg 类的声明中添加 DrawPicToHDC()成员函数的声明:
(3)C**Dlg 类对应的源文件(**Dlg.cpp)中添加 DrawPicToHDC() 的实现
(4)为新增按钮的响应函数(OnBnClickedOpenImg)添加代码:
1. 新建 MFC 对话框项目
基于对话框,不使用Unicode库,在静态库中使用MFC,完成2. 配置 OpenCV 3.
略OpenCV 3. 的配置相较 OpenCV 2 在依赖项的添加上会简略很多。
3. 添加和设置控件
(1)菜单,视图,工具箱,打开工具箱 ⇒ 添加 Button 控件;右击添加的按钮,属性,将其 Caption 改为 OpenImg;
(2)同理,添加Picture Control控件
右击 Picture 控件,属性,打开控件属性窗口,其 ID 为 IDC_STATIC,修改Type 为 Rectangle,将 Picture 控件大小调整合适(用于最终图像的显示)。
(3)右击按钮,添加事件处理程序
选择BN_CLICKED,类列表为CMFC_DEMODlg(交由 Dialog 类捕获按钮单击消息),函数名为OnBnClickedOpenImg,添加编辑
4. 添加 OpenCV 的 CvvImage 文件(.h, .cpp)
CvvImage.h 下载地址:CvvImage.hCvvImage.cpp 下载地址:CvvImage.cpp
【头文件】(右键)⇒ 添加现有项 ⇒ CvvImage.h
【源文件】(右键)⇒ 添加现有项 ⇒ CvvImage.cpp
5. 添加代码
(1)打开 C**Dlg 类对应的头文件(**Dlg.h)的起始位置处添加:#include <opencv\cv.h> #include <opencv\highgui.h> #include "CvvImage.h"
(2)在 C**Dlg 类的声明中添加 DrawPicToHDC()成员函数的声明:
void DrawPicToHDC(IplImage *img, UINT ID);
(3)C**Dlg 类对应的源文件(**Dlg.cpp)中添加 DrawPicToHDC() 的实现
void CMFC_DEMODlg::DrawPicToHDC(IplImage *img, UINT ID) { CDC *pDC = GetDlgItem(ID)->GetDC(); HDC hDC= pDC->GetSafeHdc(); CRect rect; GetDlgItem(ID)->GetClientRect(&rect); CvvImage cimg; cimg.CopyOf( img ); // 复制图片 cimg.DrawToHDC( hDC, &rect ); // 将图片绘制到显示控件的指定区域内 ReleaseDC( pDC ); }
(4)为新增按钮的响应函数(OnBnClickedOpenImg)添加代码:
void CMFC_DEMODlg::OnBnClickedOpenImg() { // TODO: 在此添加控件通知处理程序代码 IplImage *image=NULL; //原始图像 if(image) cvReleaseImage(&image); image = cvLoadImage("D:\\demo.jpg",1); //显示图片 DrawPicToHDC(image, IDC_STATIC); }
6. 编译运行,大功告成
相关文章推荐
- 深入剖析tomcat读书笔记——连接器
- virtualbox下CentOS上网设置(NAT+Host-only)
- copy weak strong assign等等
- Netdata Linux下性能实时监测工具
- EMBOSS Linux 下安装使用(needleall)
- Photoshop设计五一女性商品促销海报实例教程
- 如何用Loadrunner监控Tomcat
- 【linux】linux文件属性权限的介绍
- Linux中使用数据备份同步工具Rsync的实例教程
- 搭建linux的DHCP服务器傻瓜教程
- yaf框架官方手册nginx配置错误
- nginx下多项目跨域ajax实现
- 精通Tomcat之路-学习笔记之一:配置Tomcat
- linux下逻辑地址-线性地址-物理地址图解
- hadoop2.6.0版本集群环境搭建
- opencv3.X如何使用nonfreee包
- apache ab 相关参数
- Linux 内核子系统之内存与进程管理子系统
- Linux远程登录配置
- linux利用转crt和key转换keystore文件