MFC+openCV学习

来源:互联网 发布:mac sass安装失败 编辑:程序博客网 时间:2024/05/16 14:37

一 :将某文件夹的图片(BMP)显示到Dlg中去

 1、创建MFC  首先创建一个新的MFC对话框应用程序,在初始的GUI界面添加一个Button和一个Picture控件,在Button控件的属性菜单栏中修改标题“Caption”为“读图”,即此控件的功能是读取图片。将Picture控件的ID号设置为IDC_ShowImg,这个ID号在后面的图像显示函数中会用到

==========================

拉好框架后,自动生成的类,函数有:

class CAboutDlg : public CDialogEx


CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)END_MESSAGE_MAP()

CPicture_Control1Dlg::CPicture_Control1Dlg(CWnd* pParent /*=NULL*/): CDialogEx(CPicture_Control1Dlg::IDD, pParent)

void CPicture_Control1Dlg::DoDataExchange(CDataExchange* pDX)


BEGIN_MESSAGE_MAP(CPicture_Control1Dlg, CDialogEx)

BOOL CPicture_Control1Dlg::OnInitDialog()
在下面添加

// TODO: 在此添加额外的初始化代码CvSize ImgSize;//建立空间的大小    ImgSize.height = IMAGE_HEIGHT;    ImgSize.width = IMAGE_WIDTH;    TheImage = cvCreateImage( ImgSize, IPL_DEPTH_8U, IMAGE_CHANNELS ); //创建图像空间start=(double)clock();  //用于程序计时return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE

void CPicture_Control1Dlg::OnSysCommand(UINT nID, LPARAM lParam)

void CPicture_Control1Dlg::OnPaint()

HCURSOR CPicture_Control1Dlg::OnQueryDragIcon()



==========================
接下来是按钮定义的操作。


void CPicture_Control1Dlg::OnBnClickedButton1(){/*// TODO: Add your control notification handler code hereMyIplClass *Img =new MyIplClass;char* filename;//CString mPath ="C:\\OpenCV-2.2.0\\samples\\tiny.png";//IplImage* ipl = cvLoadImage( mPath, 1 );//This file should be part of the OpenCV kitfilename= "C:\\OpenCV-2.2.0\\samples\\tiny.png";Img->LoadBMP(filename);Img->GetIplData(TheImage);//ResizeImage(ipl);    // 对读入的图片进行缩放,使其宽或高最大值者刚好等于 256,再复制到 TheImage 中ShowImage(TheImage, IDC_PICTURE1);delete Img;RedrawWindow(NULL,NULL,RDW_INVALIDATE);//Force update the dialog*/ CFileDialog dlg(        TRUE, _T("*.bmp"), NULL,        OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,        _T("image files (*.bmp; *.jpg) |*.bmp; *.jpg | All Files (*.*) |*.*||"), NULL        );                                        // 选项图片的约定    dlg.m_ofn.lpstrTitle = _T("Open Image");    // 打开文件对话框的标题名    if( dlg.DoModal() != IDOK )                    // 判断是否获得图片        return;        CString mPath = dlg.GetPathName();            // 获取图片路径    IplImage* ipl = cvLoadImage( mPath, 1 );    // 读取图片、缓存到一个局部变量 ipl 中    if( !ipl )                                    // 判断是否成功载入图片        return;    if( TheImage )                                // 对上一幅显示的图片数据清零        cvZero( TheImage );ResizeImage( ipl ); //缩放ShowImage( TheImage, IDC_PICTURE1 );// 调用显示图片函数//cvSaveImage("C:\\OpenCV-2.2.0\\samples\\convert_result\\fuben.jpg",TheImage);CString str1;str1.Format("%d",ipl->height);CString str2;str2.Format("%d",ipl->width);CString str = str2+ "*"+str1;this->SetDlgItemText(IDC_EDIT2,str);    cvReleaseImage( &ipl );  




==========================
接下来是按钮定义的操作。


0 0
原创粉丝点击