日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

转载:【opencv入门教程之三】:组件结构

發(fā)布時(shí)間:2025/3/13 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转载:【opencv入门教程之三】:组件结构 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


本系列文章由zhmxy555(毛星云)編寫(xiě),轉(zhuǎn)載請(qǐng)注明出處。??

文章鏈接:?http://blog.csdn.net/poem_qianmo/article/details/19925819

作者:毛星云(淺墨)????郵箱:?happylifemxy@163.com?

寫(xiě)作當(dāng)前博文時(shí)配套使用OpenCV版本:2.4.8

?

?

之前啃了不少OpenCV的官方文檔,發(fā)現(xiàn)如果了解了一些OpenCV整體的模塊架構(gòu)后,再重點(diǎn)學(xué)習(xí)自己感興趣的部分的話,就會(huì)有一覽眾山小的感覺(jué),于是,就決定寫(xiě)出這篇文章,作為啟程O(píng)penCV系列博文的第二篇。

?

至于OpenCV組件結(jié)構(gòu)的研究方法,我們不妨管中窺豹,通過(guò)opencv安裝路徑下include目錄里面頭文件的分類存放,來(lái)一窺OpenCV這些年迅猛發(fā)展起來(lái)的龐雜組件架構(gòu)。

我們進(jìn)入到D:\ProgramFiles\opencv\build\include目錄,可以看到有opencv和opencv2這兩個(gè)文件夾。顯然,opencv這個(gè)文件夾里面包含著舊版的頭文件。而opencv2這個(gè)文件夾里面包含著具有時(shí)代意義的新版OpenCV2系列的頭文件。

?

在opencv這個(gè)文件夾里面,也就是D:\Program Files\opencv\build\include\opencv目錄下,可以看到如下的各種頭文件。這里面大概就是opencv 1.0最核心的,而且保留下來(lái)的內(nèi)容的頭文件,可以把它們整體理解為一個(gè)組件。

?


?再來(lái)看看我們重點(diǎn)關(guān)注的opencv2這邊,在D:\ProgramFiles\opencv\build\include\opencv2目錄下,我們可以看到這些文件夾:




