pip 安裝 opencv 教程 https://hotdog29.com/?p=550
步驟1:在Ubuntu 16.04上安裝OpenCV依賴項
$ sudo apt-get upgrade
$ sudo apt-get update
$ sudo apt-get upgrade
接下來,讓我們安裝一些開發人員工具:
$ sudo apt-get install build-essential cmake pkg-config
$ sudo apt-get install build-essential cmake pkg-config
OpenCV是一個圖像處理和計算機視覺庫。是以,OpenCV需要能夠從磁盤加載各種圖像檔案格式,如JPEG,PNG,TIFF等。為了從磁盤加載這些圖像,OpenCV實際上調用其他圖像I / O庫,實際上便于加載和解碼處理。我們在下面安裝必要的:
$ sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
$ 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 libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev
OpenCV提供了一套非常有限的GUI工具。這些GUI工具讓我們展示我們的螢幕(圖像 CV2 。imshow ),等待/錄音按鍵( CV2 。waitKey ),跟蹤滑鼠事件( CV2 。setMouseCallback ),并建立簡單的GUI元素,如滑塊和trackbars。同樣,您不應期望使用OpenCV建構完整的GUI應用程式 - 這些隻是簡單的工具,允許您調試代碼并建構非常簡單的應用程式。在内部,處理OpenCV GUI操作的子產品的名稱是 highgui 。該 highgui 子產品依賴于GTK庫,你應該安裝使用下面的指令:
sudo apt-get install libgtk-3-dev
sudo apt-get install libgtk-3-dev
接下來,我們安裝用于優化OpenCV内部各種功能的庫,例如矩陣操作:
$ sudo apt-get install libatlas-base-dev gfortran
$ sudo apt-get install libatlas-base-dev gfortran
我們将通過為Python 2.7和Python 3.5安裝Python開發頭檔案和庫來結束第一步(這樣你就可以了):
$ sudo apt-get install python2.7-dev python3.5-dev
$ sudo apt-get install python2.7-dev python3.5-dev
注意:如果您沒有安裝Python開發頭檔案和靜态庫,那麼在步驟#4中您将遇到問題,我們運作 cmake 來配置我們的建構。如果未安裝這些頭檔案,則 cmake 指令将無法自動确定Python解釋器和Python庫的正确值。簡而言之,此部分的輸出将顯示為“空”,您将無法建構Python綁定。當你進入第4步時,花時間将你的指令輸出與我的比較。
步驟2:下載下傳OpenCV源代碼
在本文釋出時,最新版本的OpenCV是 3.1.0 ,我們下載下傳了一個 。 使用以下指令壓縮和取消歸檔:
$ cd ~
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
$ unzip opencv.zip
$ cd ~
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
$ unzip opencv.zip
我們還需要opencv_contrib存儲庫:
$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
$ unzip opencv_contrib.zip
$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
$ unzip opencv_contrib.zip
https://github.com/Itseez/opencv/archive/3.1.0.zip
https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
我也想提一提, 既您 的OpenCV 和 opencv_contrib 版本應該是相同的(在這種情況下, 3.1.0 )。如果版本号不比對,則很容易遇到編譯時錯誤(或者更糟糕的是,幾乎無法調試的運作時錯誤)。
第3步:設定Python環境 - Python 2.7或Python 3
我們現在準備開始為建構配置我們的Python開發環境。第一步是安裝 pip ,一個Python包管理器:
$ cd ~
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
$ cd ~
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
已經提到了這一點 每一個的OpenCV + Python的安裝教程中,我做過,但再次今天在這裡,我會說:我是一個 巨大的風扇兩者的virtualenv和virtualenvwrapper。這些Python包允許您為正在處理的每個項目建立 單獨的獨立 Python環境 。
簡而言之,使用這些軟體包可以解決 “項目X取決于版本1.x,但項目Y需要4.x困境。使用Python虛拟環境的一個奇妙的副作用是,您可以保持系統Python整潔,整潔,并且不會混亂。
$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/get-pip.py ~/.cache/pip
$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/get-pip.py ~/.cache/pip
一旦我們安裝了 virtualenv 和 virtualenvwrapper ,我們需要更新 〜/ .bashrc 檔案在檔案底部包含以下行 :
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
更簡單的解決方案是使用 cat 指令并完全避免使用編輯器:
$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
$ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
$ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
$ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
$ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
編輯後我們 〜/ .bashrc 檔案,我們需要重新加載更改:
Ubuntu 16.04: How to install OpenCVShell
$ source ~/.bashrc
$ source ~/.bashrc
現在我們已經安裝了 virtualenv 和 virtualenvwrapper ,下一步是實際 建立 Python虛拟環境 - 我們使用mkvirtualenv 指令執行此操作 。
但在執行此指令之前,您需要做出選擇:要使用Python 2.7或Python 3?
您選擇的結果将決定您在以下部分中運作的指令。
建立Python虛拟環境
如果您決定使用Python 2.7,請使用以下指令建立Python 2.7虛拟環境:
Ubuntu 16.04: How to install OpenCVShell
$ mkvirtualenv cv -p python2
$ mkvirtualenv cv -p python2
否則,使用此指令建立Python 3虛拟環境:
Ubuntu 16.04: How to install OpenCVShell
$ mkvirtualenv cv -p python3
$ mkvirtualenv cv -p python3
無論您決定使用哪種Python指令,最終結果都是我們建立了一個名為cv的Python虛拟環境 (“計算機視覺”的縮寫)。
您可以随意命名這個虛拟環境(并根據需要建立盡可能多的Python虛拟環境),但是對于時間bing,我建議堅持使用 cv 名稱,因為這是我将在其餘部分使用的内容。教程。
驗證您是否處于“cv”虛拟環境中
如果你重新開機你的Ubuntu系統; 退出并重新登入; 或者打開一個新終端,您需要使用 workon 指令重新通路您的 cv 虛拟環境。workon 指令的示例 如下:
Ubuntu 16.04: How to install OpenCVShell
$ workon cv
為了驗證你在 履歷 虛拟環境中,簡單地檢查你的指令行- 如果你看到的文字 (CV ) 提示符之前,那麼你 是在 CV 虛拟環境:
否則,如果你 不看 履歷 的文字,那麼你 是不是在 CV 虛拟環境:
将NumPy安裝到Python虛拟環境中
編譯OpenCV之前的最後一步是安裝NumPy,一個用于數值處理的Python包。要安裝NumPy,請確定您處于 cv 虛拟環境中(否則NumPy将安裝到Python 的 系統 版本而不是 cv 環境中)。從那裡執行以下指令:
Ubuntu 16.04: How to install OpenCVShell
$ pip install numpy
$ pip install numpy
步驟4:在Ubuntu 16.04上配置和編譯OpenCV
此時,已經安裝了所有必需的先決條件 - 我們現在可以編譯和OpenCV了!
但在我們這樣做之前, 通過檢查你的提示(你應該看到 它前面的(cv )文本)仔細檢查你是否在 cv虛拟環境中 ,如果沒有,請使用 workon 指令:
在確定您處于 cv 虛拟環境之後,我們可以使用CMake設定和配置我們的建構:
Ubuntu 16.04: How to install OpenCVShell
$ cd ~/opencv-3.1.0/
$ mkdir build
$ 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.1.0/modules \
-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
-D BUILD_EXAMPLES=ON ..
$ cd ~/opencv-3.1.0/
$ mkdir build
$ 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.1.0/modules \
-D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
-D BUILD_EXAMPLES=ON ..
上面的指令将目錄更改為 〜/ opencv - 3.1.0
在這個目錄中,我們建立一個名為build的子目錄 并将其更改為它。在 建構 目錄是實際編譯将會發生。
最後,我們執行 cmake 來配置我們的建構。
在我們繼續實際編譯OpenCV之前,請 確定檢查CMake的輸出!
為此,請向下滾動标題為 Python 2 和 Python 3的部分 。
如果您在支援Python 2.7的Ubuntu 16.04上編譯OpenCV,請確定 Python 2 部分包含 Interpreter , Libraries , numpy 和 packages 路徑的有效路徑 。你的輸出應該類似于
該 解釋 點在Python的2.7二進制 CV 虛拟環境。
庫 指向Python 2.7庫(我們在步驟#1的最後一步中安裝)。
該 numpy的 價值點,我們與NumPy安裝在 CV 虛拟環境。
最後, packages 路徑 指向 lib / python2 。7 / site - 包 。當與CMAKE_INSTALL_PREFIX結合使用時 ,這意味着在編譯OpenCV之後,我們将找到我們的 cv2 。是以 在/ usr / local / lib / python2中綁定 。7 / site - packages / 。
同樣,如果您正在使用Python 3支援編譯OpenCV 16.04,
假設您的CMake指令退出而沒有任何錯誤,您現在可以編譯OpenCV:
Ubuntu 16.04: How to install OpenCVShell
$ make -j4
數字控制的OpenCV編譯時使用的程序數-你要将該值設定為處理器/核的機器上的号碼。就我而言,我有一個四核處理器,是以我設定 - j4 。
使用多個程序允許OpenCV更快地編譯; 然而,有時會遇到競争條件并且編譯器爆炸。雖然如果你沒有很多以前編譯OpenCV的經驗,你無法确定是否是這種情況 ,如果你遇到錯誤,我的第一個建議是運作 make clean 來重新整理建構,然後隻使用一個編譯核心:
Ubuntu 16.04: How to install OpenCVShell
$ make clean
$ make
您可以在下面找到Ubuntu 16.04上成功的OpenCV + Python編譯的截圖:
最後一步是在Ubuntu 16.04上實際 安裝 OpenCV 3:
Ubuntu 16.04: How to install OpenCVShell
$ sudo make install
$ sudo ldconfig
$ sudo make install
$ sudo ldconfig
步驟5:完成OpenCV安裝
您将走上首頁,再往前走幾步,您的Ubuntu 16.04系統将全部使用OpenCV 3進行設定。
對于Python 2.7:
在運作 sudo make install之後 ,您的OpenCV 3的Python 2.7綁定現在應該位于 / usr / local / lib / python - 2.7 / site - packages /中 。您可以使用ls 指令驗證這一點 :
Ubuntu 16.04: How to install OpenCVShell
$ ls -l /usr/local/lib/python2.7/site-packages/
total 1972
-rw-r--r-- 1 root staff 2016608 Sep 15 09:11 cv2.so
$ ls -l /usr/local/lib/python2.7/site-packages/
total 1972
-rw-r--r-- 1 root staff 2016608 Sep 15 09:11 cv2.so
注意:在某些情況下,您可能會發現OpenCV安裝在 / usr / local / lib / python2中。7 / dist - 包 而不是 / usr / local / lib / python2 。7 / site - packages (注意 dist - 包 與 站點- 包 )。如果你的 cv2 。是以 綁定不在 網站中- 包 目錄,務必檢查 dist - pakages 。
最後一步是sym-link我們的OpenCV cv2 。是以 綁定到我們 的Python 2.7的cv虛拟環境:
Ubuntu 16.04: How to install OpenCVShell
$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so
對于Python 3.5:
運作 sudo make install後 ,您的OpenCV + Python 3綁定應該位于 / usr / local / lib / python3中。5 / site - packages / 。同樣,您可以使用ls 指令驗證這一點 :
Ubuntu 16.04: How to install OpenCVShell
$ ls -l /usr/local/lib/python3.5/site-packages/
total 1972
-rw-r--r-- 1 root staff 2016816 Sep 13 17:24 cv2.cpython-35m-x86_64-linux-gnu.so
$ ls -l /usr/local/lib/python3.5/site-packages/
total 1972
-rw-r--r-- 1 root staff 2016816 Sep 13 17:24 cv2.cpython-35m-x86_64-linux-gnu.so
自從OpenCV 3釋出以來,我一直對這種行為感到困惑,但出于某種原因,在使用Python 3支援編譯OpenCV時,輸出 cv2 。是以 檔案名是不同的。實際的檔案名可能因您而異,但它應該與cv2類似 。cpython - 35m - x86_64 - linux - gnu 。是以 。
同樣,我不知道 為什麼會發生這種情況,但這是一個非常容易解決的問題。我們需要做的就是重命名檔案:
Ubuntu 16.04: How to install OpenCVShell
$ cd /usr/local/lib/python3.5/site-packages/
$ sudo mv cv2.cpython-35m-x86_64-linux-gnu.so cv2.so
$ cd /usr/local/lib/python3.5/site-packages/
$ sudo mv cv2.cpython-35m-x86_64-linux-gnu.so cv2.so
重命名 cv2後。cpython - 35m - x86_64 - linux - gnu 。是以 簡單地說 cv2 。是以 ,我們可以将我們的OpenCV綁定sym連結到 Python 3.5 的 cv虛拟環境中:
Ubuntu 16.04: How to install OpenCVShell
$ cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
$ ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so
$ cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
$ ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so
步驟6:測試您的OpenCV安裝
恭喜,您現在已經在Ubuntu 16.04系統上安裝了OpenCV 3!
要驗證您的安裝是否正常工作:
打開一個新的終端。
執行 workon 指令以通路 cv Python虛拟環境。
嘗試導入Python + OpenCV綁定。
我已經示範了如何執行以下步驟:
Ubuntu 16.04: How to install OpenCVShell
$ cd ~
$ workon cv
$ python
Python 3.5.2 (default, Jul 5 2016, 12:43:10)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.1.0'
>>>
$ cd ~
$ workon cv
$ python
Python 3.5.2 (default, Jul 5 2016, 12:43:10)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.1.0'
>>>
如您所見,我可以将OpenCV綁定導入到我的Python 3.5 shell中。
是以,無論您決定使用哪個Python版本,隻需按照本教程中詳述的步驟操作,您就可以在Ubuntu 16.04系統上安裝OpenCV + Python。
文章作者***Adrian Rosebrock***
文章出處 https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/