centos安装opencv全过程

来源:互联网 发布:淘宝街拍照片如何调色 编辑:程序博客网 时间:2024/05/22 16:49

安装opencv无数次,每次都还有新发现,今天记下来吧。

1、安装依赖

yum install cmake gcc gcc-c++ gtk2-devel gimp-develgimp-devel-tools gimp-help-browser zlib-devel libtiff-devel libjpeg-devellibpng-devel gstreamer-devel libavc1394-devel libraw1394-devel libdc1394-develjasper-devel jasper-utils swig python libtool nasm

2、下载文件包

http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download

3、安装

unzip opencv-2.4.9.zip

cd opencv-2.4.9

cmake CMakeLists.txt

make

make install

4、配置环境变量

vim ~/.bashrc

export OpenCV_DIR=$OpenCV_DIR:/root/opencv-2.4.9/include/opencv
export LD_LIBRARY_PATH="/root/opencv-2.4.9/3rdparty/lib:$LD_LIBRARY_PATH"

source ~/.bashrc

5、测试

cd samples

cd c

./build_all.sh

6、安装结束


会出现的问题:

1、nvcc fatal : Unsupported gpu architecture 'compute_11'

解决办法:

打开 sources\cmake 目录,使用文本编辑器编辑OpenCVDetectCUDA.cmake

找到下面一段

[html] view plain copy
  1. if(NOT DEFINED __cuda_arch_bin)  
  2.   if(ANDROID)  
  3.     set(__cuda_arch_bin "3.2")  
  4.     set(__cuda_arch_ptx "")  
  5.   else()  
  6.     if(${CUDA_VERSION} VERSION_LESS "5.0")  
  7.       set(__cuda_arch_bin "1.1 1.2 1.3 2.0 2.1(2.0) 3.0")  
  8.     else()  
  9.       set(__cuda_arch_bin "1.1 1.2 1.3 2.0 2.1 3.0 3.5")  
  10.     endif()  
  11.     set(__cuda_arch_ptx "3.0")  
  12.   endif()  
  13. endif()  

把第二个1.1  1.2  1.3  2.0 2.1  去掉,修改为

[html] view plain copy
  1. if(NOT DEFINED __cuda_arch_bin)  
  2.   if(ANDROID)  
  3.     set(__cuda_arch_bin "3.2")  
  4.     set(__cuda_arch_ptx "")  
  5.   else()  
  6.     if(${CUDA_VERSION} VERSION_LESS "5.0")  
  7.       set(__cuda_arch_bin "1.1 1.2 1.3 2.0 2.1(2.0) 3.0")  
  8.     else()  
  9.       set(__cuda_arch_bin "5.2 6.1")  
  10.     endif()  
  11.     set(__cuda_arch_ptx "3.0")  
  12.   endif()  
  13. endif()  

或者直接修改为使用于本机GTX1080 显卡的 6.1

重新make && make install

参考连接:http://blog.csdn.net/wishchin/article/details/64128067


2、 errors detected in the compilation of "/tmp/tmpxft_0001b798_00000000-11_NCVPyramid.compute_30.cpp

解决办法:

将其中template声明中的所有static全部删除。可以使用vim的全局替换,或者其他编辑工具全局替换即可(template<> static inline 替换为template<> inline ):

参考连接:http://www.yanjiankang.cn/Linux-install-OpenCV-on-Ubuntu-or-Redhat/


3、cudalegacy/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutState’ has not been declared

解决办法:

解决方案:需要修改一处源码:在graphcuts.cpp中将
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) 
改为
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
参考连接:http://blog.csdn.net/allyli0022/article/details/62859290


4、测试的时候出现问题

解决办法:将出错的cpp中的show等在centos下无法执行的代码注释掉,然后重新make && make install,在编译测试脚本

原创粉丝点击