其中一部分的源碼解讀已寫成博客,請查閱我的其他博客《OpenCV自帶案例源碼解讀系列》
自帶案例有兩部分:EXAMPLE和TUTORIAL,即案例和專題
案例首先用cmake編譯,然后在vs中運行即可。https://blog.csdn.net/webzhuce/article/details/80473793
具體的EXAMPLE如下:(CPP文件夾中)
• 3calibration.cpp: 同時標定三台水平放置的相機。
• bagofwords_classification.cpp: 使用圖像檢測實現簡易的圖像搜索功能。
• bgfg_gmg.cpp: 演示GMG 背景檢測算法的使用方式。
• bgfg_segm.cpp: 演示高斯混合背景檢測算法的使用方式。
• brief_match_test.cpp: 使用 BRIEF 特征值來匹配兩張圖像。
• build3dmodel.cpp: 演示如何使用基礎矩陣和特征值來創建三維模型。
• calibration.cpp: 完整的多用途標定程序。
• calibration_artificial.cpp: 在程序中生成一個虛擬的相機,並進行標定。
• camshiftdemo.cpp: 讀取實時的攝像頭數據,並演示基於均值偏移算法的視頻跟蹤。
• chamfer.cpp: 使用Chamfer 算法匹配兩副邊緣圖像。
• cloning_demo.cpp: 命令行模式的圖像克隆。
• cloning_gui.cpp: 圖形界面交互的圖像克隆。
• connected_components.cpp: 查找並繪制圖像中的連通區域。
• contours2.cpp: 查找並繪制圖像中的輪廓。
• convexhull.cpp: 查找並繪制由點的集合組成的凸包。
• cout_mat.cpp: 使用cout 來輸出各種格式化的 Mat 對象。
• create_mask.cpp: 演示如何創建黑白掩碼圖像。
• dbt_face_detection.cpp: 基於檢測的人臉跟蹤代碼。
• delaunay2.cpp: 通過鼠標交互式地生成 Delaunay 三角形。
• demhist.cpp: 演示直方圖的用法。
• descriptor_extractor_matcher.cpp: 演示 features2d 檢測框架的用法。
• detection_based_tracker_sample.cpp: 與 dbt_face_detection.cpp 類似。
• detector_descriptor_evaluation.cpp: 評估各種特征檢測器和描述子。
• detector_descriptor_matcher_evaluation.cpp:評估各種特征檢測器和匹配器。
• dft.cpp: 演示一幅圖像的離散傅里葉變換。
• distrans.cpp: 顯示邊緣圖像的距離變換值。
• drawing.cpp: 演示繪畫和文字顯示功能。
• edge.cpp: 演示Canny 邊緣檢測。
• em.cpp: 對隨機生成的數據點進行 EM 聚類。
• fabmap_sample.cpp: 演示 FAB-MAP 圖像檢索算法。
• facerec_demo.cpp: 人臉識別。
• fback.cpp: 實時的Farneback 光流跟蹤。
• ffilldemo.cpp: 演示 floodFill() 像素填充算法。
• filestorage.cpp: 演示序列化到外部文件,如yml、xml等。
• fitellipse.cpp: 將輪廓點匹配到橢圓。
• freak_demo.cpp: 演示 FREAK 特征值的用法。
• gencolors.cpp: 演示 generateColors()。
• generic_descriptor_match.cpp: 基於 SURF 的兩幅圖像間的匹配。
• grabcut.cpp: 演示GrabCut 分割算法。
• houghcircles.cpp: 用霍夫算法檢測圓。
• houghlines.cpp: 用霍夫算法檢測直線。
• hybridtrackingsample.cpp: 混合跟蹤算法(Hybrid Tracker)的演示。
• image.cpp: 來回轉換cv::Mat 和 IplImage。
• image_alignment.cpp: 演示 findTransformECC() 函數。
• image_sequence.cpp: 使用 VideoCapture 對象讀取序列幀。
• imagelist_creator.cpp: 創建圖像列表到 xml 文件。
• inpaint.cpp: 使用鼠標交互地進行圖像修補。
• intelperc_capture.cpp: Intel 感知計算設備相關的函數。
• kalman.cpp: 使用卡爾曼濾波進行二維跟蹤。
• kmeans.cpp: Kmeans 聚類算法的演示。
• laplace.cpp: 拉普拉斯邊緣檢測。
• latentsvm_multidetect.cpp: latentSVM 檢測器。
• letter_recog.cpp: 字母識別。
• linemod.cpp: 基於OpenNI 的體感設備應用。
• lkdemo.cpp: 演示Lukas-Kanade光流法。
• logpolar_bsm.cpp: 演示 LogPolar 盲點模型。
• lsd_lines.cpp: LSD 線段檢測。
• matcher_simple.cpp: SURF 特征檢測。
• matching_to_many_images.cpp: 一對多的特征檢測。
• meanshift_segmentation.cpp: 演示基於均值漂移的色彩分割函數——meanShiftSegmentation()
• minarea.cpp: 尋找最小包圍盒、包圍圓
• morphology2.cpp: 形態學圖像處理
• npr_demo.cpp: 演示各種非真實感渲染效果
• opencv_version.cpp: 輸出 OpenCV 庫的版本號
• openni_capture.cpp: 演示 OpenNI 相關的體感設備
• pca.cpp: 基於 PCA 的人臉識別
• peopledetect.cpp: 基於 cascade 或 hog 進行物體(人)檢測
• phase_corr.cpp: 演示 phaseCorrelate() 函數
• points_classifier.cpp: 演示各種機器學習算法
• segment_objects.cpp: 實時地在視頻或相機畫面中檢測前景物體
• select3dobj.cpp:在一個有標定棋盤的桌子上,使用3D Box標記一個對象,在所有序列幀中,只要照相機可以看到棋盤,就可以跟蹤對象,並用Box分割對象
• shape_example.cpp: 比較並檢索形狀
• shape_transformation.cpp: 用 SURF 特征值檢測形狀並進行變換
• squares.cpp: 檢測圖像中的方塊形狀。
• starter_imagelist.cpp: 加載一個ImageList(由imagelist_creator.cpp產生)
• stereo_calib.cpp: 雙目視覺的標定
• stereo_match.cpp: 計算左右視覺的圖像的差異,生成點雲文件。
• stitching.cpp: 演示圖像拼接算法。
• stitching_detailed.cpp: 演示更多參數的圖像拼接算法。
• train_HOG.cpp: 訓練 HOG 分類器
• tree_engine.cpp: 演示如何使用不同的決策樹和森林包括Boosting和隨機樹
• videostab.cpp: 演示 videostab 中各個參數的用法。
• watershed.cpp: 演示著名的分水嶺圖像分割算法。