少有人走的路

勇哥的工业自动化技术网站

halcon中不使用模板进行ROI跟随

如果不使用模板来进行ROI更随,该如何做到呢?

勇哥先把图片放上来:

image.png

我想所有人都会想到用形态学算法,阈值勾出电池本体,然后取得电池角度与位置信息,就可以ROI跟随了。

难点在哪里呢?

我们的目的是:“取电池几何中心的位置与电池的方向。”

那么电池的几何中心可以是电池整个外接最小矩形的中心,这个比较容易办到的。

但是方向呢?

我们可以取电矩形本体的外接矩形的角度做为方向,但是这一点因为极耳的干扰,我们取到本体的矩形并不容易做到。

也许有人认为取上图所示电池的顶边就可以确定方向了,但是客户的电池因为是软包的,你永远不要相信它的边会是规则的。靠它确定方向会非常不靠谱。

有一种办法是用电池本体矩形的中心到极耳那块的矩形区域的中心做为方向。

勇哥所指的两部分区域如下图所示。


image.png  image.png


最终的方向如下图:

image.png


有了中心x,y坐标与电池的方向信息,就可以进行ROI跟随了。

我们就实现了不用模板进行ROI跟随。


read_image (Image, 'C:/Users/hackpig/Desktop/8.bmp')
gen_rectangle1 (Rectangle1, 375.145, 102.852, 1725.71, 2209.26)

read_image (Image, 'C:/Users/hackpig/Desktop/8.bmp')

reduce_domain (Image, Rectangle1, Image)
set_draw (200000, 'margin') 
threshold (Image, Region, 0, 180)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1000, 99999999)
dilation_circle (SelectedRegions, RegionDilation, 5)
fill_up (RegionDilation, RegionFillUp)

smallest_rectangle2 (RegionFillUp, Row3, Column3, Phi, Length1, Length2)
gen_rectangle2 (Rectangle, Row3, Column3, Phi, Length1, Length2)
area_center (Rectangle, Area1, Row1, Column1)

difference (Rectangle, RegionFillUp, RegionDifference)
area_center (RegionDifference, Area, Row, Column)

angle_lx (Row1, Column1, Row, Column, Angle)
disp_arrow (200000, Row1, Column1, Row, Column, 5)
*stop()
wait_seconds (1)



--------------------- 

作者:hackpig
来源:
www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!



发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年11月    »
12
3456789
10111213141516
17181920212223
24252627282930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864