生活随笔
收集整理的這篇文章主要介紹了
Halcon实战记录之三《模板制作--两点定位》
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目的:計算被檢測物體的位置和角度偏移
內容:
*創(chuàng)建模板
read_image (Image1, 'D:/Program Files/MVTec/HALCON-12.0/examples/images/bottles/bottle_crate_01.png')
dev_set_draw ('margin')
*創(chuàng)建第一個模板
gen_rectangle1 (mrect1, 83.3297, 63.4186, 142.725, 144.029)
reduce_domain (Image1, mrect1, Model1)
create_shape_model (Model1, 'auto', -3.14, 6.29, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID1)
*創(chuàng)建第二個模板
gen_rectangle1 (mrect2, 381.057, 79.7036, 438.948, 144.029)
reduce_domain (Image1, mrect2, Model2)
create_shape_model (Model2, 'auto', -3.14, 6.29, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID2)find_shape_model (Model1, ModelID1, -3.14, 6.29, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle1, Score1)
find_shape_model (Model2, ModelID2, -3.14, 6.29, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row2, Column2, Angle2, Score2)
dev_display (Image1)
gen_cross_contour_xld (Cross1, Row1, Column1, 20, Angle1)
gen_cross_contour_xld (Cross2, Row2, Column2, 20, Angle2)
dev_display (Cross1)
dev_display (Cross1)gen_rectangle2 (TEST_ROI, 100.246, 416.396, rad(-0), 40.7125, 41.3)
dev_display (TEST_ROI)*匹配
read_image (Image2, 'D:/Program Files/MVTec/HALCON-12.0/examples/images/bottles/bottle_crate_04.png')
reduce_domain (Image2, mrect1, ImageFor1)
reduce_domain (Image2, mrect2, ImageFor2)find_shape_model (ImageFor1, ModelID1, -3.14, 6.29, 0.5, 1, 0.5, 'least_squares', 0, 0.9, RowFor1, ColumnFor1, AngleFor1, ScoreFor1)
gen_cross_contour_xld (CrossFor1, RowFor1, ColumnFor1, 20, AngleFor1)
dev_display (CrossFor1)find_shape_model (ImageFor2, ModelID2, -3.14, 6.29, 0.5, 1, 0.5, 'least_squares', 0, 0.9, RowFor2, ColumnFor2, AngleFor2, ScoreFor2)
gen_cross_contour_xld (CrossFor2, RowFor2, ColumnFor2, 20, AngleFor2)
dev_display (CrossFor2)angle_ll (Row1, Column1, Row2, Column2, RowFor1, ColumnFor1, RowFor2, ColumnFor2, Angle)
vector_angle_to_rigid (Row1, Column1, 0, RowFor1, ColumnFor1, Angle, HomMat2D)
affine_trans_region (TEST_ROI, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
1、其中Angle為匹配圖和模板的相對旋轉角度,可以以此獲取匹配圖中感興趣ROI。
2、可以通過模板匹配的方法獲取位置偏移量。
模板圖:
匹配圖:
備注:
1、保存模板的算子:write_shape_model( : : ModelID, FileName : )
2、加載模板的算子:read_shape_model( : : FileName : ModelID)
3、匹配后的score需要作出判斷,避免某些情況下匹配失敗導致數(shù)據(jù)不對,程序奔潰。
4、在創(chuàng)建模板的時候,可以自己先對該區(qū)域做閾值處理,獲取更明晰的輪廓,再創(chuàng)建模板。
總結
以上是生活随笔為你收集整理的Halcon实战记录之三《模板制作--两点定位》的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。