ubutu16.04卸载opencv2安装opencv3

最近在安装caffe,然后caffe安装失败,最后定位到可能出现的错误原因就是opencv版本。虽然不知道什么时间安装了opencv2,现在发现重新安装opencv3并不是那么的容易,也是花了几个小时才安装好了,这里记录以下填坑的step。

系统版本:

  • ubutu 16.04
  • anoconda 4.3.30
  • python 3.6
  • opencv 3.2.0
  • caffe 1.0.0

0. 前言

这里我们安装opencv3是为了后面安装caffe服务的。由于caffe是属于比较老的框架,然后对python 2.7支持比较好,或者python3.5以下也是可以的,但是由于我们的python是3.6,以及tensorflow == 1.6,因此我们尝试在python 3.6的情况下,安装caffe CPU版本。

1. 卸载老版本的opencv2

由于不知道什么时间,处于什么目的安装了opencv2,于是乎我们先卸载低版本的opencv2,但是卸载并不是那么简单的。

首先我们使用命令pkg-config opencv --modversion查看当前opencv版本号,发现是2.×.×,具体的版本也不太记得了,只记得是首数字是2,所以我们先卸载老版本的。这里卸载参考了几篇文章:

  1. CSDN:ubuntu下彻底卸载opencv的方法
  2. CSDN:卸载opencv3
  3. CSDN: linux下查看opencv安装路径以及版本号

当时卸载这个的时候,删了好多次都没有删掉干净,输入命令

pkg-config opencv --libs
pkg-config opencv --modversion

还是会出现opencv相关的信息,然后我们抱着死马当活马医的态度,使用了如下命令:

step1,输入命令:

 sudo apt-get autoremove opencv-doc opencv-data libopencv-dev libopencv2.4-java libopencv2.4-jni python-opencv libopencv-core2.4 libopencv-gpu2.4 libopencv-ts2.4 libopencv-photo2.4 libopencv-contrib2.4 libopencv-imgproc2.4 libopencv-superres2.4 libopencv-stitching2.4 libopencv-ocl2.4 libopencv-legacy2.4 libopencv-ml2.4 libopencv-video2.4 libopencv-videostab2.4 libopencv-objdetect2.4 libopencv-calib3d2.4

step2,输入命令(可能某些文件没有,但是没有太大关系):

sudo rm -rf /usr/local/include/opencv2 
sudo rm -rf /usr/local/include/opencv 
sudo rm -rf /usr/include/opencv 
sudo rm -rf /usr/include/opencv2 
sudo rm -rf /usr/local/share/opencv 
sudo rm -rf /usr/local/share/OpenCV 
sudo rm -rf /usr/share/opencv 
sudo rm -rf /usr/share/OpenCV 
sudo rm -rf /usr/local/bin/opencv*
sudo rm -rf /usr/local/lib/libopencv*

step3, 输入命令:

pkg-config opencv --libs
pkg-config opencv --modversion

这个时候发现没有再出现和opencv相关的字眼了,就证明我们卸载老版本成功了,上面的暴力卸载仅仅作为参考!!如果您实在是没有什么法子,或者不担心东西不见了,可以试试~~或者您有更好的办法,也可以评论,互相学习。

2. 安装新版本的opencv3

参考文章:

  1. CSDN:ubuntu16.04安装opencv3.4.1教程
  2. CSDN:Ubuntu16.04 上openCV的卸载与 opencv3.0.2安装记录

1.去官网下载opencv,在本教程中选用的是opencv3.2.0,其他版本的配置方法异曲同工。
下载链接https://github.com/opencv/opencv/releases/tag/3.2.0,选择sources code(zip)版本。

2.解压下载下来的zip包,并拷贝以及重命名。

unzip opencv-3.2.0.zip  
sudo cp ./opencv-3.2.0 /home   
sudo mv opencv-3.2.0 opencv  

3.进入到解压后的文件包中

