对于一些风化严重的车牌,以及铆钉过大,这一类车牌的铆钉与字体连为一体,还有一些甚至变形了的,智能识别起来非常不便。以下演示一个小技巧用于祛除铆钉。
演示用图(直奔主题征对性的绘制了一张简陋的图):
halcon代码:
*扫描法筛选想要的区域
read_image (Image, 'D:/Halcon-WorkSpaces/Test/Image/test4.png')
rgb1_to_gray (Image, GrayImage)
get_image_size (Image, Width, Height)
*确定首次扫描矩形区域的中心点
RR:=0
CC:=Height/2
*确定扫描矩形区域的宽度
scanSize:=1
*计算扫描次数,取整
scanCount:=int(Height/scanSize)
gen_empty_obj (EmptyObject)
dev_set_draw ('margin')
*开始扫描
for Index := 1 to scanCount by 1
*创建扫描矩形
gen_rectangle2 (Rectangle, RR, CC, 0, Width, scanSize)
reduce_domain (GrayImage, Rectangle, ImageReduced)
*阈值分割处理
threshold (ImageReduced, Regions, 0, 0)
connection (Regions, ConnectedRegions)
count_obj (ConnectedRegions, Number)
*扫描矩形区域内若存在2个以上对象视为感兴趣区域
if (Number>2)
*连接这些区域
union2 (Rectangle, EmptyObject, EmptyObject)
endif
*扫描矩形区域平移增量
RR:=RR+scanSize
endfor
reduce_domain (Image, EmptyObject, ImageReduced1)
dev_clear_window ()
dev_display (ImageReduced1)
执行结果:
xxx