1. 程式人生 > >OpenCV 自帶例程總結

OpenCV 自帶例程總結

http://lv.xiao.yu.blog.163.com/blog/static/5419127320138191291534/




opencv 2.4.4版本共100個自帶例子。


parter 1:
No1. adaptiveskindetector.cpp
利用HSV空間的色調資訊的面板檢測,背景不能有太多與膚色相似的顏色。效果不是特別好。
No2. bagofwords_classification.cpp
好大一串……目前還看不懂。
No3. bgfg_codebook.cpp
前後背景分離。開啟攝像頭或讀取視訊。
No4. bgfg_gmg.cpp
攝像頭捕捉,根據運動進行前後背景分離。
No5. bgfg_segm.cpp
高斯處理視訊。跟蹤運動做前背景分割。BackgroundSubtractorMOG2類。
No6. blobtrack_sample.cpp
視訊跟蹤。跟蹤視訊中的運動物體,用綠色線框出。
No7. brief_match_test.cpp 
利用brief描述運算元匹配二維影象特徵點。line118出錯.???
No8. build3dmodel.cpp
建立三維模型。根據給出的檢測器對原始進行建模。
No9. calibration.cpp 3calibration.cpp
相機外定標。根據自帶的函式提取角點後定標,效果很不好。
No10. calibration_artificial 
根據角點自動校準攝像。初始化後尋找角點再用calibrateCamera校準,有findChessboardCorners估計效果不


怎麼好。
No11. chamfer.cpp
影象匹配。把影象二值後在目標影象中尋找模板影象。主要呼叫chamerMatching函式。
No12. contours.c
輪廓查詢與獲取。cvFindContours一個函式搞定。
No13. convert_cascade.c
從檔案中裝載訓練好的級聯分類器或者從OpenCV中嵌入的分類器資料庫中匯入 然後另存為一個檔案。
No14. convexhull.cpp
凸包。產生隨機點後計算凸包。
No15. cout_mat.cpp
opencv中矩陣的輸出。
No16. delaunay.c delaunay2.cpp
根據隨機點進行Delaunay三角測量找到邊,結束時計算Voronoi圖表的細胞結構。
No17. demhist.cpp
直方圖均衡化來調節影象的亮度和對比度,輸出黑白影象。
No18. descriptor_extractor_matcher.cpp
7-8個引數。SIFT匹配。
No19. detector_descriptor_evaluation.cpp
計算檢測運算元。各種Dataset。
No20. detector_descriptor_matcher_evaluation.cpp
計算檢測運算元匹配。也是各種Dataset。
No21. dft.cpp
對影象進行離散Fourier變換。數學變換。
No22. distrans.cpp
距離變換。計算輸入影象所有非零元素和其最近的零元素的距離。
No23. drawing.cpp
簡單的畫點、線、文字等。不解釋。
No24. edge.cpp
邊緣檢測。通過滑動條調節閾值,利用Canny檢測影象邊緣後顯示,很簡單的一個程式碼。
No25. em.cpp
em聚類。
No26. fabmap_sample
fab-mat匹配。從訓練資料中建立Chow-Liu樹。
No27. facedetect.cpp smiledetect.cpp
人臉檢測。根據已訓練好的分類器對人臉影象進行檢測,用不同顏色的圓形框或矩形框標記出檢測出的五官。
No28. facerec_demo.cpp
人臉識別。
No29. fback.cpp fback_c.c
計算視訊的光流。預設開啟攝像頭,有些卡,速度慢。
No30. filestorage.cpp
Mat矩陣儲存,讀寫xml/yml檔案。
No31. find_obj.cpp
有關Surf演算法的示例。利用匹配在目標影象中尋找樣本影象中的物體。
No32. find_obj_calonder.cpp
通過訓練分類樹檢測目標物體。需要訓練影象。
No33. find_obj_ferns.cpp
同樣是目標檢測。基於隨機蕨叢的快速識別關鍵點。
No34. fitellipse.cpp 
橢圓擬合,查詢影象輪廓圖形。findContours很有用。總體效果不理想。
No35. freak_demo.cpp
利用特徵點進行影象匹配。特徵點描述包括A. Alahi, R. Ortiz, and P. Vandergheynst. FREAK: Fast