cd opencv 

4.安装依赖库和cmake ,如果提醒需要apt-get update,那就先sudo su进入root权限,再sudo apt-get update,然后在执行下面命令

sudo apt-get install cmake  
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev  

5.安装完cmake之后执行命令 ,创建编译文件夹

mkdir build
cd build

6.cmake一下

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

注意:如果已经在新的文件夹中编译,但是还会出现之前的报错,把cmakecache.txt删了再编译就可

7.运行上面第六步命令的时候,需要下载一个文件,如果网络不是很好的情况下,很有可能下载失败,我们需要手动进行替换。参考ICV: Downloading ippicv_linux_20151201.tgz 超时

解决的办法是手动下载:ippicv_linux_20151201.tgz

原始的ippicv_linux_20151201.tgz是空的,我们用上面下载的进行替换,这个ippicv_linux_20151201.tgz路径在我的电脑位置如下:

/home/xuchao/opencv3.2-master/all/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e

在替换之后,我们在重新输入步骤6的命令:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

这个时候就没有错误了。

8.执行命令,漫长的编译过程

sudo make

编译的速度还是很慢的。
ubutu16.04卸载opencv2安装opencv3_第1张图片
9.执行命令

sudo make install

10.sudo make install执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到

sudo gedit /etc/ld.so.conf.d/opencv.conf 

执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加:

/usr/local/lib  

ubutu16.04卸载opencv2安装opencv3_第2张图片

11.执行如下命令使得刚才的配置路径生效

sudo ldconfig  

如果出现错误,可以参考ubuntu16.04安装opencv3.4.1教程解决方法。我这里没有出现错误。

12.配置bash

sudo gedit /etc/bash.bashrc  

在最末尾添加

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

保存,执行如下命令使得配置生效

source /etc/bash.bashrc  

更新

sudo updatedb  

这句更新我的电脑好像没啥反应,我是直接输入后面直接退出了。

3. 测试opencv3

3.1 简单方法

直接输入命令:

pkg-config --modversion opencv

ubutu16.04卸载opencv2安装opencv3_第3张图片
注意:

一开始没有注意,后来安装caffe之后发现进入python环境之后import cv2出现ImportError: No module named cv2错误,然后又重新安装Opencv3和caffe,又走了很多弯路。。。最后在一篇帖子发现解决方法。你只要添加一行代码就行了。。。这里版本的话,可以和pkg-config opencv --modversion尽量一致就可以了

pip install opencv-python==3.2.0.8

真的是多走了多少弯路啊!!!

Ubuntu16.04安装opencv3.2.0

3.2 稍微复杂的例子

cd到一个文件下,注意/home/xuchao可能需要换成你自己的位置。

cd /home/xuchao/opencv3.2-master/all/opencv-3.2.0/samples/cpp/example_cmake

目录下
我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下
按顺序执行

cmake .
make
./opencv_example

即可看到打开了摄像头,在左上角有一个hello opencv
即表示配置成功。

虽然这个一闪而过,啥也没有看清,姑且认识它是好的吧~~~

4. 安装opencv_contrib

opencv_contrib-3.2.0.zip是opencv 3以后新添加的一个仓库,这个新仓库包含很多让人兴奋的功能:脸部识别,文本探测,文本识别,新的边缘检测器,充满艺术感的图像修复,深度地图处理,新的光流和追踪算法等。但该仓库是大多数实验性代码放置的地方,一些API可能会有改变。

参考

  1. Ubuntu安装和完全卸载opencv
  2. Ubuntu16.04安装opencv3
  3. opencv_contrib-3.2.0.zip下载地址

然后可能需要重新卸载opencv3,在重新安装opencv,编译。好吧,我只是先安装caffe,后面如果有需要在安装opencv_contrib-3.2.0吧~~~

唉,没想到Caffe这么难装,tensorflow,pytorch它不香吗~

你可能感兴趣的:(caffe)