基于OPenCV和MFC的读图程序

一、基本设置(通用)

安装好opencv后并设置好环境(见《opencv安装与装置》)

二、对话框

在VC++6.0中新建对话框,工程名为yuhuan。

然后按以下几个步骤:

(1)给对话框添加一个读图按钮和picture控件分别修改读图按钮和picture控件ID为:IDC_OPENIMAGE,IDC_IMAGE.如右图。并为读图按钮添加实现函数。

(2)在对话框的头文件yuhuanDlg.h中添加opencv的两个头文件。

#include "cv.h"
#include "highgui.h" // include GUI library interface

并在对话框类的定义中添加公共变量和公共函数

IplImage *srcimage; //源图像
CString filePath; //打开图像的路径
void DrawPicToHDC(IplImage *image, UINT ID);//在控件上显示图片

(3) 在yuhuanDlg.cpp编写读图函数

void CYuhuanDlg::OnOpenimage()
{
// TODO: Add your control notification handler code here

//采用了MFC提供的类CFileDialog
CFileDialog fileOpenDlg(TRUE, _T("*.bmp"), "",OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_HIDEREADONLY,
"image files (*.jpg;*.bmp) |*.jpg;*.bmp|image file(*.bmp)|*.bmp;|image file(*.png)|*.png;|All Files (*.*)|*.*||",NULL);
char title[]= {"Open Image"}; //仅仅设置对话框的标题
fileOpenDlg.m_ofn.lpstrTitle= title;
if (fileOpenDlg.DoModal()==IDOK)
{
filePath=fileOpenDlg.GetPathName();
srcimage= cvvLoadImage(filePath); //根据打开图像的路径读图
DrawPicToHDC(srcimage,IDC_IMAGE); //根据控件的ID将图像显示在对话框中
}
}

(4)编写在控件中显示图片的函数
void CYuhuanDlg::DrawPicToHDC(IplImage *image, UINT ID)
{
CDC *pDC = GetDlgItem(ID)->GetDC();
HDC hDC= pDC->GetSafeHdc();
CRect rect;
GetDlgItem(ID)->GetClientRect(&rect);
CvvImage cimg; //只有CvvImage类的图像才有下面的DrawToHDC函数
cimg.CopyOf(image,3);
cimg.DrawToHDC(hDC,&rect);
ReleaseDC(pDC);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值