OpenCV 官方文檔的組織結構

OpenCV (開源計算機視覺庫:http://opencv.org) 是一個開源庫,它包含了幾百個計算機視覺算法。學習 OpenCV 庫最權威的資料無疑就是 OpenCV 的官方文檔了。

OpenCV 官方提供的文檔比較齊全,這些文檔主要有兩種形式,一是教程,就像書或文章一樣,會以 OpenCV 的某個模塊或接口為主題,較為詳細地說明基本原理,OpenCV 的 API 用法,并提供示例代碼和說明;二是 API 參考,會逐個類逐個函數接口的進行說明。要學習 OpenCV,教程形式的官方文檔無疑是最好的選擇;但日常開發中,一時想不起來某個函數接口的簽名及語義,想不起來某個類有哪些函數接口,則翻找 API 參考形式的官方文檔更好。

這里梳理一下 OpenCV 官方文檔的組織結構,讓我們可以對 OpenCV 提供了什么有一個大概的了解,同時又能為我們隊 OpenCV 的學習提供一個路線圖。

在 OpenCV 官方網站中,庫的 Releases 頁面 列出了 OpenCV 各個版本的一些關鍵信息,如源碼的下載鏈接,對應版本的 GitHub 鏈接,不同操作系統平臺的二進制安裝包下載鏈接等,當然也包括文檔入口的鏈接。

這里以當前最新的發行版 4.5.5 為例,看一下OpenCV 官方文檔的組織結構。

OpenCV 4.5.5 版文檔的入口頁面位于 https://docs.opencv.org/4.5.5/,這個頁面的組織如下:

OpenCV 官方文檔的組成包括一份介紹文檔(介紹),4 個教程(OpenCV 教程OpenCV-Python 教程OpenCV.js 教程contrib 模塊教程),一份 FAQ 文檔(經常問的問題 (FAQ)),一份參考資料文檔(參考文獻),以及主要模塊和額外模塊的 API 參考。

主要模塊和額外模塊的 API 參考,適合用來在開發過程中檢索各個模塊的 API,對于學習,這些文檔會顯得非常枯燥且讓人迷惑。

參考資料文檔(參考文獻)包含了許多參考文獻的說明,其中一部分有網頁鏈接。這份文檔作為查找擴展閱讀材料的入口有一定價值。

介紹文檔(介紹)包含對 OpenCV 整個項目的結構,以及 API 概念的說明,學習 OpenCV 必讀材料

contrib 模塊教程)的質量有點參差不齊,其中不同模塊的教程,其繁簡程度也大為不同,有些非常簡略,有些則很詳細。對于要學習還沒有進入正式版的 contrib 模塊的同學,還是非常有價值的。

OpenCV 官方提供的三份教程是針對不同平臺學習 OpenCV 的絕佳材料。OpenCV 教程 對 OpenCV 的主要數據結構,主要概念,及各個模塊的 API 都有著很詳細的說明,示例代碼主要用 C++ 編程語言。

OpenCV-Python 教程 為 Python 開發者提供了關于 OpenCV 的詳盡介紹。

OpenCV.js 教程 則為 JavaScript 開發者提供了關于 OpenCV 的詳盡介紹。

OpenCV 教程 的內容

OpenCV 官方提供的三份教程中,OpenCV 教程 值得好好學習一下,另兩份教程則可以根據自己所用的開發語言選擇是深入學習,還是棄之不用。

這里再看下 OpenCV 教程 的主要內容:

OpenCV 教程OpenCV 介紹 部分,非常詳細地介紹了為各種各樣的平臺搭建 OpenCV 開發環境的過程。OpenCV 教程 的其余部分,則分模塊介紹 OpenCV 的各項功能。

OpenCV 教程OpenCV 介紹 部分的內容如下:

Linux

Windows

Java & Android

其它平臺

基礎用法

  • 圖像入門 - 我們將學習如何從文件中加載圖像,并使用 OpenCV 顯示它

雜項

OpenCV 教程OpenCV 介紹 部分對于開發環境搭建過程的詳細說明,無疑是我們學習 OpenCV 過程中繞不過去的第一步的寶貴參考。

OpenCV-Python 教程 的內容

當前 Python 在 AI 和計算機視覺領域應用廣泛,OpenCV-Python 教程 對于 Python 計算機視覺學習和開發的同學極具價值。這里看一下這份教程的內容:

  • OpenCV 介紹

    學習如何在計算機上搭建 OpenCV-Python 開發環境!

  • OpenCV 中的 Gui 功能

    在這里,我們將學習如何顯示和保存圖像和視頻、控制鼠標事件和創建軌跡欄。的第一步的寶貴

  • 核心操作

    在本節中,我們將學習圖像的基本操作,如像素編輯、幾何變換、代碼優化、一些數學工具等。的第一步的寶貴

  • OpenCV 中的圖像處理

    在這一節,我們將學習 OpenCV 中不同的圖像處理功能。

  • 特征探測和描述

    在本節中,我們將了解特征探測器和描述符

  • 視頻分析 (video 模塊)

    在本節中,我們將學習使用對象跟蹤等視頻的不同技術。

  • 相機校準和 3D 重建

    在本節中,我們將學習相機校準、立體成像等。

  • 機器學習

    在本節中,我們將學習 OpenCV 中不同的機器學習功能。

  • 計算攝影

    在本節中,我們將學習不同的計算攝影技術,例如圖像去噪等。

  • 目標探測 (objdetect 模塊)

    在本節中,我們將學習目標檢測技術,例如人臉檢測等。

  • OpenCV-Python 綁定

    在本節中,我們將看一下 OpenCV-Python 綁定是如何生成的。

這份教程的結構與 OpenCV 教程 的結構類似,其中的 OpenCV 介紹 部分同樣介紹了開發環境搭建,其余各部分介紹 OpenCV 的各個模塊。

OpenCV-Python 教程OpenCV 介紹 部分內容如下:

基于官方文檔的 OpenCV 學習路線圖

官方文檔中的 API 參考部分并沒有太大的學習價值,可以基于官方提供的幾份教程,具體來說,是 OpenCV 教程OpenCV-Python 教程,建立自己的 C++ 和 Python 編程語言的 OpenCV 學習路線圖。這兩份教程介紹的主題差別不是很大,但不同主題在各份教程中的編排順序略有不同。

這里以 開發環境搭建 -> OpenCV 的結構和基本概念 -> OpenCV 庫提供的開發實用工具 -> OpenCV 核心操作和功能 -> 圖像處理 -> 其它 OpenCV 主要模塊 -> OpenCV contrib 模塊 這樣的思路來制定學習路線圖:

  1. 搭建 Python 和 C++ 的開發環境

通過學習教程的 OpenCV 介紹 部分可以完成。

OpenCV-Python Tutorials - Install OpenCV-Python in Ubuntu
OpenCV Tutorials - Installation in Linux
OpenCV Tutorials - Using OpenCV with Eclipse (plugin CDT)
OpenCV Tutorials - Using OpenCV with gcc and CMake

  1. OpenCV 項目的結構和 API 概念

OpenCV 4.5.5 版文檔的入口頁面中的 介紹 部分。

  1. 應用程序實用工具

應用程序實用工具 (highgui,imgcodecs,videoio 模塊) (OpenCV 教程)
OpenCV 中的 Gui 功能 (OpenCV Python 教程)

  1. 核心功能和操作

核心功能 (core 模塊) (OpenCV 教程)
核心操作 (OpenCV Python 教程)

  1. 圖形處理

圖像處理 (imgproc 模塊) (OpenCV 教程)
OpenCV 中的圖像處理 (OpenCV Python 教程)

  1. 相機校準和 3D 重建

相機校準和 3D 重建 (calib3d 模塊) (OpenCV 教程)
相機校準和 3D 重建 (OpenCV Python 教程)

  1. 特征探測和描述 - 特征框架 (feature2d 模塊)

2D 特征框架 (feature2d 模塊) (OpenCV 教程)
特征探測和描述 (OpenCV Python 教程)

  1. 計算攝影

其它教程 (ml,objdetect,photo,stitching,video) (OpenCV 教程)
計算攝影 (OpenCV Python 教程)

這其中包含圖像去噪、圖像修補,和高動態范圍 (HDR) 等內容。

  1. 目標檢測

其它教程 (ml,objdetect,photo,stitching,video) (OpenCV 教程)
目標探測 (objdetect 模塊) (OpenCV Python 教程)

  1. 視頻分析

其它教程 (ml,objdetect,photo,stitching,video) (OpenCV 教程)
視頻分析 (video 模塊) (OpenCV Python 教程)

  1. 機器學習

其它教程 (ml,objdetect,photo,stitching,video) (OpenCV 教程)
機器學習 (OpenCV Python 教程)

  1. 深度神經網絡

深度神經網絡 (dnn 模塊) (OpenCV 教程)

  1. 圖 API

圖 API (gapi 模塊) (OpenCV 教程)

  1. GPU 加速的計算機視覺

GPU 加速的計算機視覺 (cuda 模塊) (OpenCV 教程)

  1. 背景分割

bgsegm 模塊教程 (contrib 模塊教程)

  1. 超分辨率

使用 CNN 的超分辨率 (contrib 模塊教程)

OpenCV 的這些教程,與一般的技術書還是有些不一樣,它們并不是某個人或某個組織按照特定的規劃,組織編寫的結構嚴謹的教材,而是不同作者針對不同主題寫就的文章的合集。

對于 OpenCV 具體模塊的學習,不需要嚴格按照上面的路線圖來走,具體模塊學習的先后,可以按照自己的開發需要進行。

Done。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,983評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,772評論 3 422
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,947評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,201評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,960評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,350評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,406評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,549評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,104評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,914評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,089評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,647評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,340評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,753評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,007評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,834評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,106評論 2 375

推薦閱讀更多精彩內容