程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python+OpenCV實用案例應用教程:安裝OpenCV

編輯:Python

第1章
安裝OpenCV
拿起這本教程的時候,你可能就已經對OpenCV有所了解了。你也許
在科幻小說中看到過其中的一些功能,比如訓練人工智能模型來識別
它通過攝像頭看到的所有東西。如果這是你的興趣,那你就不會失
望!OpenCV是開源計算機視覺(Open Source Computer Vision)的縮
寫。這是一個免費計算機視覺庫,允許你操作圖像和視頻來完成各種
任務,從顯示網絡攝像頭的視頻幀到教機器人識別真實物體。
通過本教程,你將學會基於Python編程語言來利用OpenCV的巨大潛
力。Python是一種優雅的語言,學習曲線相對較淺,但功能卻非常強
大。本章是關於如何安裝Python 3、OpenCV 4及其依賴項的快速指
南。作為OpenCV的一部分,我們將安裝opencv_contrib模塊,這些模
塊提供了由OpenCV社區(而不是核心開發團隊)維護的附加功能。安
裝完成後,我們還將浏覽一下OpenCV的Python示例腳本和文檔。
本章將介紹以下相關庫:
·NumPy:這個庫是OpenCV的Python綁定的一個依賴項。它提供
了包括高效數組在內的數值計算功能。
·SciPy:這個庫是一個科學計算庫,與NumPy密切相關。
OpenCV不需要這個庫,但是如果你希望操作OpenCV圖像中的數據,
那麼這個庫非常有用。
·OpenNI 2:這個庫是OpenCV的一個可選依賴項。添加了對某
些深度攝像頭(如華碩的Xtion PRO)的支持。
OpenCV 4已經放棄了對OpenNI 1以及所有OpenNI 1模塊的支
持,比如Sensor-Kinect。這一變化意味著在OpenCV 4中可能不再支持
像微軟Kinect的Xbox版本之類的一些老式深度攝像頭。
就本教程而言,可以認為OpenNI 2是可選的。該內容只貫穿於第4
章,在其他章節或附錄中並沒有用到OpenNI 2。
本教程重點關注當前OpenCV庫的最新版本OpenCV 4。有關
OpenCV的更多信息可以在http://opencv.org中找到,官方文檔可以在
http://docs.opencv.org/master中找到。
本章將介紹以下主題:
·OpenCV 4有哪些新特性。
·選擇和使用合適的安裝工具。
·運行示例。
·查找文檔、幫助和更新。


1.1  技術需求
本章假設你正在使用下列操作系統中的一種:
·Windows 7 SP1或者更高版本。
·macOS 10.7(Lion)或者更高版本。
·Debian Jessie或者更高版本,或者類似於下面的衍生版本:
·Ubuntu 14.04或者更高版本。
·Linux Mint 17或者更高版本。
為了編輯Python腳本或者其他文本文件,本教程作者只是建議:你
應該有一個好的文本編輯器。例如:
·Windows的Notepad++。
·macOS的BBEdit(免費版)。
·Linux上GNOME桌面環境的GEdit。
·Linux上KDE Plasma桌面環境的Kate。
除了操作系統之外,本章沒有其他先決條件。


