Ubuntu安装和完全卸载opencv

                                            一、Opencv安装                                  

1、首先更新一下,安装一些依赖库

(可能不全,就缺什么安装什么吧)

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get install -y libopencv-dev
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev         # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev         # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran          # 优化opencv功能
sudo apt-get install ffmpeg

2、下载opencv

opencv可以通过下面两个链接下载
https://github.com/Itseez/opencv/archive/2.4.13.zip (针对2.4.13版本)
各个发布版:http://opencv.org/releases.html
github :https://github.com/opencv

下载后解压压缩包,然后执行下面的命令

cd opencv-2.4.13      #进入opencv文件夹(我用的是2.4.13)
mkdir build          #新建一个文件夹用于存放临时文件
cd build               #切换到该临时文件夹
#开始编译,此处/usr/local为安装目录,可以自己改,改了之后后面加环境变量也要同时改
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. 
make -j4              #编译,开启线程 按照自己的配置
sudo make install     #编译成功后安装,此处用sudo,因为要在/usr/local路   
                      #径下创建相关文件,必须root权限

3、验证:

(1)安装完成后通过查看 opencv 版本验证是否安装成功:

pkg-config --modversion opencv

命令执行后显示opencv版本号

(2)验证python中是否成功导入,同时cv2.__version__查看版本。

如上图,如果不报错,表示安装成功。

 

 

python 
import cv2
cv2.__version__
 

环境配置:有时还需要配置一下环境

1、环境配置添加库路径

sudo gedit /etc/ld.so.conf.d/opencv.conf 
#打开后可能是空文件,在文件内容最后添加
/usr/local/lib

2、更新系统

sudo ldconfig

 3、配置bash,执行如下命令

sudo gedit /etc/bash.bashrc 
# 在末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH 

4、保存退出,然后执行如下命令使得配置生效

source /etc/bash.bashrc

# 激活配置然后更新database

sudo updatedb

4、错误:

1、error while loading shared libraries: libopencv_core.so.3.4: cannot open share

原因:从这个提示可以知道系统找不到libopencv_core.so.3.4在哪儿,而系统是通过/etc/ld.so.conf中的路径找.so这个文件的。将libopencv_core.so.3.4的路径加入到.conf文件中就可以了。.so文件一般存放在/usr/local/lib目录下。

主要用过下面两个方式,其实是一样的,只是过程不同罢了

解决方法1:

对ld.so.conf这个文件进行编辑是需要获取超级权限的。

cd ~                              //先返回到根目录
sudo vim /etc/ld.so.conf         //获取超级权限,并用vim编辑器打开该文件

然后在末尾加入/usr/local/lib即可
退出后执行下面的语句使之生效

sudo ldconfig

然后就可以正常导入了
解决方法2:

如果执行程序显示找不到opencv可以执行下面的命令

sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

                

                                  二、完全卸载opencv

1、From repository,卸载从软件仓库中安装的opencv2

sudo apt-get purge libopencv* 

2、From source,卸载使用cmake自行编译安装的opencv2

首先进入原先编译opencv2的build目录,在该目录下打开终端;再执行以下代码。(注意如果build已经删除了,可以重新编译一遍该版本的opencv,然后在最后一步执行sudo make uninstall

sudo make uninstall
cd ..
sudo rm -r build
sudo 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*

这一步可能有error,忽略之。最后执行如下操作:

sudo apt-get --purge remove opencv-doc opencv-data python-opencv

然后就重新安装吧,依赖库等也要重新安装

 

                        三、ubutnu配置opencv_contrib

     在使用opencv时,如果想要在opencv中使用sift算子,我们需要安装extra_modules(Opencv_contrib)组件,opencv2中直接可以#include "opencv2/nonfree/nonfree.hpp"      #include "opencv2/legacy/legacy.hpp" 方式使用,但是opencv3将一些不稳定的或需要专利付费的算法整理出了一个模块opencv_contrib,因此需要单独安装。

安装Opencv和Opencv_contrib的时候要注意版本匹配,下面给出网址大家可以从里面挑选对应的版本:
https://github.com/opencv

注意:如果原来安装了opencv,先卸载。方法参照上面。然后重新安装opencv

安装OpenCV以及Opencv_contribe组件:

首先将二者解压,解压后将opencv_contrib移动道opencv文档目录下;

mkdir build  		
cd build       		
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/yourname/opencv-3.4.5/opencv_contrib-3.4.5/modules/ .. 
make -j4  			
sudo make install 	

CMAKE_INSTALL_PREFIX=/usr/local     是opencv的安装路径,一般在选择在/usr/local下

OPENCV_EXTRA_MODULES后面的路径是opencv_contib-3.4.5包的路径。

注意如果在opencv中使用申请专利的算法,会报错如下

 /home/sdc/Downloads/opencv-3.4.5/opencv_contrib-3.4.5/modules/xfeatures2d/src/surf.cpp:1027: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create'


这是由于申请了专利,需要重新编译,加上
-D OPENCV_ENABLE_NONFREE=YES  表示使用申请专利的算法

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_ENABLE_NONFREE=YES -D OPENCV_EXTRA_MODULES_PATH=/home/sdc/SoftWare/opencv-3.4.5/opencv_contrib-3.4.5/modules/ ..

本小节参考:

参考文章:1、 https://www.cnblogs.com/needybeerlxy/p/8979238.html

                  2、 https://blog.csdn.net/m0_37811342/article/details/80896671

                  3、  https://www.jianshu.com/p/5edff54264f9
 

  • 28
    点赞
  • 219
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值