在Fedora中安裝OpenCV-Python

目標

在本教程中我們將學習在你的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-develNumpy來創建Python擴展等。

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

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

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等)的支持文件。但是它可能有些舊。如果要獲取最新的庫,可以安裝這些格式的開發文件。

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。下面更多詳細信息。)

yum install tbb-devel

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

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

yum install git 

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

它將在主目錄(或你指定的目錄)中創建一個文件夾OpenCV。克隆可能需要一些時間,具體取決於你的Internet網絡。

現在打開一個終端窗口,然後導航到下載的OpenCV文件夾。創建一個新的構建文件夾並導航到它。

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>] ../<flag>/<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移至該文件夾中的任何一個。例如, su mv /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並將其添加到瀏覽器中。


分享到:


相關文章: