OpenCV 3最新模塊介紹

      網友投稿 927 2022-05-29

      原文:https://zhuanlan.zhihu.com/p/19988205?columnSlug=hacker-and-painter

      OpenCV 3 的改動在哪?

      C 風格的API很快將會消失,完全被C++的API替代,代碼更加簡潔、不易出錯。讀者如果想借助opencv最新的功能,記得清理代碼中的C風格API。

      C++ API 將更加簡潔。

      所有的算法都將繼承自 cv::Algorithm 接口。

      大型的模塊將拆分為小模塊,模塊將在后面繼續講解。

      OpenCV 3 有這么多文件夾,從何入手?

      3rdparty/,包含第三方的庫,比如視頻解碼用的 ffmpeg,jpg、png、tiff等圖片的開源解碼庫。

      apps/,包含進行 haar 分類器訓練的工具,opencv 進行人臉檢測便是基于 haar 分類器。如果你想檢測人臉以外的圖片,千萬不要錯過這幾個工具。

      cmake/,包含生成工程項目時 cmake 的依賴文件,用于智能搜索第三方庫,普通開發者不需要關心這個文件夾的內容。

      data/,包含 opencv 庫以及范例中用到的資源文件,haar 物體檢測的分類器位于haarcascades子文件中。

      doc/,包含生成文檔所需的源文件以及輔助腳本。

      include/,包含入口頭文件。opencv 子文件夾中是 C 語言風格的API,也就是《Learning OpenCV (第一版)》中描述的API函數,官方將逐漸淘汰 C 風格函數,因此我不推薦大家使用該文件夾中的頭文件。opencv2 子文件中只有一個 opencv.hpp 文件,這是 cv2 以及 cv3 推薦使用的頭文件。

      modules/,包含核心代碼,opencv 真正的代碼都在這個文件夾中。opencv 從2.0開始以模塊的方式組織各種功能,近兩年模塊的數量增長得很快,后面我會依次介紹每個模塊的作用。

      platforms/,包含交叉編譯所需的工具鏈以及額外的代碼,交叉編譯指的是在一個操作系統中編譯供另一個系統使用的文件。

      samples/,這是大家最喜歡的范例文件夾了,將在之后的文章中介紹。

      OpenCV 3最新模塊介紹

      我沒有 N 卡,該看哪些模塊?

      androidcamera/,僅用于android平臺,使得可以通過與其他平臺相同的接口來控制android設備的相機。

      core/,核心功能模塊,定義了基本的數據結構,包括最重要的 Mat 類、XML 讀寫、opengl三維渲染等。

      imgproc/,全稱為 image processing,即圖像處理。包括圖像濾波、集合圖像變換、直方圖計算、形狀描述子等。圖像處理是計算機視覺的重要工具。

      imgcodec/,負責各種格式的圖片的讀寫,這個模塊是從以前的 highgui 中剝離的。

      highgui/,高級圖形界面及與 QT 框架的整合。

      video/,視頻分析模塊。包括背景提取、光流跟蹤、卡爾曼濾波等,做視頻監控的讀者會經常使用這個模塊。

      videoio/,負責視頻文件的讀寫,也包括攝像頭、Kinect 等的輸入。

      calib3d/,相機標定以及三維重建。相機標定用于去除相機自身缺陷導致的畫面形變,還原真實的場景,確保計算的準確性。三維重建通常用在雙目視覺(立體視覺),即兩個標定后的攝像頭觀察同一個場景,通過計算兩幅畫面中的相關性來估算像素的深度。

      features2d/,包含 2D 特征值檢測的框架。包含各種特征值檢測器及描述子,例如 FAST、MSER、OBRB、BRISK等。各類特征值擁有統一的算法接口,因此在不影響程序邏輯的情況下可以進行替換。

      objdetect/,物體檢測模塊。包括haar分類器、SVM檢測器及文字檢測。

      ml/,全稱為 Machine Learning,即機器學習。包括統計模型、K最近鄰、支持向量機、決策樹、神經網絡等經典的機器學習算法。

      flann/,用于在多維空間內聚類及搜索的近似算法,做圖像檢索的讀者對它不會陌生。

      photo/,計算攝影學。包括圖像修補、去噪、HDR成像、非真實感渲染等。如果讀者想實現Photoshop的高級功能,那么這個模塊必不可少。

      stitching/,圖像拼接,可用于制作全景圖。

      nonfree/,受專利保護的算法。包含SIFT和SURF,從功能上來說這兩個算法屬于features2d模塊的,但由于它們都是受專利保護的,想在項目中可能需要專利方的許可。

      shape/,形狀匹配算法模塊。用于描述形狀、比較形狀。

      softcascade/,另一種物體檢測算法,Soft Cascade 分類器。包含檢測模塊和訓練模塊。

      superres/,全稱為 Super Resolution,用于增強圖像的分辨率。

      videostab/,全稱為 Video Stabilization,用于解決相機移動時拍攝的視頻不夠穩定的問題。

      viz/,三維可視化模塊。可以認為這個模塊實現了一個簡單的三維可視化引擎,有各種UI控件和鍵盤、鼠標交互方式。底層實現基于 VTK 這個第三方庫。

      我愛 CUDA,買了一堆 Tesla 加速卡,該看哪些模塊?

      這些模塊的名稱都以 cuda 為開始,cuda 是顯卡制造商 NVIDIA 推出的通用計算語言,在cv3中有大量的模塊已經被移植到了 cuda 語言。讓我們依次看一下:

      cuda/,CUDA-加速的計算機視覺算法,包括數據結構 cuda::GpuMat、 基于cuda的相機標定及三維重建等。

      cudaarithm/,CUDA-加速的矩陣運算模塊。

      cudabgsegm/,CUDA-加速的背景分割模塊,通常用于視頻監控。

      cudacodec/,CUDA-加速的視頻編碼與解碼。

      cudafeatures2d/,CUDA-加速的特征檢測與描述模塊,與features2d/模塊功能類似。

      cudafilters/,CUDA-加速的圖像濾波。

      cudaimgproc/,CUDA-加速的圖像處理算法,包含直方圖計算、霍夫變換等。

      cudaoptflow/,CUDA-加速的光流檢測算法。

      cudastereo/,CUDA-加速的立體視覺匹配算法。

      cudawarping/,實現了 CUDA-加速的快速圖像變換,包括透視變換、旋轉、改變尺寸等。

      cudaev/,實現 CUDA 版本的核心功能,類似 core/ 模塊中的基礎算法。

      結語

      希望本文能對讀者了解下一代的 OpenCV 起到幫助,還有一些內容將在之后的文章中介紹,比如 samples 介紹,opencv_contrib 模塊是什么等等。

      OpenCV 視頻

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:華為云洪方明:技術共生,商業共贏,攜手伙伴共創產業未來
      下一篇:使用DevCloud在華為云鯤鵬ECS上自動部署鳳凰商城示例程序
      相關文章
      亚洲?V无码成人精品区日韩| 亚洲精品日韩一区二区小说| 无码专区一va亚洲v专区在线 | 亚洲色www永久网站| 亚洲毛片在线免费观看| 亚洲日本va午夜中文字幕一区| 亚洲天堂男人天堂| 老司机亚洲精品影院| 亚洲永久永久永久永久永久精品| 亚洲人成依人成综合网| 亚洲第一中文字幕| 亚洲视频手机在线| 91亚洲视频在线观看| 亚洲www在线观看| 亚洲日韩精品国产3区| 亚洲av无码专区在线电影| 亚洲AV无码专区在线厂| 亚洲äv永久无码精品天堂久久 | 亚洲欧洲专线一区| 亚洲成a∧人片在线观看无码| 亚洲国产成人久久综合| 女bbbbxxxx另类亚洲| 亚洲国产精品一区二区第四页| 亚洲色偷拍区另类无码专区| 亚洲最大激情中文字幕| 亚洲av永久无码精品秋霞电影影院| 亚洲A∨无码一区二区三区| 久久精品国产亚洲AV大全| 亚洲国产精品综合福利专区| 亚洲欧洲日韩国产一区二区三区| 亚洲人成欧美中文字幕| 亚洲AV无码之日韩精品| 亚洲一区无码中文字幕| 亚洲韩国—中文字幕| 亚洲冬月枫中文字幕在线看| 亚洲色一区二区三区四区| 噜噜噜亚洲色成人网站| 亚洲精品V欧洲精品V日韩精品| 亚洲国产天堂在线观看| 亚洲一区二区三区不卡在线播放| 亚洲日本成本人观看|