Retina Keypoint.
No36. gencolors.cpp
輸入顏色數量,產生著色條帶狀影象。色頻寬20。
No37. generic_descriptor_match.cpp
SURF影象匹配。輸入引數包括兩幅影象和引數資料。
No38. houghlines.cpp houghcircles.cpp
利用Hough變換提取影象中的直線或圓。效果一般。Canny很重要。
No39. image.cpp
基本的影象和視訊讀取,影象加噪和平滑處理。
No40. kalman.cpp
Kalman濾波,先建立運動模型和觀察模型。對繞圓周運動的一維點跟蹤,演算法結果顯示了估計點和實際點的連線。
No41. kmeans.cpp
聚類分析。在平面上產生隨機點後用K-means演算法作聚類迭代,由於聚類中心也是隨機產生的,可知效果很不好。
No42. laplace.cpp
也是邊緣檢測。由滑動條調整閾值,先對影象作濾波(高斯,均值,中值),後Laplace檢測邊緣。引數sigma=3時效果最好。
No43. latentsvmdetect.cpp
用latentSVM檢測目標。
No44. letter_recog.cpp
演示訓練各種不同的分類器,使用uci的字元庫資料集。
No45. logpolar_bsm.cpp
座標的相互轉化。
No46. matcher_simple.cpp
SURF影象匹配。引數少,效果和generic_descriptor_match.cpp相似。
No47. matching_to_many_images.cpp
多幅影象的匹配。強大的SURF演算法。
No48. meanshift_segmentation.cpp
meanshift影象分割。三個引數spatialRad、colorRad和maxPyrLevel可調。
No49. minarea.cpp
產生隨機點後計算包含所有點的面積最小的圓和矩形。純數學問題。
No50. morphology.c morphology2.cpp
形態學基本運算,包括開/閉運算,膨脹/腐蝕運算。
No51. motempl.c
運動跟蹤。
No52. mser_sample.cpp
MSER方法區域提取影象輪廓。使用顏色距離閾值的基於MSER方法的最大穩定顏色區域檢測子(Maximally


Stable Colour Regions,MSCR)。
No53. mushroom.cpp
演示建立決策分類樹訓練 使用mushroom資料
No54. one_way_sample.cpp
基於主成分分析的特徵點匹配問題。執行時間好長……
No55. opencv_version.cpp
顯示opencv版本。簡單的幾行程式碼。
No56. OpenEXRimages_HighDynamicRange_Retina_toneMapping.cpp


OpenEXRimages_HighDynamicRange_Retina_toneMapping_video.cpp
不清楚。
No57. openni_capture.cpp
開放式的自然互動視訊捕捉。Depth generator。
No58. pca.cpp
主成份分析演算法。重建。
No59. peopledetect.cpp
HOG (Histogram-of-Oriented Gradients)行人或人體檢測,使用的是hog特徵和svm。 
No60. phase_corr.cpp
基於相位的相關影象運動方位跟蹤程式。
No61. points_classifier.cpp
點分類。滑鼠點選給定點和類。
No62. polar_transform.c
線性座標和極座標相互轉換。可以從攝像頭捕捉影象。
No63. pyramid_segmentation.c
金字塔影象分割。
No64. retinaDemo.cpp
Retina特徵點檢測。
No65. rgbdodometry.cpp
視覺里程計演算法。為了估計剛體變換,試圖找到翹曲,即最大化之間連續兩個RGBD的幀不同的影象尺度。
No66. segment_objects.cpp
視訊跟蹤分割運動中的物體。
No67. select3dobj.cpp
收集資料集物件和分割遮罩,顯示瞭如何使用相機的校準模式。計算該單對應性校準圖案上的平面。還顯示


grabCut分割等。
No68. simpleflow_demo.cpp
一種光流演算法。
No69. squares.cpp
尋找矩形。
No70. starter_imagelist.cpp 
根據影象列表檔案yaml讀取並顯示影象。
No71. starter_video.cpp
開啟視訊影象選擇畫面儲存為圖片。
No72. stereo_calib.cpp
攝像機立體校準。
No73. stereo_match.cpp 
立體匹配。 
No74. stitching.cpp stitching_detailed.cpp
影象拼接。涉及到特徵點的提取、特徵點匹配、影象融合等等。Stitcher類。
No75. tvl1_optical_flow.cpp
光流法視訊跟蹤。
No76. tree_engine.cpp
演示使用不同的決策樹 CvDTree dtree;決策樹 CvBoost boost;Boosted tree classifier監督學習樹


CvRTrees rtrees;隨機樹 CvERTrees ertrees;完全隨機樹。
No77. video_dmtx.cpp
視訊截圖。
No78. video_homography.cpp
使用features2d的快速角點檢測。 
No79. videostab.cpp
穩定視訊。
No80. watershed 
做分水嶺影象分割。


parter 2:
No1. camshiftdemo.cpp
彩色目標跟蹤。根據滑鼠點選一個區域的色度光譜來跟蹤視訊目標。
No2. connected_components.cpp
連通區域。findContours+drawContours。
No3. contours2.cpp
先畫一張線條圖後檢測輪廓。引數可調。
No4. ffilldemo.cpp
漫水填充。根據滑鼠選取的點搜尋影象中與之顏色相近的點,用不同顏色標註。
No5. grabcut.cpp
影象分割,滑鼠選取矩形框,摳出前景,分離背景。效果還挺不錯的。
No6. hybridtrackingsample.cpp
混合跟蹤。除錯時HybridTracker那出錯了,不懂。
No7. imagelst_creator.cpp
把影象名稱列表寫成yaml或xml格式。
No8. inpaint.cpp
數字影象修復程式,基於紋理合成。先在影象上隨便畫,按"i"鍵後顯示修復的影象。
No9. linemod.cpp
line196出錯.???
No10. lkdemo.cpp
點跟蹤。改進的Lucas-Kanade光流演算法,檢測視訊運動目標。滑鼠點選目標點,視訊跟蹤。




parter3:
No1. detection_based_tracker_sample.cpp
UNIX或ANDROID平臺上使用的例子。基於檢測的跟蹤。