此代码只是简单的实现了框选物的检测追踪。基本逻辑是基于相关性的模板匹配。如果有人脸识别库的话,可以进行人脸识别。以后会完善代码实现实时的目标追踪。
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