1.2  OpenCV 4有哪些新特性
如果你是一名資深OpenCV使用者,那麼在決定安裝OpenCV 4之
前,你可能想了解更多有關OpenCV 4的變化。下面是其中的一些亮
點:
·已經將OpenCV的C++實現更新到C++11。OpenCV的Python綁
定封裝了C++實現,因此對於Python用戶而言,即使不直接使用
C++,也可以從這次更新中獲得一些性能優勢。
·移除了OpenCV已棄用的C實現以及C實現已棄用的Python綁
定。
·實現了許多新的優化。現有的OpenCV 3項目除了更新OpenCV
版本之外,無須進一步更改就可以利用這些優化。對於OpenCV
C++項目,可用名為G-API的全新優化管道,但是OpenCV的Python綁
定目前並不支持這個優化管道。
·OpenCV的DNN模塊提供了許多新的機器學習模型。
·移除了用於訓練Haar級聯和LBP級聯(檢測自定義對象)的工
具。有人提議在OpenCV 4的未來更新中重新實現這些工具,並支持其
他模型。
·支持KinectFusion算法(使用微軟Kinect 2攝像頭進行三維重
建)。
·新增了稠密光流的DIS算法。
·新增了一個二維碼檢測和解碼模塊。
無論你是否使用過OpenCV之前的版本,本教程都將作為OpenCV 4的
通用指南,在後續章節中將會特別關注其中的一些新特性。
1.3  選擇和使用合適的安裝工具
根據操作系統以及想要的配置,我們可以自由選擇各種安裝工
具。
無論選擇哪種操作系統,Python都提供了對安裝開發環境非常有
用的一些內置工具,包括名為pip的包管理器以及名為venv的虛擬環境
管理器。本章的一些說明主要針對pip,如果想了解venv,請參考
https://docs.python.org/3/library/venv.html處的官方Python文
檔。
如果你打算維護多個可能具有沖突依賴關系的Python項目,
那麼應該考慮使用venv——例如,依賴於OpenCV不同版本的項目。
venv的每個虛擬環境都有自己的一套安裝庫,我們可以在這些環境之
間切換,無須重新安裝任何東西。在給定的虛擬環境中,可以使用pip
安裝庫,在某些情況下也可以使用其他工具安裝庫。
我們來對可用於Windows、macOS、Ubuntu以及其他類UNIX系統的
安裝工具進行概述。


1.3.1  在Windows上安裝
Windows沒有預先安裝Python。但是,Python提供了一個安裝向導
和一個名為pip的包管理器,可以讓我們輕松安裝現成的NumPy、SciPy
和OpenCV。或者,我們可以從源代碼構建OpenCV,以便啟用非標准特
性,比如通過OpenNI 2支持深度攝像頭。OpenCV的構建系統使用CMake
來配置系統並使用Visual Studio進行編譯。
在做其他事情之前,首先來安裝Python。訪問
https://www.python.org/getit/下載並運行Python 3.8安裝程序。盡
管OpenCV也可以使用32位的Python,但是你可能想要64位的Python安
裝程序。
一旦安裝了Python,就可以使用pip安裝NumPy和SciPy了。打開命
令提示符,運行下面的命令:

現在,我們必須確定我們是需要一個現成的OpenCV(不支持深度
攝像頭)還是需要一個自定義OpenCV(支持深度攝像頭)。接下來將
介紹這些備選方案。
1.使用現成的OpenCV包
OpenCV包含opencv_contrib模塊,可以作為一個pip包來安裝。這
和運行以下命令一樣簡單:

 

如果希望OpenCV安裝包含非免費的內容(如專利算法),那麼可
以運行以下命令:

 

