看到的不是自己的,只有写下来的才是自己的,上次接触OpenCV实在三个月前,亢奋的看完了OpenCV自带的入门文档,觉得对图形处理有了一点点了解,现在三个月过去了,由于学习需要,想深入了解OpenCV,发现之前学过的知识在脑袋里零零散散的,所以想重读入门文档,同时将其记录下来。部分内容我会根据自己的理解选择性的记录,如对原理不理解,建议阅读官方文档。
开发环境VS2010+Win7x64。当前VS2010支持的最新的OpenCV是opencv-2.4.11。从官方网站下载。
1.安装
打开exe,选择一个目录即可将已编译好的OpenCV库和其源代码解压出来,笔者解压目录E:\openlib。若需要自行编译源码,请查看官网说明。
2.设置环境变量
为了开发软件和移植工程过程中更加方便,添加OPENCV_DIR环境变量。
(添加方法:计算机--属性--高级--环境变量--系统变量)
VS2010+32位系统 OPENCV_DIR E:\openlib\OpenCV\Build\x86\vc10
VS2010+64位系统 OPENCV_DIR E:\openlib\OpenCV\Build\x64\vc10
VS2012+32位系统 OPENCV_DIR E:\openlib\OpenCV\Build\x86\vc11
VS2012+64位系统 OPENCV_DIR E:\openlib\OpenCV\Build\x64\vc11
在path中增加 ;%OPENCV_DIR%\bin
3.VS2010环境配置(VS2012类似)
新建控制台工程
编辑属性表属性,在C/C++--常规--附加包含目录中添加 $(OPENCV_DIR)\..\..\include
连接器--常规--附加库目录中添加 $(OPENCV_DIR)\lib
链接器--常规--附加依赖项中添加
opencv_calib3d2411d.lib opencv_contrib2411d.lib opencv_core2411d.lib opencv_features2d2411d.lib opencv_flann2411d.lib opencv_gpu2411d.lib opencv_highgui2411d.lib opencv_imgproc2411d.lib opencv_legacy2411d.lib opencv_ml2411d.lib opencv_nonfree2411d.lib opencv_objdetect2411d.lib opencv_ocl2411d.lib opencv_photo2411d.lib opencv_stitching2411d.lib opencv_superres2411d.lib opencv_ts2411d.lib opencv_video2411d.lib opencv_videostab2411d.lib
其中2411代表当前版本号,d代表当前为调试版本。
Release配置中同样添加一个属性表。重复以上步骤。链接库如下:
opencv_calib3d2411.lib opencv_contrib2411.lib opencv_core2411.lib opencv_features2d2411.lib opencv_flann2411.lib opencv_gpu2411.lib opencv_highgui2411.lib opencv_imgproc2411.lib opencv_legacy2411.lib opencv_ml2411.lib opencv_nonfree2411.lib opencv_objdetect2411.lib opencv_ocl2411.lib opencv_photo2411.lib opencv_stitching2411.lib opencv_superres2411.lib opencv_ts2411.lib opencv_video2411.lib opencv_videostab2411.lib
4.测试环境
cpp文件中粘贴如下代码
1 #include <opencv2/core/core.hpp> 2 #include <opencv2/highgui/highgui.hpp> 3 #include <iostream> 4 5 using namespace cv; 6 using namespace std; 7 8 int main( int argc, char** argv ) 9 { 10 Mat image; 11 // 打开当前目录下的lena.jpg文件 12 image = imread("lena.jpg", IMREAD_COLOR); 13 14 if(! image.data ) // 打开是否成功 15 { 16 cout << "Could not open or find the image" << std::endl ; 17 return -1; 18 } 19 //创建一个窗口用来显示图片 20 namedWindow( "Display window", WINDOW_AUTOSIZE ); 21 //显示窗口 22 imshow( "Display window", image ); 23 //等待用户按键 24 waitKey(0); 25 return 0; 26 }
当前目录下放入图片名为lena.jpg,运行程序,显示成功图片即配置成功。
5.属性表说明
为什么需要添加属性表?添加属性表的好处是属性表可以通用的,以后的项目如果需要使用OpenCV库,则可以直接添加现有属性表,完成OpenCV的配置。
本文结束。