Ubuntu16.04卸载其他版本的opencv并安装opencv3.2.0+opencv contrib3.2.0

来源:互联网 发布:java游戏 魔契 编辑:程序博客网 时间:2024/06/06 03:48

一、卸载已安装的opencv

1、查看已安装的opencv版本

$  pkg-config --modversion opencv

2、卸载

     首先要找到当初安装opencv的build目录,进入该build目录执行卸载操作

$  sudo make uninstall$  cd  ..$  rm -r build

    如果找不见该build目录,可以重新建立build目录安装对应版本,然后再执行上边卸载步骤。然后清理/usr中所有opencv相关项

$  rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*$  cd /usr$  find . -name "*opencv*" | xargs sudo rm -rf

    移除python相关

$  apt-get remove-doc opencv-data python-opencv

    如果找不见当时的安装目录,可能被删除了,就需要重新安装一遍,安装之后就可以进行uninstall操作了!

二、安装opencv3.2.0 + opencv contrib3.2.0

1、下载opencv3.2.0 以及 opencv contrib3.2.0

      opencv 3.2.0下载链接:

           链接1:Download1、Download2

           链接2:Download

      opencv_contrib 3.2.0 下载链接

           链接:Download

 2、安装opencv依赖库

$  sudo apt-get install build-essential$  sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev$  sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev


3、在住文件目录中创建opencv目录,将opencv3.2.0解压到该目录中,再将opencv contrib3.2.0解压到opencv3.2.0目录中。

 并且在主目录中创建build文件。

 

$  cd ~$  mkdir opencv
   将opencv3.2.0以及opencv contrib3.2.0解压到该目录下,可以在终端输入命令解压,也可以直接对压缩文件右键提取操作。

$  cd ~/opencv/opencv-3.2.0/$  mkdir build

 4、进入build目录并cmake:

第一步:$  cd ~/opencv/opencv-3.2.0/build第二步:$  cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv-3.2.0/opencv_contrib-3.2.0/modules/ ..上边位安装opencv_contrib模块,下边位不安装$  cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

  其中CMAKE_INSTALL_PREFIX=/use/local为安装的路径,OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv-3.2.0/opencv_contrib-3.2.0/modules为opencv_contrib-3.2.0的目录,并且最后两个点不能拉掉!

 

   cmake过程中可能遇到的问题: 1、如果网络不好,出现ippicv_linux_20151201.tgz无法在终端下载的情况,则可以先单独下载    ippicv_linux_20151201.tgz之后,把其移动到终端所提示的路径(终端会提示该路径找不到文    件),如路径/opencv-3.2.0/3rdparty/ippicv/downloads/linux-    808b791a6eac9ed78d32a7666804320e/    移动的时候,可以另外打开一个终端操作:    sudo mv ippicv_linux_20151201.tgz /opencv-3.2.0/3rdparty/ippicv/downloads    /linux-808b791a6eac9ed78d32a7666804320e    如果同样有其他类似的文件无法下载,方法同上。 2、如果出现如下的报错情况,请参考这篇文章解决 http://blog.csdn.net/tengxing007/article/details/54380732    Checking for module 'gtk+-3.0' --   No package 'gtk+-3.0' found -- Checking for module 'gstreamer-base-1.0' --   No package 'gstreamer-base-1.0' found checking for module 'gstreamer-base-1.0' --   package 'gstreamer-base-1.0' not found -- checking for module 'gstreamer-video-1.0'--   package 'gstreamer-video-1.0' not found -- checking for module 'gstreamer-app-1.0' --   package 'gstreamer-app-1.0' not found -- checking for module 'gstreamer-riff-1.0' --   package 'gstreamer-riff-1.0' not found -- checking for module 'gstreamer-pbutils-1.0' 
5、make与install

在原先的build目录下执行一下两步操作:$  sudo make$  sudo make install


6'、配置环境

在终端中打开 /etc/ld.conf.d/opencv.conf 文件,并在最后一行添加 /usr/local/lib,如果没有这个文件那就新建一个。然后打开 /etc/bash.bashrc 文件,在最后一行中添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv320/lib/pkgconfig
export PKG_CONFIG_PATH


$  sudo gedit /etc/ld.so.conf.d/opencv.conf#在最后一行中添加 /usr/local/lib$  sudo geidt /etc/bash.bashrc#在最后一行中添加:PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv320/lib/pkgconfigexport PKG_CONFIG_PATH$  sudo ldconfig 

    在make的时候可能出现的错误: error: ‘GstMiniObjectClass’ does not name a type类似的错误时明显地,与gstreamer-0.10有关,于是重装libgstreamer0.10-dev 、以及libgstreamer-plugins-base0.10-dev,没用。于是下载旧版本的opencv尝试编译,但是经过3.0.0-beta以及2.4.10都不行后,只有opencv-2.4.9编译是正常的。于是尝试对比2.4.9以及3.0.0-rc1的不同。看到CMakeList有如下信息:3.0.0-rc1的是:[html] view plain copy    OCV_OPTION(WITH_FFMPEG         "Include FFMPEG support"                      ON   IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )      OCV_OPTION(WITH_GSTREAMER      "Include Gstreamer support"                   ON   IF (UNIX AND NOT ANDROID) )      OCV_OPTION(WITH_GSTREAMER_0_10 "Enable Gstreamer 0.10 support (instead of 1.x)"                              OFF )      OCV_OPTION(WITH_GTK            "Include GTK support"                         ON   IF (UNIX AND NOT APPLE AND NOT ANDROID) )  2.4.9的是:[html] view plain copy    OCV_OPTION(WITH_FFMPEG         "Include FFMPEG support"                      ON   IF (NOT ANDROID AND NOT IOS))      OCV_OPTION(WITH_GSTREAMER      "Include Gstreamer support"                   ON   IF (UNIX AND NOT APPLE AND NOT ANDROID) )      OCV_OPTION(WITH_GTK            "Include GTK support"                         ON   IF (UNIX AND NOT APPLE AND NOT ANDROID) )  也就是2.4.9还默认使用电脑中所使用的gstreamer版本,而3.0.0已经默认使用最新的gstreamer1.0了(今天是2015.5.5,最新gstreamer为1.0)。到此,可以发现有两个解决方法:1,在cmake时:设置WITH_GSTREAMER_0_10=OFF2,安装最新gstreamer1.0因此我决定安装gstreamer1.0。即:[html] view plain copy    sudo apt-get install libgstreamer1.0-dev  libgstreamer-plugins-base1.0-dev   


如果没有出现错误则安装成功,可以运行$ pkg-config --modversion opencv 检查是不是3.2.0版本!

若运行$ pkg-config --modversion opencv后 提示:


Package opencv was not found in the pkg-config search path.Perhaps you should add the directory containing `opencv.pc'to the PKG_CONFIG_PATH environment variableNo package 'opencv' found
则需要运行下边语句

sudo cp /usr/local/opencv320/lib/pkgconfig/opencv.pc /usr/lib/pkgconfig



原创粉丝点击