在本教程中,我們將學習在Ubuntu System中設置OpenCV-Python。以下步驟針對Ubuntu 16.04和18.04(均為64位)進行了測試。
可以通過兩種方式在Ubuntu中安裝OpenCV-Python:
另一個重要的事情是所需的其他庫。OpenCV-Python僅需要Numpy(除了其他依賴關係,我們將在後面看到)。但是在本教程中,我們還使用Matplotlib進行一些簡單而又漂亮的繪圖目的(與OpenCV相比,我感覺好多了)。Matplotlib是可選的,但強烈建議使用。同樣,我們還將看到IPython,這是一個強烈推薦的交互式Python終端。
僅用於編程和開發OpenCV應用程式時,此方法最有效。
在終端(以root用戶身份)中使用以下命令安裝python-opencv:https://packages.ubuntu.com/trusty/python-opencv軟體包。
$ sudo apt-get install python-opencv
打開Python IDLE(或IPython),然後在Python終端中鍵入以下代碼。
import cv2 as cv
print(cv.__version__)
如果列印出來的結果沒有任何錯誤,那就恭喜!你已經成功安裝了OpenCV-Python。
這看起很容易,但也可能出現問題。Apt存儲庫不一定總是包含最新版本的OpenCV。例如,在編寫本教程時,apt存儲庫包含2.4.8,而最新的OpenCV版本是3.x。關於Python API,最新版本將始終包含更好的支持和最新的錯誤修復。
因此,要獲取最新的原始碼,首選方法是從原始碼進行編譯。同樣在某個時間點,如果你想為OpenCV做出貢獻,則將通過這種方式。
首先,從原始碼進行編譯似乎有些複雜,但是一旦成功完成,就沒有什麼複雜的了。
首先,我們將安裝一些依賴項。有些是必需的,有些是可選的。如果不想,可以跳過可選的依賴項。
所需的構建依賴項
我們需要CMake來配置安裝,需要GCC進行編譯,需要Python-devel和Numpy來構建Python依賴項等。
sudo apt-get install cmake
sudo apt-get install gcc g++
支持python2:sudo apt-get install python-dev python-numpy
支持python3:sudo apt-get install python3-dev python3-numpy
接下來,我們需要GUI功能的GTK支持,相機支持(v4l),媒體支持(ffmpeg,gstreamer)等。
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
支持gtk2:sudo apt-get install libgtk2.0-dev
支持gtk3:sudo apt-get install libgtk-3-dev
可選依賴項
以上依賴關係足以在你的Ubuntu計算機中安裝OpenCV。但是根據你的需求,你可能需要一些額外的依賴項。此類可選依賴項的列表如下。你可以跳過或安裝它,取決於你:)
OpenCV附帶了用於圖像格式(例如PNG,JPEG,JPEG2000,TIFF,WebP等)的支持文件。但是它可能有些舊。如果要獲取最新的庫,可以為這些格式的系統庫安裝開發文件。
sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libopenexr-dev
sudo apt-get install libtiff-dev
sudo apt-get install libwebp-dev
注意
如果你使用的是Ubuntu 16.04,則還可以安裝libjasper-dev以添加對JPEG2000格式的系統級別支持。
下載OpenCV
要從OpenCV的GitHub Repository:https://github.com/opencv/opencv下載最新的原始碼。 (如果你想為OpenCV做出貢獻,請選擇此項。為此,你需要先安裝Git)
$ sudo apt-get install git
$ git clone https://github.com/opencv/opencv.git
它將在當前目錄中創建一個文件夾"opencv"。下載可能需要一些時間,具體取決於你的Internet網絡。
現在打開一個終端窗口,並導航到下載的"opencv"文件夾。創建一個新的"build"文件夾並導航到它。
$ mkdir build
$ cd build
配置和安裝
現在我們有了所有必需的依賴項,讓我們安裝OpenCV。必須使用CMake配置安裝。它指定要安裝的模塊,安裝路徑,要使用的其他庫,是否要編譯的文檔和示例等。大多數工作都是使用配置良好的默認參數自動完成的。
以下命令通常用於配置OpenCV庫構建(從構建文件夾執行):$ cmake ../
OpenCV的默認默認設置為"Release"構建類型,安裝路徑為/usr/local。有關CMake選項的更多信息,請參考OpenCV C++編譯指南:https://docs.opencv.org/4.1.2/d7/d9f/tutoriallinuxinstall.html
你應該在CMake輸出中看到以下幾行(它們意味著正確找到了Python):
-- Python 2:
-- Interpreter: /usr/bin/python2.7 (ver 2.7.6)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.6)
-- numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
-- packages path: lib/python2.7/dist-packages
--
-- Python 3:
-- Interpreter: /usr/bin/python3.4 (ver 3.4.3)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
-- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.8.2)
-- packages path: lib/python3.4/dist-packages
現在,使用make命令構建文件,然後使用make install命令安裝文件。
$ make
# sudo make install
安裝結束。所有文件都安裝在/usr/local/文件夾中。打開終端,然後嘗試導入cv2。
import cv2 as cv
print(cv.__version__)