您的位置:首页 > 运维架构

VS2010 / MFC + OpenCV 2.4.3 打开图片

2013-11-05 21:28 357 查看
一、新建项目

菜单,文件 - 新建 - 项目

Visual C++,MFC应用程序,名称为MFC_SHOWIMG

下一步

基于对话框,不使用Unicode库,在静态库中使用MFC,完成

二、配置OpenCV环境

可参考http://dczxxuhai.blog.163.com/blog/static/172216907201172624243741/

三、添加和设置控件

菜单,视图,工具箱,打开工具箱
选中Button控件

同理,添加Picture Control控件

右击Picture控件,属性,打开控件属性窗口,其ID为IDC_STATIC,修改Type为Rectangle,将Picture控件大小调整合适
右击添加的Button按钮,属性,可将Caption改为OpenImg,右击按钮,添加事件处理程序

选择BN_CLICKED,类列表为CMFC_SHOWIMGDlg,函数名为OnBnClickedOpenimg,添加编辑



四、添加OpenCV的CvvImage文件

右击解决资源方案管理器中的头文件,添加,现有项,选择CvvImage.h。

同样,源文件中添加CvvImage.cpp

注意:CvvImage.h和CvvImage.cpp在OpenCV2.4.3中没有,需要自己在网上下载。

下载地址:http://ishare.iask.sina.com.cn/f/33440676.html

opencv2.2以上不支持CvvImage的解决办法http://blog.csdn.net/geniussnail/article/details/7469035

五、添加代码

在类视图或解决方案管理器中双击打开MFC_SHOWIMGDlg.h

添加代码

#include "cv.h"
#include "highgui.h"
#include "CvvImage.h"


在MFC_SHOWIMGDlg.h文件中CMFC_SHOWIMGDlg类的声明中添加函数DrawPicToHDC()的声明

void DrawPicToHDC(IplImage *img, UINT ID);


在MFC_SHOWIMGDlg.cpp文件中添加函数

void CMFC_SHOWIMGDlg::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);
}


在新增按钮的响应函数中添加代码为如下

void CMFC_SHOWIMGDlg::OnBnClickedOpenimg()
{
// TODO: 在此添加控件通知处理程序代码
IplImage *image = NULL;//原始图像
if(image)
cvReleaseImage(&image);
image = cvLoadImage("demo.jpg",1);//显示图片
DrawPicToHDC(image,IDC_STATIC);
}


六、编译运行

​点击OpenImg按钮即可打开demo.jpg并显示在Picture控件上

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vs2010 opencv mfc 图片