此代碼只是簡單的實現了框選物的檢測追蹤。基本邏輯是基於相關性的模板匹配。如果有人臉識別庫的話,可以進行人臉識別。以后會完善代碼實現實時的目標追蹤。
1 *此文件夾含有多張相似的實拍圖,用於檢測算法的模板追蹤 2 list_files ('C:/Users/zx80-165/Desktop/模板追蹤圖', 'files', ImageFiles) 3 l:=|ImageFiles| 4 read_image (Image, 'C:/Users/zx80-165/Desktop/1212.bmp') 5 get_image_size (Image, Width, Height) 6 dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle1) 7 dev_display (Image) 8 disp_message (WindowHandle1, '請創建模板並以鼠標右擊結束', 'window', -1, -1, 'white', 'false') 9 *鼠標左鍵框選目標模板,右鍵確定 10 draw_rectangle1 (WindowHandle1, Row1, Column1, Row2, Column2) 11 gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2) 12 area_center (Rectangle, Area, Row, Column) 13 orientation_region (Rectangle, Phi) 14 reduce_domain (Image, Rectangle, ImageReduced) 15 create_ncc_model (ImageReduced, 'auto', -0.39, 0.79, 'auto', 'use_polarity', ModelID) 16 dev_set_draw ('margin') 17 dev_set_line_width (1) 18 *循環圖片尋找相似的模板 19 for i := 1 to l-1 by 1 20 21 read_image (Image1, ImageFiles[i]) 22 find_ncc_model (Image1, ModelID, -0.39, 0.78, 0.8, 1, 0.5, 'true', 0, Row3, Column3, Angle, Score) 23 24 len:=|Row3| 25 if(len!=0) 26 vector_angle_to_rigid (Row, Column, Phi+rad(90), Row3, Column3, Angle, HomMat2D) 27 affine_trans_region (Rectangle, RegionAffineTrans, HomMat2D, 'nearest_neighbor') 28 dev_display (Image1) 29 dev_display (RegionAffineTrans) 30 else 31 32 dev_display (Image1) 33 disp_message (WindowHandle1, '沒有識別到', 'window', -1, -1, 'white', 'false') 34 35 endif 36 37 endfor