Halcon學習:簡單目標檢測(人臉識別)


此代碼只是簡單的實現了框選物的檢測追蹤。基本邏輯是基於相關性的模板匹配。如果有人臉識別庫的話,可以進行人臉識別。以后會完善代碼實現實時的目標追蹤。

 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

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM