您的位置:首頁 > 軟件教程 > 教程 > Python OpenCV #1 - OpenCV介紹

Python OpenCV #1 - OpenCV介紹

來源:好特整理 | 時(shí)間:2024-05-26 15:57:08 | 閱讀:61 |  標(biāo)簽: T v C Python   | 分享到:

一、OpenCV介紹 1.1 OpenCV-Python教程簡介 OpenCV由 Gary Bradsky 于1999年在英特爾創(chuàng)立,第一個(gè)版本于2000年發(fā)布。 Vadim Pisarevsky 加入了Gary Bradsky,管理英特爾的俄羅斯軟件OpenCV團(tuán)隊(duì)。2005年,OpenCV被用于

一、OpenCV介紹

1.1 OpenCV-Python教程簡介

OpenCV由 Gary Bradsky 于1999年在英特爾創(chuàng)立,第一個(gè)版本于2000年發(fā)布。 Vadim Pisarevsky 加入了Gary Bradsky,管理英特爾的俄羅斯軟件OpenCV團(tuán)隊(duì)。2005年,OpenCV被用于斯坦利,這輛車贏得了2005年DARPA大挑戰(zhàn)賽。

后來,在Willow Garage的支持下,由Gary Bradsky和Vadim Pisarevsky領(lǐng)導(dǎo)該項(xiàng)目,繼續(xù)積極發(fā)展。OpenCV現(xiàn)在支持與計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)相關(guān)的多種算法,并且正在日益擴(kuò)展。

OpenCV支持多種編程語言,如C++、Python、Java等,并且可在包括Windows、Linux、OS X、Android和iOS的不同平臺上使用;贑UDA和OpenCL的高速GPU操作接口也在積極開發(fā)中。

OpenCV-Python是OpenCV的Python API,結(jié)合了OpenCV C++ API和Python語言的最佳品質(zhì)。

1.2 OpenCV-Python

OpenCV-Python是一個(gè)Python綁定庫,旨在解決計(jì)算機(jī)視覺問題。

Python是一種通用編程語言,由 Guido van Rossum 創(chuàng)立,很快就變得非常流行,主要是因?yàn)樗暮唵涡院痛a可讀性。它使程序員能夠在不降低可讀性的情況下用更少的代碼行表達(dá)思想。

與C/C++等語言相比,Python更慢。也就是說,Python可以很容易地用C/C++擴(kuò)展,這允許我們用C/C++編寫計(jì)算密集型代碼,并創(chuàng)建可以用作Python模塊的Python包裝器。

這給我們帶來了兩個(gè)優(yōu)勢:首先,代碼與原始C/C++代碼一樣快(因?yàn)樗窃诤笈_工作的實(shí)際C++代碼),其次,用Python編寫代碼比C/C++更容易。OpenCV-Python是原始OpenCV C++實(shí)現(xiàn)的Python包裝器。

OpenCV-Python使用了Numpy,這是一個(gè)高度優(yōu)化的庫,用于使用MATLAB風(fēng)格的語法進(jìn)行數(shù)值運(yùn)算。所有OpenCV數(shù)組結(jié)構(gòu)都可以轉(zhuǎn)換為Numpy數(shù)組。這也使得它更容易與其他使用Numpy的庫集成,如SciPy和Matplotlib。

1.3 OpenCV-Python教程

OpenCV引入了一組新的教程,將指導(dǎo)您完成OpenCV-Python中可用的各種函數(shù)。 本指南主要關(guān)注OpenCV 3.x版本 (盡管大多數(shù)教程也適用于OpenCV 2.x)。

建議先了解Python和Numpy,因?yàn)楸局改喜粫?huì)涉及它們。 熟練使用Numpy是使用OpenCV-Python編寫優(yōu)化代碼的必要條件

本教程最初由Abid Rahman K.作為Google Summer of Code 2013計(jì)劃的一部分,由Alexander Mordvintsev指導(dǎo)。

1.4 OpenCV需要你!

由于OpenCV是一個(gè)開源項(xiàng)目,歡迎所有人為庫、文檔和教程做出貢獻(xiàn)。

如果您在本教程中發(fā)現(xiàn)任何錯(cuò)誤(從小的拼寫錯(cuò)誤到代碼或概念中的嚴(yán)重錯(cuò)誤),請隨時(shí)通過在GitHub中克隆的OpenCV并提交pull請求來糾正它。OpenCV開發(fā)人員將檢查您的pull請求,給予您重要的反饋,并且(一旦通過審核者的批準(zhǔn))它將被合并到OpenCV中。您將成為一名開源貢獻(xiàn)者 ?

隨著新模塊被添加到OpenCV-Python中,本教程將不得不進(jìn)行擴(kuò)展。如果你熟悉某個(gè)特定的算法,并且可以寫一個(gè)教程,包括算法的基本理論和示例使用的代碼,請這樣做。

請記住,我們 一起 可以使這個(gè)項(xiàng)目取得巨大成功!

1.5 貢獻(xiàn)者

下面是向OpenCV-Python提交教程的貢獻(xiàn)者列表。

  1. Alexander Mordvintsev(GSoC-2013導(dǎo)師)
  2. Abid Rahman K.(GSoC-2013實(shí)習(xí)生)

1.6 額外資源

  1. Python快速指南 - Python的一個(gè)字節(jié)
  2. Python快速指南
  3. NumPy快速入門教程
  4. NumPy參考
  5. OpenCV文檔
  6. OpenCV論壇

二、在Windows中安裝OpenCV-Python

2.1 目標(biāo)

在本教程中

  • 我們將學(xué)習(xí)在Windows系統(tǒng)中設(shè)置OpenCV-Python。

以下步驟在Windows 7-64位計(jì)算機(jī)上使用Visual Studio 2010和Visual Studio 2012進(jìn)行測試。屏幕截圖顯示VS 2012。

2.2 從預(yù)構(gòu)建的二進(jìn)制文件安裝OpenCV

下面的Python包將被下載并安裝到它們的默認(rèn)位置。

  • Python 3.x(3.4+)或Python 2.7.x(在 這 )。
  • Numpy包(例如,使用 pip install numpy 命令)。
  • Matplotlib( pip install matplotlib )(Matplotlib是可選的,但推薦使用,因?yàn)槲覀冊诮坛讨薪?jīng)常使用它)。

將所有軟件包安裝到它們的默認(rèn)位置。如果是Python 2.7,Python將安裝到 C:/Python27/ 。

安裝完成后,打開Python IDLE。輸入 import numpy 并確保Numpy工作正常。

從 GitHub 或 SourceForge 網(wǎng)站下載最新的OpenCV版本,然后雙擊將其解壓縮。

轉(zhuǎn)到 opencv/build/python/2.7 文件夾。

cv2.pyd 復(fù)制到 C:/Python 27/lib/site-packages 。

opencv_world.dll 文件復(fù)制到 C:/Python 27/lib/site-packages

打開Python IDLE,在Python終端中輸入以下代碼。

>>> import cv2 as cv
>>> print( cv.__version__ )

如果結(jié)果打印出來沒有任何錯(cuò)誤,恭喜!您已成功安裝OpenCV-Python。

2.3 從源代碼構(gòu)建OpenCV

下載并安裝Visual Studio和CMake。

  • Visual Studio 2012
  • CMake

下載必要的Python包并將其安裝到默認(rèn)位置。

  1. Python
  2. Numpy

注意:

在本例中,我們使用Python包的32位二進(jìn)制文件。但是如果你想在x64上使用OpenCV,需要安裝Python包的64位二進(jìn)制文件。問題是,Numpy沒有官方的64位二進(jìn)制文件。你得靠自己的力量。

為此,您必須使用與構(gòu)建Python相同的編譯器。當(dāng)你啟動(dòng)Python IDLE時(shí),它會(huì)顯示編譯器的詳細(xì)信息。你可以在這里獲得更多信息。因此,您的系統(tǒng)必須具有相同的Visual Studio版本,并從源代碼構(gòu)建Numpy。

另一種獲得64位Python包的方法是使用來自第三方的現(xiàn)成Python發(fā)行版,如Anaconda,Enthought等,它會(huì)更大,但會(huì)有你需要的一切。一切都在shell中。您也可以下載32位版本。

確保Python和Numpy工作正常。

下載OpenCV源代碼。它可以來自 Sourceforge (官方發(fā)布版本)或 Github (最新來源)。

將其解壓縮到一個(gè)文件夾opencv,并在其中創(chuàng)建一個(gè)新的文件夾。

打開CMake-gui( Start > All Programs > CMake-gui

按如下方式填寫字段(參見下圖):

  1. 點(diǎn)擊Browse Source...然后找到OpenCV文件夾。
  2. 點(diǎn)擊Browse Build...然后找到我們創(chuàng)建的構(gòu)建文件夾。
  3. 單擊Configure。
  4. 它將打開一個(gè)新窗口來選擇編譯器。選擇適當(dāng)?shù)木幾g器(此處為Visual Studio 11),然后單擊“Finish”。
  5. 等待分析完成。

Python OpenCV #1 - OpenCV介紹

Python OpenCV #1 - OpenCV介紹

您將看到所有字段都標(biāo)記為紅色。點(diǎn)擊 WITH 字段將其展開。它決定了你需要什么額外的功能。因此,標(biāo)記適當(dāng)?shù)淖侄。請參見下圖:

Python OpenCV #1 - OpenCV介紹

現(xiàn)在單擊 BUILD 字段展開它。前幾個(gè)字段配置構(gòu)建方法。請參見下圖:

Python OpenCV #1 - OpenCV介紹

其余字段指定要構(gòu)建的模塊。由于OpenCV-Python還不支持GPU模塊,因此您可以完全避免它以節(jié)省保存時(shí)間(但如果您使用它們,請保留它)。請參見下圖:

Python OpenCV #1 - OpenCV介紹

現(xiàn)在單擊 ENABLE 字段將其展開。確保 ENABLE_SOLUTION_FOLDERS 未選中(Visual Studio Express版不支持解決方案文件夾)。請參見下圖:

Python OpenCV #1 - OpenCV介紹

另外,請確保在 PYTHON 字段中,所有內(nèi)容都已填充。(忽略PYTHON_DEBUG_LIBRARY)。見下圖:

Python OpenCV #1 - OpenCV介紹

最后點(diǎn)擊 Generate 按鈕。

現(xiàn)在轉(zhuǎn)到我們的 opencv/build 文件夾。在那里你會(huì)發(fā)現(xiàn) OpenCV.sln 文件。用Visual Studio打開它。

將構(gòu)建模式檢查為 Release 而不是 Build 。

在解決方案資源管理器中,右鍵單擊 Solution (或 ALL_BUILD )并構(gòu)建它。這將需要一些時(shí)間才能完成(16)。

再次右鍵單擊OpenCV-Python并構(gòu)建它,F(xiàn)在OpenCV-Python將被安裝(17)。

Python OpenCV #1 - OpenCV介紹

打開Python IDLE并輸入“import cv 2 as cv”。如果沒有錯(cuò)誤,則說明安裝正確。

注意:

我們所安裝的沒有其他支持,如TBB,Eigen,Qt,文檔等。解釋它在這里是很難的。我們很快就會(huì)添加更詳細(xì)的視頻,或者您可以直接在附近進(jìn)行黑客操作。

2.4 額外資源

2.4.1 練習(xí)

如果你有一臺windows機(jī)器,從源代碼編譯OpenCV,進(jìn)行各種破解。如果您遇到任何問題,請?jiān)L問OpenCV論壇并解釋您的問題。

三、在Fedora中安裝OpenCV-Python

3.1 目標(biāo)

在本教程中

  • 我們將學(xué)習(xí)在Fedora系統(tǒng)中設(shè)置OpenCV-Python。以下步驟針對Fedora 18(64位)和Fedora 19(32位)進(jìn)行了測試。

3.2 介紹

OpenCV-Python可以通過兩種方式安裝在Fedora中:

  1. 從fedora存儲(chǔ)庫中提供的預(yù)構(gòu)建二進(jìn)制文件安裝。
  2. 從源代碼編譯。在本節(jié)中,我們將看到兩者。

另一個(gè)重要的事情是需要額外的庫。OpenCV-Python只需要 Numpy (除了其他依賴項(xiàng),我們將在后面看到)。但在本教程中,我們也使用 Matplotlib 來實(shí)現(xiàn)一些簡單而漂亮的繪圖目的(與OpenCV相比,我感覺好多了)。Matplotlib是可選的,但強(qiáng)烈推薦。同樣,我們還將看到 IPython ,一個(gè)交互式Python終端,這也是強(qiáng)烈推薦的。

3.3 從預(yù)構(gòu)建的二進(jìn)制文件安裝OpenCV-Python

以root用戶身份在終端中使用以下命令安裝所有軟件包。

$ yum install numpy opencv*

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

>>> import cv2 as cv
>>> print( cv.__version__ )

如果結(jié)果打印出來沒有任何錯(cuò)誤,恭喜!您已成功安裝OpenCV-Python。

