OpenCV学习笔记之一:OpenCV中显示图片(VS2010+OpenCV3.0版本)

在写的过程中,参考了网上许多网友的blog,在此谢过。如有雷同,不是巧合。大笑

一、OpenCV3.0的配置(百度)

1、  opencv下载:

具体下载地址,http://opencv.org/,因为我的操作系统是win7,所以选择了基于windows的opencv最新版opencv3.0.0。

2、  opencv解压

opencv下载完成后是一个rar文件,直接解压到要放的文件夹里,我是放在了D:\Program Files里。总共解压后会有四个文件:build、sources、LICENSE.txt、README.md.txt。

3、  设置电脑的环境变量

计算机——>右键——>属性——>高级系统设置——>高级——>环境变量——>系统变量——>path,在path里添加D:\ProgramFiles\opencv\build\x64\vc12\bin;D:\Program Files\opencv\build\x86\vc12\bin。(因为我的电脑是64位的,所以就添加X64。)

4、  opencv配置

新建一个win32控制台应用程序项目,打开此项目的属性管理器,如项目名为test,则属性管理器下会有Debug|win32和Release|win32。

(1)双击Debug|win32的Microsoft.Cpp.Win32.user,会打开属性页,在VC++目录中的包含目录中添加:

D:\Program Files\opencv\build\include

D:\ProgramFiles\opencv\build\include\opencv

D:\ProgramFiles\opencv\build\include\opencv2。

在库目录中添加:

D:\Program Files\opencv\build\x64\vc12\lib

D:\Program Files\opencv\build\x86\vc12\lib

为了防止漏洞,我特地加上了32位的库目录。

在链接器中,单击输入,选择附加依赖项opencv_ts300d.lib、opencv_world300d.lib。

(2)双击Release|win32的Microsoft.Cpp.Win32.user,在链接器中,单击输入,选择附加依赖项opencv_ts300.lib、opencv_world300.lib


二、图片显示
(一)控制台型的图片显示
1、建立控制台项目
 

2、

3、预编译头的“√”去掉,同时勾选“空项目”

4、在解决方案中添加新建项

5、添加.cpp文件

6、在main.cpp文件中添加如下代码

#include<iostream>

#include<opencv2/core/core.hpp>

#include<opencv2/highgui/highgui.hpp>

 

using namespace std;

 

int main()

{

         cv::Mat img = cv::imread("D:\\image\\baboon.jpg");

         cv::imshow("Picture",img);

 

         cv::waitKey(6000);

 

         return0;

}

7、效果显示


(二)MFC中的图片显示

1、菜单,文件 - 新建 - 项目



2、Visual C++MFC应用程序,名称为PictureShow


3、下一步


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



5、出现如下界面



6、添加Button按钮



7、修改属性



8、添加Picture Control控件,右击Picture控件,属性,打开控件属性窗口,其ID为IDC_STATIC,修改Type为Rectangle



9、右击按钮,添加事件处理程序



10、选择BN_CLICKED,类列表为CPictureShowDlg,函数名为OnBnClickedOpenButton,添加编辑



11、添加OpenCV的CvvImage文件

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




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

13、添加代码

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



14PictureShowDlg.h文件中CPictureShowDlg类的声明中添加函数DrawPicToHDC()的声明

void DrawPicToHDC(IplImage *img,UINT ID);



15、在PictureShowDlg.cpp文件中添加函数

voidCPictureShowDlg::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 );

}

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

voidCPictureShowDlg::OnBnClickedOpenButton()

{

         // TODO: 在此添加控件通知处理程序代码

         IplImage *image=NULL; //原始图像

         if(image) cvReleaseImage(&image);

         image =cvLoadImage("D:\\image\\baboon.jpg",1); //显示图片

         DrawPicToHDC(image, IDC_STATIC);

}

17编译运行

点击菜单下方工具栏中的绿色向右箭头即可编译生成程序



18点击Open Imae按钮即可打开D:\image\baboon.jpg并显示在Picture控件上




发布了15 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/fjqlldg/article/details/52189543