ubuntu16下cuda10安装opencv2,并采用GPU加速,和实现与opencv3共存

  1. 下载的opencv2.4.11源码

  2. 然后按着网上教程 修改了opencv的源代码

  3. sudo apt-get install libopencv-dev

  4. 修改/data/opencv-2.4.11/modules/gpu/src/graphcuts.cpp

    #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
    改为
    #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

  5. 在usr/local下创建一个文件夹opencv2.4.11
    不能直接创建,用root创建 不然没权限
    如果不创建的话,自己改一下下面cmake语句中安装的位置

  6. 解析
    opencv-2.4.11/build/lib/libopencv_highgui.so.2.4.11: undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0
    这个错误 就是 后面编译其他项目会遇到这个错误,然后重新编译opencv 在cmake时,在后面加一句 -D BUILD_TIFF=ON ,这样tiff就会在编译opencv时自动编译好

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2.4.11  -D WITH_CUDA=ON -D BUILD_PYTHON_SUPPORT=ON -D WITH_FFMPEG=OFF -D BUILD_EXAMPLES=ON   -D BUILD_TIFF=ON ..
    
  7. 编译 make -j8

  8. sudo make install

  9. 在 sudo gedit ~/.bashrc 文件后面添加以下两行

     export PKG_CONFIG_PATH=/usr/local/opencv2.4.11/lib/pkgconfig  
     export LD_LIBRARY_PATH=/usr/local/opencv2.4.11/lib  
    

    然后保存修改 source ~/.bashrc
    这样 pkg-config --modversion opencv
    就是2了

因为源代码改的有点多,我自己也记不清到底改了多少了,所以我直接上传一份到百度网盘里。如果直接用的我给的,那么步骤2,4不用弄了

网址之后放上来,这边网速太慢,上传比较慢

链接: https://pan.baidu.com/s/19AaTZUMqCanJFHU2tAGetw 提取码: ph4w 复制这段内容后打开百度网盘手机App,操作更方便哦


后来发现一种比较便捷的方式:
一开始cmake 和make不指定路径,直接编译
然后sudo make install的时候,指定一下路径sudo make DESTDIR=/install/directory install
然后在指定的路径下面就会有对应的include头文件,lib库文件

你可能感兴趣的:(OpenCV,Ubuntu)