如果打算發布依賴於OpenCV非免費內容的軟件,你應該自己
調研適用於特定國家和特定用例的專利和許可問題。OpenCV的非免費
內容包括專利SIFT和SURF算法的實現,這些內容將在第6章中進行介
紹。
你可能會發現其中一個pip包提供了你目前想要的所有OpenCV特
性。另外,如果你打算使用深度攝像頭,或者想要了解OpenCV自定義
構建的一般過程,那麼不應該安裝OpenCV的pip包,而應該從源代碼構
建OpenCV。
2.從源代碼構建OpenCV
如果希望支持深度攝像頭,那麼還應該安裝OpenNI 2,它是帶有
安裝向導的一組預編譯二進制文件。然後,我們必須使用CMake和
Visual Studio從源代碼構建OpenCV。
要獲取OpenNI 2,請訪問https://structure.io/openni,並根據
Windows和系統架構(x64或者x86)下載最新版本的壓縮文件。將其解
壓,得到一個安裝程序文件,如OpenNI-Windows-x64-2.2.msi。運行
安裝程序。
現在,我們來安裝Visual Studio。要構建OpenCV 4,我們需要
Visual Studio 2015或者更高版本。如果還沒有合適的版本,可訪問
https://visualstudio.microsoft.com/downloads/,下載並運行下面
列出的安裝程序之一:
·免費的Visual Studio 2019社區版。
·Visual Studio 2019付費版,試用期為30天。
在安裝過程中,確保勾選所有可選的C++組件。安裝完成後,重新
啟動。
對於OpenCV 4,構建配置過程需要CMake 3或以上版本。訪問
https://cmake.org/download/,下載並安裝適用於自己的架構(x64
或x86)的CMake最新版本的安裝程序,然後運行它。在安裝過程中,
選擇“Add CMake to the system PATH for all users”或者“Add
CMake to the system PATH for current user”。
在這個階段,我們已經為OpenCV自定義構建安裝了依賴項並建立
了環境。現在,我們需要獲取OpenCV源代碼,配置並構建它。
這可以通過以下步驟來完成:
(1)訪問https://opencv.org/releases/,獲取Windows的最新
OpenCV下載程序。它是一個自解壓的壓縮文件。運行它,在出現命令
提示符時,輸入任意目標文件夾,我們將其命名為
<opencv_unzip_destination>。在解壓過程中,會在
<opencv_unzip_destination>\opencv中創建一個子文件夾。
(2)訪問
https://github.com/opencv/opencv_contrib/releases,下載
opencv_contrib模塊的最新壓縮文件。把這個文件解壓到任意目標文
件夾,我們將其命名為<opencv_contrib_unzip_destination>。
(3)打開命令提示符,運行以下命令,生成構建文件將放入的另
一個文件夾: 

把目錄更改為build文件夾:

 

4)現在,我們已經准備好使用CMake的命令行界面來配置構建
了。要理解所有的選項,可以閱讀
<opencv_unzip_destination>\opencv\CMakeLists.txt中的代碼。但
是,就本教程而言,我們只需要使用一些選項,這些選項將賦予我們帶
有Python綁定、opencv_contrib模塊、非免費內容,並通過OpenNI 2
支持深度攝像頭的一個發布構建。根據Visual Studio版本和目標架構
(x64或x86),一些選項稍有不同。要創建適用於Visual Studio
2019的64位(x64)解決方案,運行以下命令(但是請用實際路徑替代
<opencv_contrib_unzip_destination>和
<opencv_unzip_destination>):

 要創建適用於Visual Studio 2019的32位(x86)解決方案,運行
以下命令(但是請用實際路徑替代
<opencv_contrib_unzip_destination>和
<opencv_unzip_destination>):

 在運行上述命令時,它將打印有關找到或者丟失的依賴項的信
息。OpenCV有很多可選的依賴項,所以不要因丟失依賴項而驚慌。但
是,如果沒有成功完成構建,可以嘗試安裝丟失的依賴項。(很多依
賴項都可以作為預構建的二進制文件使用。)然後,重復這個步驟。
(5)CMake將會在<opencv_build_folder>/OpenCV.sln中生成一
個Visual Studio解決方案文件。在Visual Studio中打開它。請確保
在Visual Studio窗口頂部附近工具欄的下拉列表中勾選了
“Release”配置(而不是“Debug”配置)。(很可能不在Debug配置
中構建OpenCV的Python綁定,因為大多數Python發行版本都不包含調
試庫。)訪問“BUILD”菜單,選擇“Build Solution”。查看窗口底
部“Output”面板中的構建信息,等待構建完成。
(6)在這個階段,已經構建好了OpenCV,但是還沒有把OpenCV安
裝到Python可以找到的位置。在進行下一步之前,請確保Python環境
沒有包含沖突的OpenCV構建。找到並刪除Python的DLL文件夾和
site_packages文件夾中的所有OpenCV文件。例如,這些文件可能匹配
以下模式:C:\Python37\DLLs\opencv_*.dll、
C:\Python37\Lib\site-packages\opencv和C:\Python37\Lib\site-
packages\cv2.pyd。
(7)最後,安裝OpenCV的自定義構建。CMake已經生成了一個
INSTALL項目作為OpenCV.sln Visual Studio解決方案的一部分。查看
Visual Studio窗口右側的“Solution Explorer”面板,找到
“CMakeTargets | INSTALL”項目,右鍵單擊,並從“context”菜單
選擇“Build”。同樣,查看窗口底部“Output”面板中的構建消息,
並等待構建完成。然後,退出Visual Studio。編輯系統的Path變量,
並添加;<build_folder>\install\x64\vc15\bin(對於64位構建)或
者;<build_folder>\install\x86\vc15\bin(對於32位構建)。這個
文件夾是INSTALL項目放置OpenCV DLL文件(Python在運行時動態加載
的庫文件)的地方。OpenCV Python模塊位於諸如
C:\Python37\Lib\site-packages\cv2.pyd這樣的路徑下。Python將在
此找到它,因此你不需要將其添加到Path中。注銷並重新登錄(或者
重新啟動)。
上述指令指的是編輯系統的Path變量。也可以在控制面板的
“Environment Variables”窗口中按照如下步驟完成這項任務:
(1)單擊“開始”菜單並啟動控制面板。導航到“System and
Security”→“System”→“Advanced system settings”。單擊
“Environment Variables...”按鈕。
(2)現在,在“System Variables”下,選擇“Path”,單擊
“Edit…”按鈕。
(3)根據指示進行更改。
(4)要應用這些更改,請單擊所有的“OK”按鈕(直到回到控
制面板的主窗口)。
(5)然後,注銷並重新登錄(或者重新啟動)。
現在,我們已經在Windows上完成了OpenCV的構建過程,而且擁有
了適合本教程所有Python項目的一個自定義構建。
今後,如果想把OpenCV源代碼更新到新版本,請從下載
OpenCV開始,重復上述所有步驟。

