Ubuntu16.04下python3.5和C++安装 / 卸载opencv

首先说明一点,在Ubuntu环境下编译opencv后python和C++都是可以使用的。

编译opencv

Ubuntu16.04 自带python2.7和python3.5两个版本,默认为python2.7,我使用的是3.5,所以首先将默认的python版本改为3.5.

在终端输入下列指令:

 

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150


接下来安装一系列opencv依赖的文件:

 

 

sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev

sudo apt-get install libgtk-3-dev

sudo apt-get install libatlas-base-dev gfortran

sudo apt-get install python3.5-dev
sudo apt-get install python3-numpy


接着在opencv的官网下载opencv文件,下载完成后解压通过终端进入解压的文件夹,新建build文件夹,并进入:

 

 

mkdir build
cd ./biuld

接着执行:

 

 

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D PYTHON3_EXECUTABLE=/usr/bin/python3 \
-D PYTHON_INCLUDE_DIR=/usr/include/python3.5 \
-D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib/python3.5/dist-packages/numpy/core/include/ ..

开始make:

make -j4


make完成后开始安装:

sudo make install

接着

pip3 install opencv-python


最后进入python3.5环境import cv2没问题说明安装完成。

 

------------------------------------------------------------------------------

接下来讲下卸载的流程:

首先通过终端进入之前建立的build文件夹,接着开始卸载:

 

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*


有些文件可能提示没有,可以忽略。

 

最后删除一些依赖:

 

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

 

---------------------

配置C++下opencv的环境

简单说下ubuntu下安装qtcreator以及配置opencv的步骤:

(1)点击链接下载你所需要的qtcreator版本

(2)进入下载安装包所在文件夹打开终端,添加权限进行安装

chmod +x qt-opensource-linux-x64-5.6.3.run
./qt-opensource-linux-x64-5.6.3.run

(3)在图形安装界面中进行安装程序

(4)安装完后建立一个新项目选择Non-Qt-Project  —>  C++Project

(5)在自动生成的.pro文件中加入以下头文件

INCLUDEPATH += /usr/local/include \
/usr/local/include/opencv \
/usr/local/include/opencv2

(6)打开/usr/local/lib文件夹将所有的libopencv库文件添加到.pro文件中,可在终端中输入“ls”指令方便查看:

添加后保存.pro文件:

列出我编译出的所有库文件:

