目標
在本教程中html
>>> 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語句中完成,但爲了便於理解,此處將其拆分。)網絡
... -- 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。