參考 https://www.cnblogs.com/arkenstone/p/6490017.html
https://blog.csdn.net/u013180339/article/details/77507936
這里的安裝沒有用pip或是conda安裝,通過pip或者conda安裝的opencv只是封裝了opencv的Python API,一般情況下也夠用。但是如果准備安裝完整版本的opencv,這里比較建議將opencv-python卸載,以免之后產生一些不必要的報錯。
1.配置環境
$ 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 # 處理圖像所需的包 $ 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.下載opencv3.4.0
這里需要下載opencv和opencv_contrib(后者會在cmake配置的時候用到),這是因為opencv3以后SIFT和SURF之類的屬性被移到了contrib中
$ wget https://github.com/opencv/opencv/archive/3.4.0.zip # 從github上直接下載或者clone也可 $ wget https://github.com/opencv/opencv_contrib/archive/3.4.0.zip
3.配置編譯opencv (無NVIDIA CUDA版本)
解壓安裝完cmake配置屬性 ,創建編譯文件夾
$ unzip 3.4.0.zip
$ cd opencv-3.4.0
$ mkdir bilud
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.0/modules \
-D PYTHON_EXCUTABLE=/usr/bin/python \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \ # 1
-D WITH_GTK=ON \
-D WITH_OPENGL=ON \
-D BUILD_EXAMPLES=ON .. # cmake命令的使用方式:cmake [<some optional parameters>] <path to the OpenCV source directory>。
如果命令報錯的話可以試着把-D后面的空格去掉在執行一次。
$ make -j4 #4是根據自己電腦的核數確定,我的電腦4核
$ sudo make install
$ sudo /bin/bash -c 'echo "/home/fanzong/anaconda2/envs/tensorflow/lib" > /etc/ld.so.conf.d/opencv.conf'
$ sudo ldconfig
PS:1. 如果qt未安裝可以刪去此行;
CMAKE_INSTALL_PREFIX:安裝的python目錄前綴,其實就是指定了python模塊的安裝路徑。如下命令的輸出即是該路徑:
python -c "import sys; print(sys.prefix)"
PYTHON_EXCUTABLE:指定python的執行文件路徑。如下命令的輸出即是該路徑
which python
如果想關閉掉ippicv的安裝,只需在上述cmake命令中增加一行: -D WITH_IPP=OFF \ 即可
查看自己電腦核數的命令
# 總核數 = 物理CPU個數 X 每顆物理CPU的核數 # 總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超線程數 # 查看物理CPU個數 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l # 查看每個物理CPU中core的個數(即核數) cat /proc/cpuinfo| grep "cpu cores"| uniq # 查看邏輯CPU的個數 cat /proc/cpuinfo| grep "processor"| wc -l
# 查看CPU信息(型號)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
# 查看內 存信息
cat /proc/meminfo
# 查看cpu詳細信息
cat /proc/cpuinfo
上述配置命令執行成功后,繼續執行編譯命令
sudo make install 執行完畢后OpenCV編譯過程就結束了,接下來就需要配置一些OpenCV的編譯環境首先將OpenCV的庫添加到路徑,從而可以讓系統找到
sudo vim /etc/ld.so.conf.d/opencv.conf
執行此命令后打開的可能是一個空白的文件,不用管,只需要在文件末尾添加
/usr/local/lib
執行如下命令使得剛才的配置路徑生效
sudo ldconfig
4.完成安裝並測試
安裝完成以后,重啟下機器,檢測opencv版本
python -c "import cv2; print(cv2.__version__)"
如果正確安裝的話則會輸出3.4.0