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

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

生活随笔

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

编程问答

OpenCV3源代码目录解析(算法模块解析 和 示例目录解析)

發(fā)布時(shí)間:2025/5/22 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV3源代码目录解析(算法模块解析 和 示例目录解析) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

OpenCV3源代碼文件夾sources:

? 3rdparty: 包含第三方庫(kù),如用視頻解碼用的 ffmpeg、jpg、png、tiff 等圖片的解碼庫(kù)。

? apps: 包含進(jìn)行 Haar 分類器訓(xùn)練的工具,OpenCV 進(jìn)行人臉檢測(cè)便是基于 Haar 分類器。如果你想檢測(cè)人臉以外的圖片,千萬(wàn)不要錯(cuò)過(guò)這幾個(gè)工具。

? cmake: 包含生成工程項(xiàng)目時(shí)cmake 的依賴文件,只能用于搜索第三方庫(kù),普通開(kāi)發(fā)者不需要關(guān)心這個(gè)文件夾的內(nèi)容。

? data: 包含 OpenCV 庫(kù)及范例中用到的資源文件

? doc: 包含生成文檔所需的源文件及輔助腳本

? include: 包含入口頭文件。OpenCV子文件夾中是C語(yǔ)言風(fēng)格的API。OpenCV 2 子文件夾中只有一個(gè) opencv.hpp 文件,這是 OpenCV 2 及 OpenCV 3 推薦使用的頭文件

? modules:算法模塊的源代碼。研究算法的同學(xué) 學(xué)習(xí)的重點(diǎn)!!!

? platforms: 包含交叉編譯所需的工具鏈及額外的代碼,交叉編譯指的是在一個(gè)操作系統(tǒng)中編譯供另一個(gè)系統(tǒng)使用的文件。

? samples:算法用法示例文件夾

?
重點(diǎn)文件夾:include、modules和samples
modules文件夾:

CPU模塊:

? calib3d: 相機(jī)標(biāo)定及三維重建。相機(jī)標(biāo)定用于取出相機(jī)自身缺陷導(dǎo)致的畫面形變,還原真實(shí)的場(chǎng)景,確保計(jì)算的準(zhǔn)確性。三維重建通常用在雙目視覺(jué)(立體視覺(jué)),即兩個(gè)標(biāo)定后的攝像頭觀察同一個(gè)場(chǎng)景,通過(guò)計(jì)算兩幅畫面中的相關(guān)性來(lái)估計(jì)像素深度。

? core: 核心功能模塊,定義了基本的數(shù)據(jù)結(jié)構(gòu),包括最重要的 Mat 類、XML 讀寫、OpenGL三維渲染等。

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

? flann: 用于在多維空間內(nèi)聚類及搜索的近似算法,做圖像檢索的開(kāi)發(fā)者對(duì)它不會(huì)陌生。

? highgui: 高級(jí)圖形界面,包括用戶界面、Qt。

? imgcodecs:對(duì)圖像文件編解碼、讀寫操作

? imgproc: 全稱為 Image Processing,即圖像處理,包括圖像濾波、集合圖像變換、直方圖計(jì)算、形狀描述子等。圖像處理是計(jì)算機(jī)視覺(jué)的重要工具。

? java:

? ml: 全稱為 Machine Learning,即機(jī)器學(xué)習(xí)。包括統(tǒng)計(jì)模型、K 最近鄰、支持向量機(jī)、決策樹(shù)、神經(jīng)網(wǎng)絡(luò)等經(jīng)典的機(jī)器學(xué)習(xí)算法。

? objdetect:物體檢測(cè)模塊,包括 Haar 分類器、SVM 檢測(cè)器及文字檢測(cè)。

? photo: 計(jì)算攝影學(xué),包括圖像修補(bǔ)、去噪、HDR 成像、非真實(shí)感渲染等。如果讀者想實(shí)現(xiàn) Photoshop 的高級(jí)功能,那么這個(gè)模塊必不可少。

? python:

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

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

? superres: 全稱為 Super Resolution,用于增強(qiáng)圖像的分辨率。

? ts:

? video: 視頻分析模塊,包括背景提取、光流跟蹤、卡爾曼濾波等,做視頻監(jiān)控的開(kāi)發(fā)者會(huì)經(jīng)常使用這個(gè)模塊。

? videoio:視頻編解碼、讀寫操作

? videostab: 全稱為Video Stabilization,用于解決相機(jī)移動(dòng)拍攝時(shí)視頻不夠穩(wěn)定的問(wèn)題。

? viz: 三維可視化模塊。可以認(rèn)為這個(gè)模塊實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的三維可視化引擎,有各種 UI 空間和鍵盤、鼠標(biāo)交互方式。底層實(shí)現(xiàn)基于 CTK 這個(gè)第三方庫(kù)。

CUDA模塊:

? cuda: CUDA- 加速的計(jì)算機(jī)視覺(jué)算法,包括數(shù)據(jù)結(jié)構(gòu) cuda::GpuMat、基于 cuda 的相機(jī)標(biāo)定及三維重建等。

? cudaarithm: CUDA- 加速的矩陣運(yùn)算模塊。

