在Fedora中安裝OpenCV-Python | 二

目標
在本教程中html

  • 咱們將學習在你的Fedora系統中設置OpenCV-Python。針對Fedora 18(64位)和Fedora 19(32位)進行如下步驟。
    介紹
    能夠經過兩種方式在Fedora中安裝OpenCV-Python:1)從fedora存儲庫中可用的預構建二進制文件安裝,2)從源代碼進行編譯。在本節中,咱們將同時看到這兩種方法。
    另外一個重要的事情是所需的其餘庫。OpenCV-Python僅須要Numpy(除了其餘依賴關係,咱們將在後面看到)。可是在本教程中,咱們還使用Matplotlib進行一些簡單而又漂亮的做圖(與OpenCV相比,感受好多了)。Matplotlib是可選的,但強烈建議安裝。一樣,咱們還將看到IPython,這是一個強烈推薦的交互式Python終端。
    從預構建的二進制文件安裝OpenCV-Python
    以root用戶身份在終端中使用如下命令安裝全部軟件包。
    $ yum install numpy opencv *
    打開Python IDLE(或IPython),而後在Python終端中鍵入如下代碼。
>>> import cv2 as cv
>>> print( cv.__version__ )

若是打印出來的結果沒有任何錯誤,那就恭喜!你已經成功安裝了OpenCV-Python。
這很簡單。可是這裏有一個問題。Yum倉庫可能不老是包含最新版本的 OpenCV。例如,在撰寫本教程時,yum 庫包含2.4.5,而最新的 OpenCV 版本是2.4.6。對於 Python API,最新版本老是包含更好的支持。另外,取決於所使用的驅動程序、ffmpeg、gstreamer軟件包等,相機支持,視頻播放等可能會出現問題。
因此我我的的偏好是下一種方法,即從源代碼編譯。在某個時候,若是你想爲OpenCV 作貢獻,你也須要這個。
從源代碼安裝OpenCV
從源代碼編譯起初可能看起來有點複雜,可是一旦你成功了,就沒有什麼複雜的了。
首先,咱們將安裝一些依賴項。有些是強制性的,有些是可選的。可選的依賴項,若是不須要,能夠跳過。
強制依賴
咱們須要CMake來配置安裝,GCC進行編譯,Python-devel和Numpy來建立Python擴展等。python

yum install cmake
yum install python-devel numpy
yum install gcc gcc-c++

接下來,咱們須要GTK對GUI功能的支持,相機支持(libdc1394,v4l),媒體支持(ffmpeg,gstreamer)等。c++

yum install gtk2-devel
yum install libdc1394-devel
yum install ffmpeg-devel
yum install gstreamer-plugins-base-devel

可選依賴項
以上依賴關係足以在你的fedora計算機中安裝OpenCV。可是根據你的要求,你可能須要一些額外的依賴項。此類可選依賴項的列表以下。你能夠跳過或安裝它,取決於你:)
OpenCV附帶了用於圖像格式(例如PNG,JPEG,JPEG2000,TIFF,WebP等)的支持文件。可是它可能有些舊。若是要獲取最新的庫,能夠安裝這些格式的開發文件。git

yum install libpng-devel
yum install libjpeg-turbo-devel
yum install jasper-devel
yum install openexr-devel
yum install libtiff-devel
yum install libwebp-devel

幾個OpenCV功能與英特爾的線程構建模塊(TBB)並行。可是,若是要啓用它,則須要先安裝TBB。(一樣在使用CMake配置安裝時,請不要忘記設置-D WITH_TBB = ON。下面更多詳細信息。)github

yum install tbb-devel

OpenCV使用另外一個Eigen庫來優化數學運算。所以,若是你的系統中裝有Eigen,則能夠利用它。(一樣在使用CMake配置安裝時,請不要忘記設置WITH_EIGEN = ON。下面更多詳細信息。)web

yum install eigen3-devel

若是你要構建文檔(是的,你可使用完整的搜索功能以HTML格式在系統中建立OpenCV完整官方文檔的脫機版本,這樣,若是有任何問題,你就沒必要老是訪問Internet,並且很是快捷!!!),你須要安裝Doxygen(文檔生成工具)。瀏覽器

yum install doxygen

下載OpenCV
接下來,咱們必須下載OpenCV。你能夠從sourceforge網站:http://sourceforge.net/projects/opencvlibrary/ 下載最新版本的OpenCV 。而後解壓縮文件夾。
或者,你能夠從OpenCV的github存儲庫下載最新的源代碼。(若是你想爲OpenCV作出貢獻,請選擇此項。它始終使你的OpenCV保持最新狀態)。爲此,你須要先安裝Git。bash

yum install git
git clone https://github.com/opencv/opencv.git

它將在主目錄(或你指定的目錄)中建立一個文件夾OpenCV。克隆可能須要一些時間,具體取決於你的Internet網絡。
如今打開一個終端窗口,而後導航到下載的OpenCV文件夾。建立一個新的構建文件夾並導航到它。markdown

