这次要用OpenCV的CUDA库,我选择用了OpenCV2.4.13,为什么这次反而选择OpenCV2而不用OpenCV3了呢?
原因就是,OpenCV3搭配CUDA8编译问题频出,我终于意识到了,开源框架的配合安装不是版本越高就越好的。因为只要版本升级,代码就会修改,那么原本没有问题的两部分代码,可能一升级就配合不上了。因此必须要在网上看好别人成功编译时用什么版本搭配,然后完全照着他的版本安装才行。
我是看了
http://blog.csdn.net/caozhantao/article/details/51479172
才知道要CUDA8.0要搭配OpenCV2.4.13的。
选OpenCV2还有一个特别的原因,就是它没有把扩展包分出去,省去了麻烦,因为扩展包还是挺有用的。其次就是如果下载OpenCV2.4.11或以下发布版的话,那么有VS2010的编译库,还有32位和64位选,跟我的编译器能接合。当然了OpenCV2.4.13没有VS2010编译版,我也不用它的库,因为用CUDA的话就要重新编译。
当然了,编译期间还是出了一些问题,可参看
http://answers.opencv.org/question/33864/opencv-249-highgui-isnt-generated/
原因就是,OpenCV3搭配CUDA8编译问题频出,我终于意识到了,开源框架的配合安装不是版本越高就越好的。因为只要版本升级,代码就会修改,那么原本没有问题的两部分代码,可能一升级就配合不上了。因此必须要在网上看好别人成功编译时用什么版本搭配,然后完全照着他的版本安装才行。
我是看了
http://blog.csdn.net/caozhantao/article/details/51479172
才知道要CUDA8.0要搭配OpenCV2.4.13的。
选OpenCV2还有一个特别的原因,就是它没有把扩展包分出去,省去了麻烦,因为扩展包还是挺有用的。其次就是如果下载OpenCV2.4.11或以下发布版的话,那么有VS2010的编译库,还有32位和64位选,跟我的编译器能接合。当然了OpenCV2.4.13没有VS2010编译版,我也不用它的库,因为用CUDA的话就要重新编译。
当然了,编译期间还是出了一些问题,可参看
http://answers.opencv.org/question/33864/opencv-249-highgui-isnt-generated/
解决方法就是在CMAKE里把WITH_WIN32UI取消勾选即可。
具体的编译方法可参看
http://www.aiuxian.com/article/p-2482313.html
然后就是SSBA,必须要找到真正的源代码才行,我之前找了一个不全。下面是我找到的可用的
https://github.com/eokeeffe/SSBA
一些编译问题还是会出现的,例如
#include <opencv2/nonfree/gpu.hpp>
和
#include<windows.h>