? cudabgsegm: CUDA- 加速的背景分割模塊,通常用于視頻監(jiān)控。

? cudacodec: CUDA- 加速的視頻編碼與解碼。

? cudafeatures2d: CUDA- 加速的特征檢測(cè)與描述模塊,與 features2d/ 模塊功能類似。

? cudafilters: CUDA- 加速的圖像濾波。

? cudaimgproc: CUDA- 加速的圖像處理算法,包含直方圖計(jì)算、霍夫變換等。

? cudaoptflow: CUDA- 加速的光流檢測(cè)算法。

? cudastereo: CUDA- 加速的立體視覺(jué)匹配算法。

? cudawarping: 實(shí)現(xiàn) CUDA- 加速的快速圖像變換,包括透視變換、旋轉(zhuǎn)、改變尺寸等。

samples文件夾:

? android: Android 平臺(tái)的范例。既有完全是 Java 的工程,也有完全是 C++ 的工程,也有更為常見(jiàn)的 Java 與 C++ 共存的工程。

? cpp: 由于 OpenCV 是一款 C++ 庫(kù),因此 C++ 的返利是最多的,后面將重點(diǎn)介紹。

? data: 示例程序要用到的數(shù)據(jù)

? directx: directx (d3d) 是微軟的私有三維圖像 API,這個(gè)文件夾中的范例覆蓋了 d3d9、d3d10、d3d11.

? gpu: 利用 cuda 加速的范例。

? java: OpenCV 3 官方支持 Java 語(yǔ)言綁定,因此這里演示如何使用 Java 版本的 OpenCV。

? python: OpenCV 3 官方支持 Python 語(yǔ)言綁定,因此這里演示使用 Python 2 版本的范例。

? tapi: tapi 是OpenCV 3 的一個(gè)新特性,使用 cv::UMat 替代cv::Mat,實(shí)現(xiàn) CPU 和 GPU 的運(yùn)算使用統(tǒng)一的接口,不再需要顯式地在 CPU 和 GPU 之間傳遞數(shù)據(jù),方便開(kāi)發(fā)人員。

? winrt: Windows RT 平臺(tái)的范例,開(kāi)發(fā)語(yǔ)言是微軟的 C++ “方言”.

cpp文件夾:

? tutorial_code/: opencv教程代碼

? 3calibration.cpp: 同時(shí)標(biāo)定三臺(tái)水平放置的相機(jī)。

? bagofwords_classification.cpp: 使用圖像檢測(cè)實(shí)現(xiàn)簡(jiǎn)易的圖像搜索功能。

? bgfg_gmg.cpp: 演示GMG 背景檢測(cè)算法的使用方式。

? bgfg_segm.cpp: 演示高斯混合背景檢測(cè)算法的使用方式。

? brief_match_test.cpp: 使用 BRIEF 特征值來(lái)匹配兩張圖像。

? build3dmodel.cpp: 演示如何使用基礎(chǔ)矩陣和特征值來(lái)創(chuàng)建三維模型。

? calibration.cpp: 完整的多用途標(biāo)定程序。

? calibration_artificial.cpp: 在程序中生成一個(gè)虛擬的相機(jī),并進(jìn)行標(biāo)定。

? camshiftdemo.cpp: 讀取實(shí)時(shí)的攝像頭數(shù)據(jù),并演示基于均值偏移算法的視頻跟蹤。

? chamfer.cpp: 使用Chamfer 算法匹配兩副邊緣圖像。

? cloning_demo.cpp: 命令行模式的圖像克隆。

? cloning_gui.cpp: 圖形界面交互的圖像克隆。

? connected_components.cpp: 查找并繪制圖像中的連通區(qū)域。

? contours2.cpp: 查找并繪制圖像中的輪廓。

? convexhull.cpp: 查找并繪制由點(diǎn)的集合組成的凸包。

? cout_mat.cpp: 使用cout 來(lái)輸出各種格式化的 Mat 對(duì)象。

? create_mask.cpp: 演示如何創(chuàng)建黑白掩碼圖像。

? dbt_face_detection.cpp: 基于檢測(cè)的人臉跟蹤代碼。

? delaunay2.cpp: 通過(guò)鼠標(biāo)交互式地生成 Delaunay 三角形。

? demhist.cpp: 演示直方圖的用法。

? descriptor_extractor_matcher.cpp: 演示 features2d 檢測(cè)框架的用法。

? detection_based_tracker_sample.cpp: 與 dbt_face_detection.cpp 類似。

? detector_descriptor_evaluation.cpp: 評(píng)估各種特征檢測(cè)器和描述子。

?detector_descriptor_matcher_evaluation.cpp:評(píng)估各種特征檢測(cè)器和匹配器。

? dft.cpp: 演示一幅圖像的離散傅里葉變換。

? distrans.cpp: 顯示邊緣圖像的距離變換值。

? drawing.cpp: 演示繪畫和文字顯示功能。

? edge.cpp: 演示Canny 邊緣檢測(cè)。

? em.cpp: 對(duì)隨機(jī)生成的數(shù)據(jù)點(diǎn)進(jìn)行 EM 聚類。