mkdir build
cd build

配置和安裝
如今,咱們已經安裝了全部必需的依賴項,讓咱們安裝OpenCV。必須使用CMake配置安裝。它指定要安裝的模塊,安裝路徑,要使用的其餘庫,是否要編譯的文檔和示例等。下面的命令一般用於配置(從build文件夾執行)。
cmake -D CMAKE_BUILD_TYPE = RELEASE -D CMAKE_INSTALL_PREFIX = / usr / local ..
它指定構建類型爲「發佈模式」,安裝路徑爲/usr/local。在每一個選項以前標誌-D,在最後觀察標誌..。簡而言之,這是一種格式:
cmake [-D <flag>] [-D <flag>] ..
你能夠指定任意數量的標誌,可是每一個標誌前面應帶有-D。
所以,在本教程中,咱們將安裝具備TBB和Eigen支持的OpenCV。咱們還構建了文檔,可是不包括性能測試和構建示例。咱們還會禁用與GPU相關的模塊(由於咱們使用的是OpenCV-Python,所以咱們不須要與GPU相關的模塊。這爲咱們節省了一些時間)。
(如下全部命令均可以在單個cmake語句中完成,但爲了便於理解,此處將其拆分。)網絡

  • 啓用TBB和Eigen支持:
    cmake -D WITH_TBB=ON -D WITH_EIGEN=ON ..
  • 啓用文檔並禁用測試和示例
    cmake -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF ..
  • 禁用全部與GPU相關的模塊。
    cmake -D WITH_OPENCL=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF -D BUILD_opencv_gpucodec=OFF -D BUILD_opencv_gpufeatures2d=OFF -D BUILD_opencv_gpufilters=OFF -D BUILD_opencv_gpuimgproc=OFF -D BUILD_opencv_gpulegacy=OFF -D BUILD_opencv_gpuoptflow=OFF -D BUILD_opencv_gpustereo=OFF -D BUILD_opencv_gpuwarping=OFF ..
  • 設置安裝路徑和構建類型
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
    每次輸入cmake語句時,它都會打印出結果配置設置。在完成的最終設置中,請確保填寫如下字段(如下是我得到的一些重要配置)。這些字段也應在你的系統中適當填寫。不然將會發生一些問題。所以,請檢查你是否正確執行了上述步驟。
...
--   GUI:
--     GTK+ 2.x:                    YES (ver 2.24.19)
--     GThread :                    YES (ver 2.36.3)
--   Video I/O:
--     DC1394 2.x:                  YES (ver 2.2.0)
--     FFMPEG:                      YES
--       codec:                     YES (ver 54.92.100)
--       format:                    YES (ver 54.63.104)
--       util:                      YES (ver 52.18.100)
--       swscale:                   YES (ver 2.2.100)
--       gentoo-style:              YES
--     GStreamer:
--       base:                      YES (ver 0.10.36)
--       video:                     YES (ver 0.10.36)
--       app:                       YES (ver 0.10.36)
--       riff:                      YES (ver 0.10.36)
--       pbutils:                   YES (ver 0.10.36)
--     V4L/V4L2:                    Using libv4l (ver 1.0.0)
--   Other third-party libraries:
--     Use Eigen:                   YES (ver 3.1.4)
--     Use TBB:                     YES (ver 4.0 interface 6004)
--   Python:
--     Interpreter:                 /usr/bin/python2 (ver 2.7.5)
--     Libraries:                   /lib/libpython2.7.so (ver 2.7.5)
--     numpy:                       /usr/lib/python2.7/site-packages/numpy/core/include (ver 1.7.1)
--     packages path:               lib/python2.7/site-packages
...

還有許多其餘標誌和設置。它留給你以做進一步的探索。
如今,你可使用make命令構建文件,並使用make install命令進行安裝。make install應該以root身份執行。

make
su
make install

安裝結束。全部文件都安裝在/usr/local/文件夾中。可是要使用它,你的Python應該可以找到OpenCV模塊。你有兩個選擇。
1.將模塊移動到Python路徑中的任何文件夾:能夠經過在Python終端中輸入import sys;print(sys.path)來找到Python路徑。它將打印出許多位置。將/usr/local/lib/python2.7/site-packages/cv2.so移至該文件夾中的任何一個。例如,
sumv/usr/local/lib/python2.7/site-packages/cv2.so/usr/lib/python2.7/site-packages
可是,每次安裝OpenCV時都必須這樣作。
2.將/usr/local/lib/python2.7/site-packages添加到PYTHON_PATH:只需執行一次。只需打開/.bashrc並向其添加如下行,而後註銷並返回便可。
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
至此,OpenCV安裝完成。打開終端,而後嘗試import cv2 as cv。
要構建文檔,只需輸入如下命令:
make doxygen
而後打開opencv/build/doc/doxygen/html/index.html並將其添加到瀏覽器中。
其餘資源
練習題1.在Fedora系統的機器中採用源代碼編譯OpenCV。