小弟转行学图像已经有一段时间了,这段时间一直在被数据结构和算法导论折磨得半生不死,(说实话,这些东西学起来还真是太枯燥了),
回想起当初学OpenCV时候的那股兴奋,想想,还是把学习过的知识总结一下,和大家共勉一下,顺便复习。
写这篇博客的时候,OpenCV最新的版本是 2.4.8,所以就下下来,重新学习一篇。
一、首先,我们当然要知道,OpenCV是什么?
这里,我们简单的了解一下:OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库. 无论你是做科学研究,还是商业应用,opencv都可以作为你理想的工具库,因为,对于这两者,它完全是免费的。
二、下载和安装OpenCV SDK
1.下载VS2010:打开网址下载http://www.xiazaiba.com/html/4614.html,然后看评论你就懂了。
2.下载OpenCV(目前最新版本2.4.8):打开官网http://opencv.org/上找到OpenCV windows版下载下来
3.下载完之后你的系统会多了一个
,双击“解压”,目录名字最好要清晰,不要简单的opencv,因为以后你的电脑里面可能不止一个版本,
解压后,你就会多了一个文件夹:
其中,build里面是使用OpenCV相关的文件,我们如果只是使用OpenCV的话呢,就只用管build里面的内容。
sources里面包含了一些源代码。(暂时可以不用管它)
三、配置环境变量
在这里要说明一下,有些朋友说这里不用配置也行,其实是不行的,如果后面出现,
,
我很负责任的说,绝大部分是你的环境变量没有设置好。
(如果您正确配置后还是出现这个错误,我建议您可以尝试这样做:
opencv\build\x86\vc10\bin目录下所有文件,拷贝到C:/Windows/system32 下)
这步的配置方法如下:
计算机->(右键)属性->高级系统设置-->环境变量->(双击)path(用户,系统里面的path任选其一)->在变量值里面添加相应的路径。
对于32位系统,就添加:(记得要加上分号)
…… opencv\build\x86\vc10\bin;
而对于64位系统,可以两个都添加上:
…… opencv\build\x86\vc10\bin;
和…… opencv\build\x64\vc10\bin;
这样,到时候就可以在编译器Win32和X64中来回切换
例如,博主的是32位系统
D:\OpenCV 2.4.8\opencv\build\x86\vc10;
《PS:我们在此先在环境变量添加一个新的环境变量 OPENCV(不区分大小写) 》,如图:
有什么用下面再说。
注:变量值实际为bin文件夹的路径;X64表示运行系统环境位64位系统,X86表示32位系统;vc10表示编译环境为Microsoft Visual Studio 2010;变量添加完成后需要注销系统,才会生效。
四、配置VS2010
属性管理器,将“一劳永逸”
首先,创建一个新的工程,选择“视图”——“其他窗口”——“属性管理器”,如下图所示。
在弹出的配置框中配置,选择“VC++目录”。
(1)在“包含目录”中的结尾处加入以下内容添加以下内容:
$(opencv)\include\opencv;
$(opencv)\include\opencv2;
$(opencv)\include;
(2)在库目录中的结尾处加入以下内容添加:
$(opencv)\x86\vc10\lib;
注:$(opencv)\include\opencv是告诉VC去“opencv”这个变量中的文件夹下的\include\opencv路径中找OpenCV的库文件目录。
$(opencv)好处是,如果opencv的位置变了,我们只需要更改环境变量)
如下图所示。
(3)在“链接器”-“输入”-“附加依赖选项”中的结尾处加入以下内容:
opencv_calib3d248d.lib
opencv_contrib248d.lib
opencv_core248d.lib
opencv_features2d248d.lib
opencv_flann248d.lib
opencv_gpu248d.lib
opencv_highgui248d.lib
opencv_imgproc248d.lib
opencv_legacy248d.lib
opencv_objdetect248d.lib
opencv_ts248d.lib
opencv_video248d.lib
opencv_nonfree248d.lib
opencv_ocl248d.lib
opencv_photo248d.lib
opencv_stitching248d.lib
opencv_superres248d.lib
opencv_videostab248d.lib opencv_calib3d248.lib
opencv_contrib248.lib
opencv_core248.lib
opencv_features2d248.lib
opencv_flann248.lib
opencv_gpu248.lib
opencv_highgui248.lib
opencv_imgproc248.lib
opencv_legacy248.lib
opencv_ml248d.lib
opencv_objdetect248.lib
opencv_ts248.lib
opencv_video248.lib
opencv_nonfree248.lib
opencv_ocl248.lib
opencv_photo248.lib
opencv_stitching248.lib
opencv_superres248.lib
opencv_videostab248.lib
(有用没有都加进去吧,反正有备无患,哈哈)
如下图所示。
需要注意的是,所粘贴内容即为%(opencv)\x86\vc10\lib下所有lib库文件的名字;其中的248代表我们的OpenCV版本为2.4.8,
若是其他版本的配置则在这里要进行相应的更改,
d结尾的Debug库文件,Release则没有,如 opencv_ts248d.lib和opencv_ts248.lib
点击确定,至此OpenCV的配置完成。
五、测试
1.选择一张图片放在工程目录下(跟Debug同个目录),并命名为beach.jpg。
2.创建一个win32控制台程序
3.输出以下代码:
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
int main()
{
//从默认目录读进一个名为beach.jpg的图片
cv::Mat image = cv::imread("beach.jpg");
//显示图片
cv::imshow("Image",image);
//等待按键
cv::waitKey(0);
}
4.编译、运行
环境变量、 包含目录、 库目录还有 附加依赖项是否真确配置。
6.不出错的情况下,会在窗口名为Image的窗口显示一个图片。
祝大家配置成功!(有问题欢迎询问、改正)