halcon 模板匹配

*開啓異常處理
dev_set_check('give_error')
*錯誤代碼,非0表示異常,0表示ok
ErrorCode:=0
*設置填充模式
dev_set_draw('margin')
* Image Acquisition 01: Code generated by Image Acquisition 01
open_framegrabber ('GigEVision2', 0, 0, 0, 0, 0, 0, 'progressive', -1, 'default', -1, 'false', 'default', 'GQ127000001', 0, -1, AcqHandle)
grab_image_start (AcqHandle, -1)
grab_image_async (Image, AcqHandle, -1)
* Image Acquisition 01: Do something
*繪製模板區域
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width/10, Height/10, 'black', WindowHandle)
dev_display (Image)
draw_circle (WindowHandle, Row, Column, Radius)
gen_circle (Circle, Row, Column, Radius)
area_center (Circle, Area, Row1, Column1)
*獲取ROI邊框
boundary (Circle, RegionBorder, 'inner')
*threshold(Image,ROI_0,0,200)
*減少定義域
reduce_domain(Image, RegionBorder, ImageReduced1)

inspect_shape_model (ImageReduced1, ModelImages, ModelRegions, 4, 30)
*創建模板
create_shape_model (ImageReduced1, 'auto', 0, rad(360), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID1)
*保存模板
write_shape_model (ModelID1, 'C:/Users/Administrator/Desktop/modle1.shm')

*獲取模板輪廓
get_shape_model_contours(ModelContours, ModelID1, 1)


*看看生成的輪廓
dev_set_color ('red')
dev_set_line_width (2)
vector_angle_to_rigid (0, 0, 0, Row1, Column1, 0, HomMat2D)
affine_trans_contour_xld (ModelContours, ContoursAffinTrans, HomMat2D)

stop()

clear_shape_model(ModelID1)

close_framegrabber (AcqHandle)


*讀取模板
read_shape_model('C:/Users/Administrator/Desktop/modle1.shm',ModelID2)
* Image Acquisition 02: Code generated by Image Acquisition 02
open_framegrabber ('GigEVision2', 0, 0, 0, 0, 0, 0, 'progressive', -1, 'default', -1, 'false', 'default', 'GQ127000001', 0, -1, AcqHandle)
grab_image_start (AcqHandle, -1)
while (true)
    grab_image_async (Image, AcqHandle, -1)
    * Image Acquisition 02: Do something
    *模板匹配
find_shape_model (Image, ModelID2, 0, rad(360), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score1)


endwhile
close_framegrabber (AcqHandle)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章