前些日子有个需求,大概描述,实时检测一副动态图每一帧画面上全部的圆形内容,并得到全部圆形的圆心相对坐标以及半径。当时的思路是用Matlab写一个相关图像处理的插件,然后给C#调用。当时没立马动手的原因是matlab更偏向计算以及理论验证,一些灰度、二值化的算法需要新写,在图像处理方面的封装易用性方面不够实用。于是乎就到了题目所说的opencv了,是一个开源的跨平台视觉库,具体就不介绍了,网上介绍很多。
进入正题。
—————————————— BEGIN ———————————————
- 首先上opencv官网下载需要的包,本次用的2.4.9,完整的包名是opencv-2.4.9.exe。官网地址http://opencv.org/
- 解压安装到安装目录。如D:OpenCV,解压完成后得到D:OpenCVopencvxxxxx
- 添加环境变量。在系统环境变量Path后追加bin和lib路径,如D:OpenCVopencvuildx86vc11in和lib。
- 创建测试项目。打开vs2012,新建VC++控制台空项目。
- 配置项目属性。VC++目录——包含目录内添加opencv头文件路径D:OpenCVopencvuildinclude;库目录添加3的库路径。链接器输入附加依赖项添加以下内容:
- opencv_core249d.lib
- opencv_imgproc249d.lib
- opencv_highgui249d.lib
- opencv_ml249d.lib
- opencv_video249d.lib
- opencv_features2d249d.lib
- opencv_calib3d249d.lib
- opencv_objdetect249d.lib
- opencv_contrib249d.lib
- opencv_legacy249d.lib
- opencv_flann249d.lib
以上环境就配置好了。下面跑个小demo验证下。
1 #include <opencv2/opencv.hpp> 2 using namespace cv; 3 4 int main() 5 { 6 Mat img = imread("test.jpg", 1 ); //1为读取方式,默认 7 imshow("just a test", img); 8 waitKey(); 9 return 0; 10 }
Running。。。。。。。。
神之微笑^-^
尾巴, 项目路径下记得放张test.jpg图片,否则运行会报错哦,可以加异常处理规避。
————————————— END ———————————————
不同vs版本步骤可能有些许差别,内容有问题欢迎指出,祝顺利~~~