您的位置:首页 > 编程语言

OpenCV3.0.1源码编译及自带样例工程代码编译

2016-07-27 13:35 761 查看
OpenCV3.0.1源码编译及自带样例工程代码编译

详细步骤参见博文:OpenCV3.0.1源码编译及自带样例工程代码编译

=========下面是个人在实际编译过程中遇到问题并解决的经历===========

按照推荐的博文,在opencv 源码编译好之后,在编译自带样例工程代码时,如果Cmake里的地址设置不正确,可能会遇到问题:



解决方法:

注:图中红色方框这里是的地址是你在配置opencv源代码时存放solution的地址,本人自建myBulid文件用于存放源代码solution,而opencv提供的样例工程代码我则存放在自建的sample_solution文件夹下。

总之,要区别源代码及solution和样例(samples)样例工程代码及solution,两者要分别编译。

便可以看到编译好的工程文件有146项projects最后的样例工程文件编译好之后用VS 2013打开samples.sln


打开之后,便可以看到编译好的工程文件有146项projects



打开一个样例文件例如,edge.cpp,就可以看到样例工程代码如下




按F5调试,等待两分钟左右(不同机器配置,编译时间有差别),可以看到成功生成145个工程,失败0个,一次编译通过,点个赞!哈哈哈哈·~~~~



==========================分割线==========================

下面开始选择一个运行样例工程文件运行,本文选择“(EXAMPLE) lkdemo”工程,然后右击鼠标选择Set
as StartUp Prpoject,
设置启动项目,该项目会变黑加粗。此工程源码用于检测视频运动目标。此工程源码使用改进的Lucas-Kanade光流算法,


Lucas–Kanade光流算法是一种两帧差分的光流估计算法,用于检测视频运动目标。用鼠标点击目标点,可视频跟踪。



1.由于选择的是一个视频跟踪的样例工程文件,所以你在工程代码的目录下面要有一个视频文件,你可到C:\openCV\opencv\sources\samples\data里寻找到一个768x576.avi的视频文件,

2.接着复制到C:\openCV\opencv\sample_solution\cpp\Debug目录下

3.然后对样例代码进行修改VideoCapture
cap
改为VideoCapture
cap("768x576.avi"),载入该视频


【步骤3的替代方案,不载入视频,直接调取摄像头,VideoCapture
cap改为VideoCapture
cap(0)】


4.最后Ctrl+F5运行。

===========================================

可能出现类似如下问题,无法启动此程序,因为计算机中丢失opencv_xxx310d.dll,



也就是电脑缺失下列文件中的某一项,无法启动此程序,因为计算机中丢失opencv_xxx310d.dll,

opencv_calib3d310d.dll

opencv_core310d.dll

opencv_features2d310d.dll

opencv_flann310d.dll

opencv_highgui310d.dll

opencv_imgcodecs310d.dll

opencv_imgproc310d.dll

opencv_ml310d.dll

opencv_objdetect310d.dll

opencv_photo310d.dll

opencv_shape310d.dll

opencv_stitching310d.dll

opencv_superres310d.dll

opencv_ts310d.dll

opencv_video310d.dll

opencv_videoio310d.dll

opencv_videostab310d.dll

===========================================

解决方法:

1.找到上述所有文件,本人该文件所在目录是C:\openCV\opencv\myBuild\bin\Debug

如果找不到,可以到网上下载,下载地址

2.并拷贝到C:\Windows\system32\目录下,或者C:\Windows\SysWOW64目录下

===========================================
本人采取的是方案是调取本地摄像头,最后运行结果如下:





程序运行评价:

在硬币的“角”字上用鼠标点击,可以看到图中的会有一个绿色的标记圆点,该标记点的位置会随着周围硬币的运动而改变,缺点是对环境光比较敏感,还有待改进,当然这是比较基础的视频跟踪了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息