几年以前我简单的测试过 OpenCV,那时的感觉印象不太好,好像是 canny 边界算子的实现有问题。
最近我下载了 2.4.5 版本,测试下来 OpenCV 真是今非昔比,国外能把开源的平台做到这样,真是佩服!
OpenCV自带的测试程序多为cmd-line模式,为了增强集中测试能力我改为dialogue形式,这样一个testor就能测试OpenCV的很多特性。
测试的原始代码文件位于 OpenCV\samples\cpp, OpenCV\samples\cpp\tutorial_code, 我对源文件进行了重组及必要的编辑处理。
编译运行时需要的 OpenCV-lib,dlls:
参见 TestCV.cpp 里 #pragma comment(lib, "opencv_***.lib") 语句引用的所有模块。
摄像头以及读取视频文件需要 opencv_ffmpeg.dll 的支持,否则读取失败!
请修改VC工程配置文件 pubset.props, exesetr.props, exesetd.props 以成功编译,并从OpenCV安装目录
拷贝必要的dlls到编译好的目标目录下。
注:VC10/11下编译时链接OpenCV-dll成功,但链接OPENCV的静态库失败!
演示功能特性列表:
DrawingCV: OpenCV basics, displaying, trackbar
ImageFilter: Gauss, Bilateral, Kalman, etc.
ImageProcs: morphing, threshold, blending
EdgeDetector: canny,sobel,laplace, etc.
HoughDetector: line and circles
image segment: watershed, meanshift, EM, kmeans
CornerDetector: Harris, Tomasi, Subpixel
FaceyesDetector: face/eyes detecting, camera-video supported
Feature2D_SURF: Homography, FlannMatcher
HistorgramProcs: Equalize, Matching, Backproject
MotionTracking: FeatureTrack, Lukas-Kanade
Video_demo: video read/write, psnr, Retina
ClusterAlgs: Support Vector Machines, EM, kmeans
pnts classifier: NBC, KNN, SVM, DT, BT, GBT, RF, ERT, ANN, EM
letter recognize: randtrees, boost, MLP, knearest, Bayes, SVM
Camera Calibration: in_VID5.xml, VID5.xml
注:
1.运行编译好的程序前,请先运行记事本Notepad.exe,运行过程中有些信息将输出到记事本显示。
参见 xdebug.h 里定义的函数 xprintf, PrintTestInfo.
2.同一个测试项目下又分若干个子条目,当点击测试按钮 TestGO 几次后报告消息----
"this test-item finished!" 的时候,该测试项目才完成!
需要的图像及数据文件:
在本测试程序 TestCV.exe 所在的目录的父目录下建立两个文件夹:cvimages, cascades
在我的机器上目录如下:
D:\bin\cascades
D:\bin\cvimages
D:\bin\Debug\TestCVD.exe
D:\bin\Release\TestCV.exe
cvimages 目录:
把 OpenCV\samples\cpp 下(包括子目录)所有的图像视频文件以及xml配置文件拷贝到 cvimages 目录下;
该目录还包括下列文件:
letter-recognition.data
Megamind_sub.bmp: 这是我自己增加的,用于目标匹配。
cascades 目录:
把 OpenCV\data 下的所有文件(包括子目录下的)拷贝到 cascades 目录下;
该目录下的文件用于人脸和眼睛识别。
程序源码下载地址:
http://download.csdn.net/detail/xlh9718/5752013