這很容易,但有一個(gè)問題。Yum倉庫可能不總是包含最新版本的OpenCV。例如,在編寫本教程時(shí),yum存儲(chǔ)庫包含2.4.5,而最新的OpenCV版本是2.4.6。關(guān)于Python API,最新版本總是包含更好的支持。

此外,還可能會(huì)出現(xiàn)相機(jī)支持,視頻播放等問題,這取決于驅(qū)動(dòng)程序、ffmpeg、gstreamer軟件包等。

所以我個(gè)人傾向于下一種方法,即從源代碼編譯。同樣在某個(gè)時(shí)候,如果你想為OpenCV做貢獻(xiàn),你會(huì)需要這個(gè)。

3.4 從源代碼安裝OpenCV

從源代碼編譯可能看起來有點(diǎn)復(fù)雜,但一旦你成功了,就沒有什么復(fù)雜的了。

首先,我們將安裝一些依賴項(xiàng)。有些是強(qiáng)制的,有些是可選的?蛇x的依賴項(xiàng),如果你不需要,可以不填。

3.4.1 強(qiáng)制依賴

我們需要CMake來配置安裝,GCC用于編譯,Python-devel和Numpy用于創(chuàng)建Python擴(kuò)展等。

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

接下來,我們需要GTK支持GUI功能、camera(libdc1394,v4l)和vedio(ffmpeg,gstreamer)等。

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

3.4.2 可選依賴

以上依賴項(xiàng)足以在您的fedora機(jī)器中安裝OpenCV。但根據(jù)您的需求,您可能需要一些額外的依賴項(xiàng)。下面給出了此類可選依賴項(xiàng)的列表。您可以選擇安裝或不安裝它,由你決定 ?

OpenCV附帶了支持PNG,JPEG,JPEG 2000,TIFF,WebP等圖像格式的文件,但它可能有點(diǎn)舊。如果你想獲得最新的庫,你可以安裝這些格式的開發(fā)文件。

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函數(shù)通過英特爾的線程構(gòu)建塊(TBB)并行化。但是如果你想啟用它,你需要先安裝TBB。(同樣,在使用CMake配置安裝時(shí),不要忘記傳遞-D WITH_TBB= ON。更多細(xì)節(jié)見下文)

yum install tbb-devel

OpenCV使用另一個(gè)庫Eigen來優(yōu)化數(shù)學(xué)運(yùn)算。因此,如果你的系統(tǒng)中安裝了Eigen,你就可以利用它。(同時(shí),在配置CMake安裝時(shí),不要忘記傳遞-D WITH_EIGEN= ON。更多細(xì)節(jié)見下文)

yum install eigen3-devel

如果你想建立文檔(是的,你可以在你的系統(tǒng)中用HTML創(chuàng)建OpenCV完整官方文檔的離線版本,并提供完整的搜索功能,這樣你就不需要總是訪問互聯(lián)網(wǎng),如果有任何問題,它是相當(dāng)快的。枰惭bDoxygen(文檔生成工具)。

yum install doxygen

3.4.3 下載OpenCV

接下來我們需要下載OpenCV。你可以從 sourceforge站點(diǎn) 下載OpenCV的最新版本。然后解壓縮文件夾。

或者你可以從OpenCV的github repo下載最新的源代碼(如果你想為OpenCV做貢獻(xiàn),請選擇這個(gè)。它能讓你的OpenCV保持最新)。首先,你需要安裝 Git 。

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

它將在主目錄(或您指定的目錄)中創(chuàng)建一個(gè)文件夾OpenCV?寺】赡苄枰恍⿻r(shí)間,具體取決于您的網(wǎng)絡(luò)連接。

現(xiàn)在打開一個(gè)終端窗口并導(dǎo)航到下載的OpenCV文件夾。創(chuàng)建一個(gè)新的構(gòu)建文件夾并導(dǎo)航到它。

mkdir build
cd build

3.4.4 配置和安裝

現(xiàn)在我們已經(jīng)安裝了所有需要的依賴項(xiàng),讓我們安裝OpenCV。安裝必須使用CMake進(jìn)行配置。它指定要安裝的模塊、安裝路徑、要使用的附加庫、是否要編譯文檔和示例等。

下面的命令通常用于配置(從構(gòu)建文件夾執(zhí)行)。

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

它指定構(gòu)建類型為“Release Mode”,安裝路徑為 /usr/local。注意每個(gè)選項(xiàng)前的“-D”和最后的“..”。簡而言之,這是格式:

cmake [-D ] [-D ] ..

您可以指定任意多個(gè)標(biāo)志,但每個(gè)標(biāo)志前面都應(yīng)該有-D。

因此,在本教程中,我們將使用TBB和Eigen支持安裝OpenCV。我們還構(gòu)建文檔,但不包括性能測試和構(gòu)建示例。我們還禁用了GPU相關(guān)模塊(因?yàn)槲覀兪褂肙penCV-Python,所以不需要GPU相關(guān)模塊,這節(jié)省了我們一些時(shí)間)。

