opencv降版本和安装增加cuda支持

opencv降版本貌似根本不用删除旧版。直接安装新版本即可。
想想应该也是这样,就文件都被覆盖了。
网上那个删除旧版本的方法并不好用。
比较方便的方法是make uninstall,但是这个并不靠谱,谁他妈还留着以前的安装文件夹和make出来的东西。
还有个rm的查找文件关键字有没有opencv,这他妈更不靠谱了,容易误删文件。
所以,我直接安装旧版。
opencv3.0.0太他妈坑爹了。比2.4版本变化太大。比如ML库中的函数都他妈变了,全是C++版的了。

opencv install with cuda

下载源文件后

1
2
3
4
5
mkdir release  
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D CUDA_ARCH_BIN="5.2"..
make
sudo make install

注意此处需要有-D CUDA_ARCH_BIN="3.0",这一个数根据显卡不同填,可依据显卡型号在NV官网查。或者些程序用cuda api查。或者matlab。里面的compute capability

然后如果使用pkg-config opencv --libs --cflags需要在.bashrc中加入

1
2
3
4
export PATH=/usr/local/cuda-7.0/bin:$PATH
export LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LIBRARY_PATH
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

这里使用LIBRARY_PATH,而非LD_LIBRARY_PATH.
否则,会得到以下错误。

1
2
3
4
5
6
/usr/bin/ld: cannot find -lcufft
/usr/bin/ld: cannot find -lcublas
/usr/bin/ld: cannot find -lnpps
/usr/bin/ld: cannot find -lnppi
/usr/bin/ld: cannot find -lnppc
/usr/bin/ld: cannot find -lcudart

最后可以通过在opencv中查看CV_VERSION确定版本。