天天看點

在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終端。

以root使用者身份在終端中使用以下指令安裝所有軟體包。

​<code>​$ yum install numpy opencv *​</code>​

打開Python IDLE(或IPython),然後在Python終端中鍵入以下代碼。

如果列印出來的結果沒有任何錯誤,那就恭喜!你已經成功安裝了OpenCV-Python。

這很簡單。但是這裡有一個問題。Yum倉庫可能不總是包含最新版本的 OpenCV。例如,在撰寫本教程時,yum 庫包含2.4.5,而最新的 OpenCV 版本是2.4.6。對于 Python API,最新版本總是包含更好的支援。另外,取決于所使用的驅動程式、ffmpeg、gstreamer軟體包等,相機支援,視訊播放等可能會出現問題。

是以我個人的偏好是下一種方法,即從源代碼編譯。在某個時候,如果你想為OpenCV 做貢獻,你也需要這個。

從源代碼編譯起初可能看起來有點複雜,但是一旦你成功了,就沒有什麼複雜的了。

首先,我們将安裝一些依賴項。有些是強制性的,有些是可選的。可選的依賴項,如果不需要,可以跳過。

我們需要CMake來配置安裝,GCC進行編譯,Python-devel和Numpy來建立Python擴充等。

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

以上依賴關系足以在你的fedora計算機中安裝OpenCV。但是根據你的要求,你可能需要一些額外的依賴項。此類可選依賴項的清單如下。你可以跳過或安裝它,取決于你:)

OpenCV附帶了用于圖像格式(例如PNG,JPEG,JPEG2000,TIFF,WebP等)的支援檔案。但是它可能有些舊。如果要擷取最新的庫,可以安裝這些格式的開發檔案。

幾個OpenCV功能與英特爾的線程構模組化塊(TBB)并行。但是,如果要啟用它,則需要先安裝TBB。(同樣在使用CMake配置安裝時,請不要忘記設定​<code>​-D WITH_TBB = ON​</code>​。下面更多詳細資訊。)

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

如果你要建構文檔(是的,你可以使用完整的搜尋功能以HTML格式在系統中建立OpenCV完整官方文檔的脫機版本,這樣,如果有任何問題,你就不必總是通路Internet,而且非常快捷!!!),你需要安裝Doxygen(文檔生成工具)。

接下來,我們必須下載下傳OpenCV。你可以從sourceforge網站:http://sourceforge.net/projects/opencvlibrary/ 下載下傳最新版本的OpenCV 。然後解壓縮檔案夾。

或者,你可以從OpenCV的github存儲庫下載下傳最新的源代碼。(如果你想為OpenCV做出貢獻,請選擇此項。它始終使你的OpenCV保持最新狀态)。為此,你需要先安裝Git。

它将在主目錄(或你指定的目錄)中建立一個檔案夾OpenCV。克隆可能需要一些時間,具體取決于你的Internet網絡。

現在打開一個終端視窗,然後導航到下載下傳的OpenCV檔案夾。建立一個新的建構檔案夾并導航到它。

現在,我們已經安裝了所有必需的依賴項,讓我們安裝OpenCV。必須使用CMake配置安裝。它指定要安裝的子產品,安裝路徑,要使用的其他庫,是否要編譯的文檔和示例等。下面的指令通常用于配置(從build檔案夾執行)。

​<code>​cmake -D CMAKE_BUILD_TYPE = RELEASE -D CMAKE_INSTALL_PREFIX = / usr / local ..​</code>​

它指定建構類型為“釋出模式”,安裝路徑為/usr/local。在每個選項之前标志​<code>​-D​</code>​,在最後觀察标志​<code>​..​</code>​。簡而言之,這是一種格式:

​<code>​cmake [-D &lt;flag&gt;] [-D &lt;flag&gt;] ..​</code>​

你可以指定任意數量的标志,但是每個标志前面應帶有-D。

是以,在本教程中,我們将安裝具有TBB和Eigen支援的OpenCV。我們還建構了文檔,但是不包括性能測試和建構示例。我們還會禁用與GPU相關的子產品(因為我們使用的是OpenCV-Python,是以我們不需要與GPU相關的子產品。這為我們節省了一些時間)。

(以下所有指令都可以在單個cmake語句中完成,但為了便于了解,此處将其拆分。)

啟用TBB和Eigen支援:

<code>cmake -D WITH_TBB=ON -D WITH_EIGEN=ON ..</code>

啟用文檔并禁用測試和示例

<code>cmake -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF ..</code>

禁用所有與GPU相關的子產品。

<code>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 ..</code>

設定安裝路徑和建構類型

<code>cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..</code>

每次輸入cmake語句時,它都會列印出結果配置設定。在完成的最終設定中,請確定填寫以下字段(以下是我獲得的一些重要配置)。這些字段也應在你的系統中适當填寫。否則将會發生一些問題。是以,請檢查你是否正确執行了上述步驟。

還有許多其他标志和設定。它留給你以作進一步的探索。

現在,你可以使用​<code>​make​</code>​指令建構檔案,并使用​<code>​make install​</code>​指令進行安裝。​<code>​make install​</code>​應該以​<code>​root​</code>​身份執行。

安裝結束。所有檔案都安裝在/usr/local/檔案夾中。但是要使用它,你的Python應該能夠找到OpenCV子產品。你有兩個選擇。

将子產品移動到Python路徑中的任何檔案夾:可以通過在Python終端中輸入<code>import sys; print(sys.path)</code>來找到Python路徑。它将列印出許多位置。将/usr/local/lib/python2.7/site-packages/cv2.so移至該檔案夾中的任何一個。例如,

<code>su mv /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/site-packages</code>

但是,每次安裝OpenCV時都必須這樣做。

将/usr/local/lib/python2.7/site-packages添加到PYTHON_PATH:隻需執行一次。隻需打開/.bashrc并向其添加以下行,然後登出并傳回即可。

<code>export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages</code>

至此,OpenCV安裝完成。打開終端,然後嘗試<code>import cv2 as cv</code>。

要建構文檔,隻需輸入以下指令:

​<code>​make doxygen​</code>​

然後打開opencv/build/doc/doxygen/html/index.html并将其添加到浏覽器中。