1.3.2  在macOS上安裝
macOS預裝了Python的發行版(根據蘋果系統內部需求定制的)。
為了開發我們自己的項目,我們應該獨立安裝Python,並確保它與系
統的Python需求不沖突。
對於macOS,可能有一些方法可獲取標准版Python 3、NumPy、
SciPy和OpenCV。所有方法最終都需要對OpenCV使用Xcode命令行工具
從源代碼進行編譯。但是,根據不同的方法,這項任務可以通過第三
方工具以各種方式自動完成。我們可以使用一個自制程序的包管理器
查看這種方法。包管理器可以潛在地完成CMake能夠完成的所有內容,
此外,它還可以幫助我們解決依賴項,並將開發庫與系統庫進行分
離。
MacPorts是macOS的另一種流行的包管理器。但是,在編寫本
教程時,MacPorts並不提供OpenCV 4或者OpenNI 2的包,因此本教程中將
不會使用這個包管理器。
在繼續下一步之前,要確保正確地安裝了Xcode命令行工具。打開
終端,運行以下命令:

 同意許可協議以及其他提示內容。安裝程序應該運行到完成。現
在,我們就有了自制程序需要的編譯器。
1.使用現成軟件包的自制程序
從已經安裝了Xcode及其命令行工具的系統開始,下面的步驟將通
過自制程序完成OpenCV的安裝:
(1)打開終端,運行以下命令安裝自制程序:

 

(2)自制程序不會將可執行文件自動放入PATH中。為此,創建或
編輯~/.profile文件,在代碼頂部添加下面這一行內容: 

 

保存文件,運行以下命令刷新PATH: 

 

請注意,現在,由自制程序安裝的可執行文件優先於由系統安裝
的可執行文件。
(3)對於自制程序的自診斷報告,運行下面這條命令: 

 遵循它給出的所有故障排除建議。
(4)現在,更新自制程序:

 5)運行下面這條命令,安裝Python 3.8:

 

 6)現在,我們想要安裝擁有opencv_contrib模塊的OpenCV。同
時,我們想要安裝諸如NumPy之類的依賴項。為此,運行下面這條命
令:

 

自制程序不提供安裝帶有OpenNI 2支持的OpenCV的選項。自
制程序總是安裝擁有opencv_contrib模塊的OpenCV,包括專利SIFT和
SURF算法(見第6章)這樣的非免費內容。如果打算發布依賴於
OpenCV非免費內容的軟件,你應該自己調研適用於特定國家和特定用
例的專利和許可問題。
(7)同樣,運行下面這條命令,安裝SciPy: 

 