LIBS += /usr/local/lib/libopencv_calib3d.so \
/usr/local/lib/libopencv_highgui.so.3.4.0 \
/usr/local/lib/libopencv_calib3d.so.3.4 \
/usr/local/lib/libopencv_imgcodecs.so \
/usr/local/lib/libopencv_calib3d.so.3.4.0 \
/usr/local/lib/libopencv_imgcodecs.so.3.4 \
/usr/local/lib/libopencv_core.so \
/usr/local/lib/libopencv_imgcodecs.so.3.4.0 \
/usr/local/lib/libopencv_core.so.3.4 \
/usr/local/lib/libopencv_imgproc.so \
/usr/local/lib/libopencv_core.so.3.4.0 \
/usr/local/lib/libopencv_imgproc.so.3.4 \
/usr/local/lib/libopencv_cudaarithm.so \
/usr/local/lib/libopencv_imgproc.so.3.4.0 \
/usr/local/lib/libopencv_cudaarithm.so.3.4 \
/usr/local/lib/libopencv_ml.so \
/usr/local/lib/libopencv_cudaarithm.so.3.4.0 \
/usr/local/lib/libopencv_ml.so.3.4 \
/usr/local/lib/libopencv_cudabgsegm.so \
/usr/local/lib/libopencv_ml.so.3.4.0 \
/usr/local/lib/libopencv_cudabgsegm.so.3.4 \
/usr/local/lib/libopencv_objdetect.so \
/usr/local/lib/libopencv_cudabgsegm.so.3.4.0 \
/usr/local/lib/libopencv_objdetect.so.3.4 \
/usr/local/lib/libopencv_cudacodec.so \
/usr/local/lib/libopencv_objdetect.so.3.4.0 \
/usr/local/lib/libopencv_cudacodec.so.3.4 \
/usr/local/lib/libopencv_photo.so \
/usr/local/lib/libopencv_cudacodec.so.3.4.0 \
/usr/local/lib/libopencv_photo.so.3.4 \
/usr/local/lib/libopencv_cudafeatures2d.so \
/usr/local/lib/libopencv_photo.so.3.4.0 \
/usr/local/lib/libopencv_cudafeatures2d.so.3.4 \
/usr/local/lib/libopencv_shape.so \
/usr/local/lib/libopencv_cudafeatures2d.so.3.4.0 \
/usr/local/lib/libopencv_shape.so.3.4 \
/usr/local/lib/libopencv_cudafilters.so \
/usr/local/lib/libopencv_shape.so.3.4.0 \
/usr/local/lib/libopencv_cudafilters.so.3.4 \
/usr/local/lib/libopencv_stitching.so \
/usr/local/lib/libopencv_cudafilters.so.3.4.0 \
/usr/local/lib/libopencv_stitching.so.3.4 \
/usr/local/lib/libopencv_cudaimgproc.so \
/usr/local/lib/libopencv_stitching.so.3.4.0 \
/usr/local/lib/libopencv_cudaimgproc.so.3.4 \
/usr/local/lib/libopencv_superres.so \
/usr/local/lib/libopencv_cudaimgproc.so.3.4.0 \
/usr/local/lib/libopencv_superres.so.3.4 \
/usr/local/lib/libopencv_cudalegacy.so \
/usr/local/lib/libopencv_superres.so.3.4.0 \
/usr/local/lib/libopencv_cudalegacy.so.3.4 \
/usr/local/lib/libopencv_videoio.so \
/usr/local/lib/libopencv_cudalegacy.so.3.4.0 \
/usr/local/lib/libopencv_videoio.so.3.4 \
/usr/local/lib/libopencv_cudaobjdetect.so \
/usr/local/lib/libopencv_videoio.so.3.4.0 \
/usr/local/lib/libopencv_cudaobjdetect.so.3.4 \
/usr/local/lib/libopencv_video.so \
/usr/local/lib/libopencv_cudaobjdetect.so.3.4.0 \
/usr/local/lib/libopencv_video.so.3.4 \
/usr/local/lib/libopencv_cudaoptflow.so \
/usr/local/lib/libopencv_video.so.3.4.0 \
/usr/local/lib/libopencv_cudaoptflow.so.3.4 \
/usr/local/lib/libopencv_videostab.so \
/usr/local/lib/libopencv_cudaoptflow.so.3.4.0 \
/usr/local/lib/libopencv_videostab.so.3.4 \
/usr/local/lib/libopencv_cudastereo.so \
/usr/local/lib/libopencv_videostab.so.3.4.0 \
/usr/local/lib/libopencv_cudastereo.so.3.4 \
/usr/local/lib/libopencv_cudastereo.so.3.4.0 \
/usr/local/lib/libopencv_cudawarping.so \
/usr/local/lib/libopencv_cudawarping.so.3.4 \
/usr/local/lib/libopencv_cudawarping.so.3.4.0 \
/usr/local/lib/libopencv_cudev.so \
/usr/local/lib/libopencv_cudev.so.3.4 \
/usr/local/lib/libopencv_cudev.so.3.4.0 \
/usr/local/lib/libopencv_dnn.so \
/usr/local/lib/libopencv_dnn.so.3.4 \
/usr/local/lib/libopencv_dnn.so.3.4.0 \
/usr/local/lib/libopencv_features2d.so \
/usr/local/lib/libopencv_features2d.so.3.4 \
/usr/local/lib/libopencv_features2d.so.3.4.0 \
/usr/local/lib/libopencv_flann.so \
/usr/local/lib/libopencv_flann.so.3.4 \
/usr/local/lib/libopencv_flann.so.3.4.0 \
/usr/local/lib/libopencv_highgui.so \
/usr/local/lib/libopencv_highgui.so.3.4

最后在你的main.cpp文件中读取一张图片试试:

#include <iostream>
#include <opencv2/opencv.hpp>
#include "cv.h"
#include "highgui.h"

using namespace std;
using namespace cv;

int main()
{
    Mat image;
    image = imread("/home/wz/qt_C++_Pro/test/1.jpg");
    imshow("1", image);
    waitKey(0);
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值