字符分割时对粘连字符的处理方法

方法1:opening_rectangle1 (Solid, Cut, 1, 7),使用该方法进行分割,1是宽度,7是高度。Halcon范例bottle.hdev: Segment and read numbers on a beer bottle

方法2:使用partition_rectangle或partition_dynamic进行等间隔的字符分割,要求字符的间隔尽量保持一致

partition_dynamic(Region: Partitioned: Distance, Percent : )     函数作用:

在水平位置上以参数Distance的宽度分割区域,分割得到的位置是相对小的垂直部分。分割原理如下:

1、初始的分割位置是在水平方向上平均分配,也就是结果部分拥有相同的宽度。

2、分割后的块数N是由参数Distance决定的,而Distance是由输入区域的宽度除以N决定的。

3、分割后的等份区域进一步还计算区域间的最小垂直程度Percent,最后分割的位置与初始的最大浮动差是Distance*Percent*0.01

 

注:

 

参数列表:

Region(in):输入的被分割区域

Partitioned(out):分割的区域

Distance(in):分割区域的大概宽度

Percent(in):分割位置的最大分数偏移

 

可能前置项

threshold, connection

 

可能替代项

partition_rectangle

方法3:滴水分割算法,该算法还没有研究

 

将这个字符进行分割开的代码思路

read_image (Image5, 'C:/Users/yuexinzheng/Desktop/5.png')
threshold (Image5, Region1, 0, 123)
fill_up (Region1, RegionFillUp1)
closing_circle (RegionFillUp1, RegionClosing, 5.5)
closing_rectangle1 (RegionClosing, RegionClosing1, 10, 19)
fill_up (RegionClosing1, RegionFillUp2)
*主要是利用opening_rectangle1()函数,将图像部分进行膨胀,使接线明显且加大
opening_rectangle1 (RegionFillUp2, RegionOpening1, 2, 44)
*取分割开的图与原Region的重叠区域
intersection (Region1, RegionOpening1, RegionIntersection1)

方法2的代码实现

read_image (Image5, 'C:/Users/yuexinzheng/Desktop/5.png')
char_threshold (Image5,Image5 , Characters, 2, 95, Threshold)
smallest_rectangle1 (Characters, Row1, Column1, Row2, Column2)
region_features (Characters, 'width', Value)
partition_dynamic (Characters, Partitioned, Value/2, 90)

分割效果图

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值