以下所有命令都可以在一個(gè)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相關(guān)模塊:
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 ..
  • 設(shè)置安裝路徑并構(gòu)建類型
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

每次輸入cmake語句時(shí),它都會(huì)打印出生成的配置設(shè)置。在你得到的最終設(shè)置中,確保以下字段已填寫(下面是我得到的配置的一些重要部分)。

這些字段也應(yīng)該在您的系統(tǒng)中適當(dāng)填寫。否則就出問題了。檢查你是否正確執(zhí)行了上述步驟。

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

還有許多其他的標(biāo)志和設(shè)置。這是留給你進(jìn)一步探索。

現(xiàn)在你使用make命令構(gòu)建文件,并使用make install命令安裝它。make install應(yīng)該以root身份執(zhí)行。

make
su
make install

安裝結(jié)束了。所有文件都安裝在 /usr/local/ 文件夾中。但是要使用它,你的Python應(yīng)該能夠找到OpenCV模塊。你有兩個(gè)選擇

  • 將模塊移動(dòng)到Python Path中的任意文件夾 :在Python終端中輸入 import sys; print(sys.path) 可以找到Python路徑。它將打印出許多位置。將 /usr/local/lib/python2.7/site-packages/cv2.so 移動(dòng)到此文件夾中的任何一個(gè)。比如說,
su mv /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/site-packages
  • 將 /usr/local/lib/python2.7/site-packages 添加到PYTHON_PATH中 :只需要執(zhí)行一次。只需打開/.bashrc并添加以下代碼,然后注銷并返回。
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages

OpenCV安裝完成。打開一個(gè)終端并嘗試 import cv 2 as cv。

要構(gòu)建文檔,只需輸入以下命令:

make doxygen

然后打開 opencv/build/doc/doxygen/html/index.html 并在瀏覽器中將其添加為書簽。

3.5 額外資源

3.5.1 練習(xí)

  1. 在Fedora機(jī)器上從源代碼編譯OpenCV。

四、在Ubuntu中安裝OpenCV-Python

4.1 目標(biāo)

在本教程中,我們將學(xué)習(xí)如何在Ubuntu系統(tǒng)中安裝OpenCV-Python。以下步驟針對Ubuntu 16.04和18.04(均為64位)進(jìn)行了測試。

OpenCV-Python可以通過兩種方式安裝在Ubuntu中:

  1. 從Ubuntu存儲(chǔ)庫中提供的預(yù)構(gòu)建二進(jìn)制文件安裝
  2. 從源代碼編譯。在本節(jié)中,我們將看到這兩種。

另一個(gè)重要的事情是需要額外的庫。OpenCV-Python只需要 Numpy (除了其他依賴項(xiàng),我們將在后面看到)。但在本教程中,我們也使用 Matplotlib 來實(shí)現(xiàn)一些簡單而漂亮的繪圖目的(與OpenCV相比,我感覺好多了)。Matplotlib是可選的,但強(qiáng)烈推薦。同樣,我們還將看到 IPython ,一個(gè)交互式Python終端,這也是強(qiáng)烈推薦的。

4.2 從預(yù)構(gòu)建的二進(jìn)制文件安裝OpenCV-Python

這種方法在僅用于編程和開發(fā)OpenCV應(yīng)用程序時(shí)效果最佳。

在終端中使用以下命令安裝python3-opencv軟件包(作為root用戶)。

$ sudo apt-get install python3-opencv

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

import cv2 as cv
print(cv.__version__)

如果結(jié)果打印出來沒有任何錯(cuò)誤,恭喜!您已成功安裝OpenCV-Python。

這很容易。但這有一個(gè)問題。Apt存儲(chǔ)庫可能不總是包含最新版本的OpenCV。例如,在編寫本教程時(shí),apt存儲(chǔ)庫包含2.4.8,而最新的OpenCV版本是3.x。

關(guān)于Python API,最新版本總是包含更好的支持和最新的錯(cuò)誤修復(fù)。