現在,我們就擁有了在macOS上基於Python開發OpenCV項目需要的
所有內容。
2.使用自定義軟件包的自制程序
如果你需要自定義一個軟件包,那麼自制程序讓編輯現有軟件包
定義變得很容易:

 

實際上,軟件包定義是用Ruby編程語言編寫的腳本。可以在網址
為https://github.com/Homebrew/brew/blob/master/docs/Formula-
Cookbook.md的自制程序維基頁面上查找有關編輯包定義的技巧。腳本
還可以指定Make或者CMake的配置標志,等等。
要查看哪些CMake配置標志與OpenCV相關,請參考
https://github.com/opencv/opencv/blob/master/CMakeLists.txt在GitHub
上的官方OpenCV庫。
在對Ruby腳本進行編輯之後,請對其進行保存。
自定義包可看作常規包。例如,可以按照如下方式安裝自定義
包:

 

1.3.3  在Debian、Ubuntu、Linux Mint以及類似系統
上安裝
Debian、Ubuntu、Linux Mint以及與Linux相關的發布平台使用
apt包管理器。在這些系統上,安裝用於Python 3以及包括NumPy和
SciPy在內的許多Python模塊的包是一件很容易的事情。還可以通過
apt獲取OpenCV包,但是在編寫本教程時,這個包還沒有更新到OpenCV
4。但是,我們可以從Python的標准包管理pip中獲取OpenCV 4(不支
持深度攝像頭)。也可以從源代碼構建OpenCV 4。從源代碼構建時,
OpenCV可以通過OpenNI 2支持深度攝像頭,OpenNI 2可以作為帶有安
裝腳本的一組預編譯二進制文件。
不管通過什麼方式獲取OpenCV,都要首先更新apt,這樣就可以獲
取最新的包。打開終端,運行下面這條命令:

 更新apt之後,運行下面這條命令,為Python 3安裝NumPy和
SciPy:

 同樣,我們可以使用Ubuntu軟件中心,它是apt包管理器的圖
形前端。
現在,我們必須決定是要OpenCV的一個現成構建(不支持深度攝
像頭),還是一個自定義構建(支持深度攝像頭)。下面將介紹這些
備選方案。
1.使用現成的OpenCV包
OpenCV包括opencv_contrib模塊在內,可以作為一個pip包進行安
裝。這就像運行下面的命令一樣簡單:

 

如果希望OpenCV安裝包含專利算法之類的非免費內容,那麼可以
運行下面這條命令: 

 如果打算發布基於OpenCV非免費內容的軟件,你應該自己調
研適用於特定國家和特定用例的專利和許可問題。OpenCV的非免費內
容包括專利SIFT和SURF算法的實現,我們將在第6章中進行介紹。
你可能會發現其中一個pip包提供了你目前想要的所有OpenCV特
性。另外,如果你打算使用深度攝像頭,或者想要了解OpenCV自定義
構建的一般過程,那麼不應該安裝OpenCV的pip包,而應該從源代碼構
建OpenCV。
2.從源代碼構建OpenCV
要從源代碼構建OpenCV,我們需要一個C++構建環境和CMake構建
配置系統。具體來說,我們需要CMake 3。在Ubuntu 14.04、Linux
Mint 17及其相關系統上,cmake包是指CMake 2,但是還有一個最新的
cmake 3包可供使用。在這些系統上,運行下面這些命令,以確保安裝
了所需的CMake版本及其他構建工具:

 

另外,在最新的操作系統上,cmake包指CMake 3,我們可以簡單
地運行下面這條命令:

 

 

除了OpenCV的構建過程外,CMake還需要訪問網絡下載附加依賴
項。如果系統使用了代理服務器,那麼請確保正確配置了代理服務器
的環境變量。具體來說,CMake依賴於http_proxy和https_proxy環境
變量。要定義這些環境變量,可以編輯~/.bash_profile腳本,添加下
面這些行的內容(請修改它們,以使它們與自己的代理服務器URL和端
口號相匹配): 

 

 如果不能確定系統是否使用了代理服務器,這可能就沒有用
