天天看點

如何在Linux下編譯安裝OpenCV

opencv是一個跨平台的計算機視覺庫,可以運作在windows、linux、macos等作業系統上。opencv提供了衆多語言的接口,其中就包含了python,python是一門上手容易、使用起來十分讓人愉悅的語言,利用python學習opencv,相信能更快的獲得效果。

opencv的官方下載下傳網址是http://opencv.org/releases.html,我選擇的是最新3.2.0版本,對于windows使用者,可直接下載下傳exe檔案安裝,過程十分簡單,這裡就不再多說了,如果遇到問題可以看看官方的安裝指南,對于linux使用者,可下載下傳opencv源碼自行編譯,在官網上下載下傳zip格式的源碼壓縮包。

如何在Linux下編譯安裝OpenCV

準備環境

首先安裝如下幾個軟體包:

gcc 4.4.x or later

cmake 2.8.7 or higher

git

gtk+2.x or higher, including headers (libgtk2.0-dev)

pkg-config

python 2.6 or later and numpy 1.5 or later with developer packages (python-dev, python-numpy)

ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev

[optional] libtbb2 libtbb-dev

[optional] libdc1394 2.x

[optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev

[optional] cuda toolkit 6.5 or higher

[optional]代表這個package是可選的,上面這些包都是可以通過apt-get指令直接安裝的,打開終端,輸入以下指令:

[compiler] 

$ sudo apt-get install build-essential 

[required] 

$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev 

[optional] 

$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-dev 

隻需一小會,編譯所依賴的packages便全部安裝完畢了(這也是我喜歡linux的原因之一,安裝package十分的便利)。接着就是開始編譯了,實際上編譯隻需要三行指令就可以完成。不過在此之前,還要在解壓後的opencv-xxx 檔案夾内建立一個build檔案夾,編譯生成的makefiles、project files、object files和output files會放在build檔案夾裡面,完成後,就可以開始正式的編譯了。

開始安裝

第一步,配置。

$ cmake -d cmake_build_type=release -d cmake_install_prefix=/usr/local .. 

cmake_build_type: build的類型,有release和debug兩種

cmake_install_prefix:指定想要安裝opencv的檔案夾目錄,一般就用/usr/local

除此之外,還可以添加上build_docs 來build文檔 以及 build_examples 來build所有的樣例

注意:如果上面的指令行無法工作,則把-d後面的空格去掉:

$ cmake -d cmake_build_type=release -dcmake_install_prefix=/usr/local .. 

第二步,build。為了加快編譯速度,一般會使用多線程的方法:

make -j7 # 同時使用七個線程

第三步,安裝。

sudo make install 

如果到現在你還沒遇到任何問題,那麼恭喜你,你已經成功在linux上安裝了opencv。為了測試你的opencv能否在python上使用,可以運作一段小代碼,讀取一張圖檔并顯示出來:

import cv2 

image = cv2.imread("logo.png", 1) 

cv2.imshow("hello, world!", image) 

cv2.waitkey(0) 

cv2.destroyallwindows() 

如果運作時報錯,嘗試把圖檔的相對路徑改為絕對路徑。運作成功後,你會看到:

如何在Linux下編譯安裝OpenCV

本文作者:佚名

來源:51cto