因此,為了獲得最新的源代碼,首選的方法是下一個(gè)方法,即從源代碼編譯。此外,如果你想為OpenCV做貢獻(xiàn),你也會(huì)需要這個(gè)。

4.3 從源代碼構(gòu)建OpenCV

從源代碼編譯可能看起來有點(diǎn)復(fù)雜,但一旦你成功了,就沒有什么復(fù)雜的了。

首先,我們將安裝一些依賴項(xiàng)。有些是強(qiáng)制的,有些是可選的。可選的依賴項(xiàng),如果你不需要,可以不填。

4.3.1 強(qiáng)制依賴

我們需要 CMake 來配置安裝, GCC 用于編譯, Python-devel Numpy 用于構(gòu)建Python綁定等。

sudo apt-get install cmake
sudo apt-get install gcc g++

支持Python 2:

sudo apt-get install python-dev python-numpy

支持Python 3:

sudo apt-get install python3-dev python3-numpy

接下來,我們需要GTK支持GUI、camera(v4l)、media(ffmpeg,gstreamer)等。

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

支持GTK 2:

sudo apt-get install libgtk2.0-dev

支持GTK 3:

sudo apt-get install libgtk-3-dev

4.3.2 可選依賴

以上依賴項(xiàng)足以在您的fedora機(jī)器中安裝OpenCV。但根據(jù)您的需求,您可能需要一些額外的依賴項(xiàng)。下面給出了此類可選依賴項(xiàng)的列表。您可以選擇安裝或不安裝它,由你決定 ?

OpenCV附帶了支持PNG,JPEG,JPEG 2000,TIFF,WebP等圖像格式的文件,但它可能有點(diǎn)舊。如果你想獲得最新的庫,你可以安裝這些格式的開發(fā)文件。

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

注意:

如果您使用的是Ubuntu 16.04,您還可以安裝 libjasper-dev 以添加對JPEG 2000格式的系統(tǒng)級支持。

4.3.3 下載OpenCV

從OpenCV的GitHub Repository下載最新的源代碼。(如果你想為OpenCV做貢獻(xiàn),請選擇此選項(xiàng)。為此,您需要先安裝 Git )。

$ sudo apt-get install git
$ git clone https://github.com/opencv/opencv.git

它將在當(dāng)前目錄下創(chuàng)建一個(gè)文件夾“opencv”?寺】赡苄枰恍⿻r(shí)間,具體取決于您的網(wǎng)絡(luò)連接。

現(xiàn)在打開一個(gè)終端窗口,導(dǎo)航到下載的“opencv”文件夾。創(chuàng)建一個(gè)新的“build”文件夾并導(dǎo)航到它。

$ mkdir build
$ cd build

4.3.4 配置和安裝

現(xiàn)在我們已經(jīng)有了所有需要的依賴項(xiàng),讓我們安裝OpenCV。安裝必須使用CMake進(jìn)行配置。它指定要安裝的模塊、安裝路徑、要使用的附加庫、是否要編譯文檔和示例等。

大多數(shù)工作都是通過配置良好的默認(rèn)參數(shù)自動(dòng)完成的。

以下命令通常用于配置OpenCV庫構(gòu)建(從構(gòu)建文件夾執(zhí)行):

$ cmake ../

OpenCV默認(rèn)假定“Release”構(gòu)建類型,安裝路徑為“/usr/local”。有關(guān)CMake選項(xiàng)的更多信息,請參閱 OpenCV C++編譯指南 。

您應(yīng)該在CMake輸出中看到這些行(它們意味著正確找到了Python):

-- Python 2:
-- Interpreter: /usr/bin/python2.7 (ver 2.7.6)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.6)
-- numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
-- packages path: lib/python2.7/dist-packages
--
-- Python 3:
-- Interpreter: /usr/bin/python3.4 (ver 3.4.3)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
-- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.8.2)
-- packages path: lib/python3.4/dist-packages

現(xiàn)在使用“make”命令構(gòu)建文件并使用“make install”命令安裝它。

$ make
# sudo make install

安裝結(jié)束了。所有文件都安裝在“/usr/local/”文件夾中。打開一個(gè)終端并嘗試 import cv2。

import cv2 as cv
print(cv.__version__)
小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認(rèn)同期限觀點(diǎn)或證實(shí)其描述。

相關(guān)視頻攻略

更多

掃二維碼進(jìn)入好特網(wǎng)手機(jī)版本!

掃二維碼進(jìn)入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)