一、基本设置(通用)
安装好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);
}
基于OPenCV和MFC的读图程序
最新推荐文章于 2022-07-20 19:19:53 发布