了,那麼可以忽略這個步驟。
要構建OpenCV的Python綁定,我們需要安裝Python 3開發頭文
件。要安裝這些,運行下面這條命令:

要從典型的USB網絡攝像頭捕捉幀,OpenCV依賴於Linux視頻
(V4L)。在大多數系統上,V4L是預先安裝的,但是萬一沒有安裝的
話,請運行下面這條命令:

 

如前所述,要支持深度攝像頭,OpenCV依賴於OpenNI 2。訪問
https://structure.io/openni,下載適用於Linux和自己的系統架構
(x64、x86或者ARM)的OpenNI 2最新壓縮文件。將其解壓到任意目標
地址(命名為<openni2_unzip_destination>)。運行以下命令: 

 

上述安裝腳本將配置系統,以便支持USB設備之類的深度攝像頭。
而且,腳本創建引用<openni2_unzip_destination>內庫文件的環境變
量。因此,如果之後移除<openni2_unzip_destination>的話,你將需
要再次運行install.sh。
現在,我們已經安裝了構建環境變量和依賴項,可以獲取並構建
OpenCV的源代碼了。為此,請執行以下步驟:
(1)訪問https://opencv.org/releases/,下載最新源代碼包。
將其解壓到任意目標文件夾(命名為
<opencv_unzip_destination>)。
(2)訪問
https://github.com/opencv/opencv_contrib/releases,下載
opencv_contrib模塊的最新源代碼包。將其解壓到任意目標文件夾
(命名為<opencv_contrib_unzip_destination>)。
(3)打開終端。運行以下命令,創建將要放置OpenCV構建文件的
一個目錄: 

 

切換到新創建的目錄: 

 

(4)現在,我們可以使用CMake生成OpenCV的構建配置。這個配
置過程的輸出將是一組Makefile,它們是可以用於構建和安裝OpenCV
的腳本。
<opencv_unzip_destination>/opencv/sources/CMakeLists.txt文件
中定義了OpenCV的一組完整的CMake配置選項。對本教程而言,我們只關
心與OpenNI 2支持、Python綁定、opencv_contrib模塊和非免費內容
相關的選項。通過運行以下命令配置OpenCV:

 

(5)最後,運行以下命令,解析新生成的Makefile,從而構建並
安裝OpenCV:

 至此,我們已經在Debian、Ubuntu,或者類似的系統上完成了
OpenCV構建過程,而且我們還有適合本教程所有Python項目的一個自定
義構建。


1.3.4  在其他類UNIX系統上安裝
在其他類UNIX系統上,包管理器和可用包可能不同。請查閱包管
理器文檔,並搜索名稱中包含opencv的包。請記住,OpenCV及其
Python綁定可能被拆分成多個包。
另外,查找由系統的提供者、庫的維護者或者由社區發布的所有
安裝說明。由於OpenCV使用攝像頭驅動程序和媒體編解碼器,因此在
多媒體支持較差的系統上讓其所有功能正常工作可能會很棘手。在某
些情況下,為了兼容,可能需要重新配置或者重新安裝系統包。
如果OpenCV有可用的軟件包,那麼請檢查它們的版本號。對於本
教程,推薦使用OpenCV 4。此外,檢查這些包是否通過OpenNI 2提供對
Python綁定和深度攝像頭的支持。最後,檢查開發人員社區中是否有
人在使用這些包時報告了成功或者失敗情況。
相反,如果想要從源代碼完成OpenCV的自定義構建,參考1.3.3節
關於Debian、Ubuntu和類似系統的安裝步驟,並根據包管理器和其他
系統上的包調整這些步驟,可能會有所幫助。