我們靈機(jī)一動(dòng),發(fā)現(xiàn)下面有個(gè)叫opencv_modules.hpp的hpp文件,一看就知道里面存放的是opencv2中的新模塊構(gòu)造相關(guān)的說(shuō)明代碼,打開(kāi)一看,果不其然,定義的是OpenCV2所有組件的宏:


  • /*
  • * ** File generated automatically, do not modify **
  • *
  • *This file defines the list of modules available in current build configuration
  • *
  • *
  • */
  • #define HAVE_OPENCV_CALIB3D
  • #define HAVE_OPENCV_CONTRIB
  • #define HAVE_OPENCV_CORE
  • #define HAVE_OPENCV_FEATURES2D
  • #define HAVE_OPENCV_FLANN
  • #define HAVE_OPENCV_GPU
  • #define HAVE_OPENCV_HIGHGUI
  • #define HAVE_OPENCV_IMGPROC
  • #define HAVE_OPENCV_LEGACY
  • #define HAVE_OPENCV_ML
  • #define HAVE_OPENCV_NONFREE
  • #define HAVE_OPENCV_OBJDETECT
  • #define HAVE_OPENCV_OCL
  • #define HAVE_OPENCV_PHOTO
  • #define HAVE_OPENCV_STITCHING
  • #define HAVE_OPENCV_SUPERRES
  • #define HAVE_OPENCV_TS
  • #define HAVE_OPENCV_VIDEO
  • #define HAVE_OPENCV_VIDEOSTAB

  • ?

    OK,就不多客套了,下面就是OpenCV的所有模塊介紹,按照順序來(lái):

    ?

    【calib3d】——其實(shí)就是就是Calibration(校準(zhǔn))加3D這兩個(gè)詞的組合縮寫(xiě)。這個(gè)模塊主要是相機(jī)校準(zhǔn)和三維重建相關(guān)的內(nèi)容。基本的多視角幾何算法,單個(gè)立體攝像頭標(biāo)定,物體姿態(tài)估計(jì),立體相似性算法,3D信息的重建等等。

    ?

    【contrib】——也就是Contributed/Experimental Stuf的縮寫(xiě), 該模塊包含了一些最近添加的不太穩(wěn)定的可選功能,不用去多管。2.4.8里的這個(gè)模塊有新型人臉識(shí)別,立體匹配,人工視網(wǎng)膜模型等技術(shù)。

    ?

    【core】——核心功能模塊,包含如下內(nèi)容:

    • OpenCV基本數(shù)據(jù)結(jié)構(gòu)
    • 動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)
    • 繪圖函數(shù)
    • 數(shù)組操作相關(guān)函數(shù)
    • 輔助功能與系統(tǒng)函數(shù)和宏
    • 與OpenGL的互操作


    ?【imgproc】——Image和Processing這兩個(gè)單詞的縮寫(xiě)組合。圖像處理模塊,這個(gè)模塊包含了如下內(nèi)容:

    • 線性和非線性的圖像濾波
    • 圖像的幾何變換
    • 其它(Miscellaneous)圖像轉(zhuǎn)換
    • 直方圖相關(guān)
    • 結(jié)構(gòu)分析和形狀描述
    • 運(yùn)動(dòng)分析和對(duì)象跟蹤
    • 特征檢測(cè)
    • 目標(biāo)檢測(cè)等內(nèi)容

    ?

    【features2d】?——也就是Features2D, 2D功能框架 ,包含如下內(nèi)容:

    • 特征檢測(cè)和描述
    • 特征檢測(cè)器(Feature Detectors)通用接口
    • 描述符提取器(Descriptor Extractors)通用接口
    • 描述符匹配器(Descriptor Matchers)通用接口
    • 通用描述符(Generic Descriptor)匹配器通用接口
    • 關(guān)鍵點(diǎn)繪制函數(shù)和匹配功能繪制函數(shù)


    【flann】——?Fast Library for Approximate Nearest Neighbors,高維的近似近鄰快速搜索算法庫(kù),包含兩個(gè)部分:

    • 快速近似最近鄰搜索
    • 聚類

    ?

    【gpu】——運(yùn)用GPU加速的計(jì)算機(jī)視覺(jué)模塊

    ?

    【highgui】——也就是high gui,高層GUI圖形用戶界面,包含媒體的I / O輸入輸出,視頻捕捉、圖像和視頻的編碼解碼、圖形交互界面的接口等內(nèi)容

    ?

    【legacy】——一些已經(jīng)廢棄的代碼庫(kù),保留下來(lái)作為向下兼容,包含如下相關(guān)的內(nèi)容:?

    • 運(yùn)動(dòng)分析
    • 期望最大化
    • 直方圖
    • 平面細(xì)分(C API)
    • 特征檢測(cè)和描述(Feature Detection and Description)
    • 描述符提取器(Descriptor Extractors)的通用接口
    • 通用描述符(Generic Descriptor Matchers)的常用接口
    • 匹配器

    ?

    【ml】——Machine Learning,機(jī)器學(xué)習(xí)模塊,?基本上是統(tǒng)計(jì)模型和分類算法,包含如下內(nèi)容:

    • 統(tǒng)計(jì)模型 (Statistical Models)
    • 一般貝葉斯分類器 (Normal Bayes Classifier)
    • K-近鄰 (K-NearestNeighbors)
    • 支持向量機(jī) (Support Vector Machines)
    • 決策樹(shù) (Decision Trees)
    • 提升(Boosting)
    • 梯度提高樹(shù)(Gradient Boosted Trees)
    • 隨機(jī)樹(shù) (Random Trees)
    • 超隨機(jī)樹(shù) (Extremely randomized trees)
    • 期望最大化 (Expectation Maximization)
    • 神經(jīng)網(wǎng)絡(luò) (Neural Networks)
    • MLData

    【nonfree】,也就是一些具有專利的算法模塊 ,包含特征檢測(cè)和GPU相關(guān)的內(nèi)容。最好不要商用,可能會(huì)被告哦。

    ?

    【objdetect】——目標(biāo)檢測(cè)模塊,包含Cascade Classification(級(jí)聯(lián)分類)和Latent SVM這兩個(gè)部分。

    ?

    【ocl】——即OpenCL-accelerated Computer Vision,運(yùn)用OpenCL加速的計(jì)算機(jī)視覺(jué)組件模塊

    ?

    【photo】——也就是Computational Photography,包含圖像修復(fù)和圖像去噪兩部分

    ?

    【stitching】——images stitching,圖像拼接模塊,包含如下部分:

    • 拼接流水線
    • 特點(diǎn)尋找和匹配圖像
    • 估計(jì)旋轉(zhuǎn)
    • 自動(dòng)校準(zhǔn)
    • 圖片歪斜
    • 接縫估測(cè)
    • 曝光補(bǔ)償
    • 圖片混合

    【superres】——SuperResolution,超分辨率技術(shù)的相關(guān)功能模塊

    ?

    【ts】——opencv測(cè)試相關(guān)代碼,不用去管他

    ?

    【video】——視頻分析組件,該模塊包括運(yùn)動(dòng)估計(jì),背景分離,對(duì)象跟蹤等視頻處理相關(guān)內(nèi)容。

    ?

    【Videostab】——Video stabilization,視頻穩(wěn)定相關(guān)的組件,官方文檔中沒(méi)有多作介紹,不管它了。


    ?

    看到到這里,相信大家已經(jīng)對(duì)OpenCV的模塊架構(gòu)設(shè)計(jì)有了一定的認(rèn)識(shí)。

    OpenCV其實(shí)就是這么多模塊作為代碼容器組合起來(lái)的一個(gè)SDK而已,沒(méi)什么稀奇的,對(duì)吧。

    ?

    最后配張圖,養(yǎng)養(yǎng)眼:



    好了,OpenCV的組件結(jié)構(gòu)介紹大概就是這些。

    下篇文章見(jiàn) :)




    ?


    總結(jié)

    以上是生活随笔為你收集整理的转载:【opencv入门教程之三】:组件结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。