? fabmap_sample.cpp: 演示 FAB-MAP 圖像檢索算法。

? facerec_demo.cpp: 人臉識(shí)別。

? fback.cpp: 實(shí)時(shí)的Farneback 光流跟蹤。

? ffilldemo.cpp: 演示 floodFill() 像素填充算法。

? filestorage.cpp: 演示序列化到外部文件,如yml、xml等。

? fitellipse.cpp: 將輪廓點(diǎn)匹配到橢圓。

? freak_demo.cpp: 演示 FREAK 特征值的用法。

? gencolors.cpp: 演示 generateColors()。

? generic_descriptor_match.cpp: 基于 SURF 的兩幅圖像間的匹配。

? grabcut.cpp: 演示GrabCut 分割算法。

? houghcircles.cpp: 用霍夫算法檢測(cè)圓。

? houghlines.cpp: 用霍夫算法檢測(cè)直線。

? hybridtrackingsample.cpp: 混合跟蹤算法(Hybrid Tracker)的演示。

? image.cpp: 來(lái)回轉(zhuǎn)換cv::Mat 和 IplImage。

? image_alignment.cpp: 演示 findTransformECC() 函數(shù)。

? image_sequence.cpp: 使用 VideoCapture 對(duì)象讀取序列幀。

? imagelist_creator.cpp: 創(chuàng)建圖像列表到 xml 文件。

? inpaint.cpp: 使用鼠標(biāo)交互地進(jìn)行圖像修補(bǔ)。

? intelperc_capture.cpp: Intel 感知計(jì)算設(shè)備相關(guān)的函數(shù)。

? kalman.cpp: 使用卡爾曼濾波進(jìn)行二維跟蹤。

? kmeans.cpp: Kmeans 聚類算法的演示。

? laplace.cpp: 拉普拉斯邊緣檢測(cè)。

? latentsvm_multidetect.cpp: latentSVM 檢測(cè)器。

? letter_recog.cpp: 字母識(shí)別。

? linemod.cpp: 基于OpenNI 的體感設(shè)備應(yīng)用。

? lkdemo.cpp: 演示Lukas-Kanade光流法。

? logpolar_bsm.cpp: 演示 LogPolar 盲點(diǎn)模型。

? lsd_lines.cpp: LSD 線段檢測(cè)。

? matcher_simple.cpp: SURF 特征檢測(cè)。

? matching_to_many_images.cpp: 一對(duì)多的特征檢測(cè)。

? meanshift_segmentation.cpp: 演示基于均值漂移的色彩分割函數(shù)——meanShiftSegmentation()

? minarea.cpp: 尋找最小包圍盒、包圍圓

? morphology2.cpp: 形態(tài)學(xué)圖像處理

? npr_demo.cpp: 演示各種非真實(shí)感渲染效果

? opencv_version.cpp: 輸出 OpenCV 庫(kù)的版本號(hào)

? openni_capture.cpp: 演示 OpenNI 相關(guān)的體感設(shè)備

? pca.cpp: 基于 PCA 的人臉識(shí)別

? peopledetect.cpp: 基于 cascade 或 hog 進(jìn)行物體(人)檢測(cè)

? phase_corr.cpp: 演示 phaseCorrelate() 函數(shù)

? points_classifier.cpp: 演示各種機(jī)器學(xué)習(xí)算法

? segment_objects.cpp: 實(shí)時(shí)地在視頻或相機(jī)畫面中檢測(cè)前景物體

? select3dobj.cpp:在一個(gè)有標(biāo)定棋盤的桌子上,使用3D Box標(biāo)記一個(gè)對(duì)象,在所有序列幀中,只要照相機(jī)可以看到棋盤,就可以跟蹤對(duì)象,并用Box分割對(duì)象

? shape_example.cpp: 比較并檢索形狀

? shape_transformation.cpp: 用 SURF 特征值檢測(cè)形狀并進(jìn)行變換

? squares.cpp: 檢測(cè)圖像中的方塊形狀。

? starter_imagelist.cpp: 加載一個(gè)ImageList(由imagelist_creator.cpp產(chǎn)生)

? stereo_calib.cpp: 雙目視覺(jué)的標(biāo)定

? stereo_match.cpp: 計(jì)算左右視覺(jué)的圖像的差異,生成點(diǎn)云文件。

? stitching.cpp: 演示圖像拼接算法。

? stitching_detailed.cpp: 演示更多參數(shù)的圖像拼接算法。

? train_HOG.cpp: 訓(xùn)練 HOG 分類器

? tree_engine.cpp: 演示如何使用不同的決策樹(shù)和森林包括Boosting和隨機(jī)樹(shù)

? videostab.cpp: 演示 videostab 中各個(gè)參數(shù)的用法。

? watershed.cpp: 演示著名的分水嶺圖像分割算法。
————————————————
原文鏈接:https://blog.csdn.net/u011574296/article/details/69421922

總結(jié)

以上是生活随笔為你收集整理的OpenCV3源代码目录解析(算法模块解析 和 示例目录解析)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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