1.4  運行示例
運行一些示例腳本是測試是否正確安裝了OpenCV的一種好方法。
OpenCV的源代碼存檔文件中包含了一些示例。如果還沒有獲取源代
碼,請訪問https://opencv.org/releases/並下載其中一個存檔文
件:
·對於Windows,下載最新的存檔文件,標簽為Windows。這是一
個自解壓壓縮文件。運行它,出現提示時,輸入任意目標文件夾(命
名為<opencv_unzip_destination>)。在
<opencv_unzip_destination>/opencv/samples/python中找到Python示例。
·對於其他系統,下載最新存檔文件,標簽為Sources。它是一個
壓縮文件。將其解壓到任意目標文件夾(命名為
<opencv_unzip_destination>)。在
<opencv_unzip_destination>/samples/python中找到Python示例。
一些示例腳本需要命令行參數。但是,下面的腳本(以及其他腳
本)應該可以在沒有任何參數的情況下工作:
·hist.py:這個腳本顯示一張照片。按下A、B、C、D或者E查看
照片的變化,以及相應的顏色直方圖或者灰度值直方圖。
·opt_flow.py:這個腳本顯示一個網絡攝像頭回傳信號,提供光流
疊加可視化或者運動方向。對著攝像頭慢慢揮手,看看效果。按下1或
者2選擇可視化。
要退出一個腳本,請按Esc(不是Windows的關閉按鈕)。
如果遇到“ImportError:No module named cv2”消息,那麼這就
意味著我們正在從一個對OpenCV一無所知的Python運行腳本。對此,
有兩種可能的解釋:
·OpenCV安裝過程中的一些步驟可能失敗或者丟失了。返回並查
看這些步驟。
·如果機器上安裝有多個Python,那麼我們可能正在使用錯誤的
Python版本來啟動腳本。例如,在macOS上,可能已經為自制Python安
裝了OpenCV,但是我們卻正在使用Python的系統版本運行腳本。返回
並檢查有關編輯系統PATH變量的安裝步驟。此外,試著使用以下命令
從命令行手動啟動腳本:

還可以試試下面的命令: 

 

作為選擇不同Python安裝的另一種可能方法,請嘗試著編輯示例
腳本,以刪除#!行。這些行可能顯式地將腳本與錯誤的Python安裝
(特定安裝)聯系起來。 

1.5  查找文檔、幫助和更新
可以在http://docs.opencv.org/找到OpenCV的文檔,既可以在線
閱讀也可以將其下載後離線閱讀。如果在飛機上或者其他沒有網絡訪
問的地方編寫代碼,你肯定希望保留文檔的離線副本。
該文檔包括OpenCV的C++API及其Python API組合的API引用。在查
找類或者函數時,請務必閱讀Python標題下的內容。
OpenCV的Python模塊命名為cv2。在cv2中的2與OpenCV的版
本號無關,我們使用的是OpenCV 4。歷史上,有一個名為cv的Python
模塊封裝了OpenCV的一個已經過時的C版本。在OpenCV 4中已經不存
在任何cv模塊。但是OpenCV文檔有時會錯誤地將模塊命名為cv(而不
是cv2)。請記住,在OpenCV 4中,正確的Python模塊名稱始終是
cv2。
如果文檔中沒有你的問題的答案,請試著尋求OpenCV社區的幫
助。在以下網站,可以找到對你有幫助的人:
·OpenCV論壇:https://answers.opencv.org/questions/。
·Adrian Rosebrock網站:http://www.pyimagesearch.com/。
·約瑟夫·豪斯的教程及其演示文稿網站:
http://nummist.com/opencv/。
最後,如果你是一名高級用戶,想嘗試最新(不穩定的)OpenCV
源代碼中的新特性、bug修復和樣例腳本的話,請通過網址
https://github.com/opencv/opencv/查看該項目的庫。
1.6  本章小結
目前為止,我們應該已經安裝了一個OpenCV,可滿足本教程中所描
述的各種項目的需求。根據選取的方法,我們還可能有一組工具和腳
本,可用於重新配置和重新安裝OpenCV,以滿足未來的需求。
現在,我們還知道了可以在哪裡找到OpenCV的Python示例。這些
示例包括的各種功能不在本教程討論的范圍內,但是這些內容非常實
用,可以作為附加學習資源。
在第2章,我們將掌握OpenCV API最基本的功能,即顯示圖像和視
頻、通過網絡攝像頭抓取視頻,以及處理基本的鍵盤和鼠標輸入。 


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved