快寒假了,给自己布置了一项寒假作业——系统学习下OpenCV,学习中遇到的问题及解决办法将以学习笔记的形式记录,不足之处希望各位老司机批评指正,一起交流进步!
OpenCV版本选择:OpenCV已经出3.x版本了,考虑到实际应用中2.x版本用的更多,以及从2.x进一步学习3.x也很容易上手,因此整个学习笔记系列将以2.x版本为基础。由于OpenCV是一个跨平台的计算机视觉库,因此是不区分操作系统是32还是64位,但是库里面已经编译好的库或执行文件需要区分。在使用VS2010的WIN32平台进行调试时,统一使用32位(x86)的文件编译。
废话不多说,下面进入OpenCV开发环境的配置:OpenCV2.4.6 + VS2010
1、OpenCV安装及环境变量的配置
下载好源文件进行压缩,记住压缩后文件的位置,添加到系统的环境变量中:
等待压缩完毕,进行环境变量的添加:
2、VS2010配置OpenCV
(1)新建一个属性表,避免每次新建项目都要添加链接库带来的麻烦,进行如下调试配置(Debug)【如需要,Release配置相同】:
(2)VC++目录->包含目录/库目录
(3)链接器->输入->附加依赖项
附加依赖项包括【文件名含d,建议文件名放在一个txt中再拷贝,246为OpenCV版本型号】:
opencv_calib3d246d.lib
opencv_contrib246d.lib
opencv_core246d.lib
opencv_features2d246d.lib
opencv_flann246d.lib
opencv_gpu246d.lib
opencv_haartraining_engined.lib
opencv_highgui246d.lib
opencv_imgproc246d.lib
opencv_legacy246d.lib
opencv_ml246d.lib
opencv_nonfree246d.lib
opencv_objdetect246d.lib
opencv_ocl246d.lib
opencv_photo246d.lib
opencv_stitching246d.lib
opencv_superres246d.lib
opencv_ts246d.lib
opencv_video246d.lib
opencv_videostab246d.lib
配置好属性表以后可以将其单独拷贝出来,以后项目需要直接在属性管理器中添加现有属性表即可【参照第一步】!
3、测试——读取一张图片
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
// 读入一张图片
Mat img=imread("test1.jpg");
// 创建一个名为 "demo"窗口
cvNamedWindow("demo");
// 在窗口中显示demo画
imshow("demo",img);
// 等待6000 ms后窗口自动关闭
waitKey(6000);
return 0;
}
运行结果:
Perfect!
最后补充两个VS调试技巧:
1.调试时直接传入参数,可以在项目属性栏直接输入命令参数。
2.解决Ctrl+F5调试出现闪现看不到命令行窗口的情况: