基于halcon的车牌的图像识别_整理

基于halcon的车牌的图像识别

其实车牌图像识别从技术上已经比较成熟,从理论上来说无外乎就是如下几个步骤: 灰度化:实际就是对原始车牌图片进行预处理,把彩色图片转化为黑白图片,然后对不符合指定阙值范围的灰度值进行过滤。

车牌定位:这是技术难点之一,根据我的经验,定位车牌位置对于车牌的准确识别而言实际上就成功了60%。很多车牌识别的产品都对车牌的定位预留了很多配置参数,例如截取原始图片的位置参数、车牌的长宽比例、大小等等,这些都是为了提高车牌定位的准确率。 字符分割:车牌定位后是字符分割,本人使用的识别过程是:对定位的车牌位置进行降噪处理=>边界模糊=>从右向左找出前6个封闭的图形=>剩余的封闭图形综合为一个图形进行汉字的识别。

字符识别:就是根据字符模板进行模板匹配,因此需预先建立相应的字符模板。基于图像进行字符识别也可配置很多参数来大大提高字符的识别率。例如限定车牌头的字符,车牌各位字符的识别优先级等等。

以下通过大车黄牌号码为例,看看车牌识别的效果。 1、原始图片如下图所示:

2、限定车牌识别区域,本例中将裁剪掉上下左右各10%的区域:

get_image_pointer1 (FullImage, Pointer, Type, Width, Height)

gen_rectangle1 (Rectangle, Height*0.1, Width*0.1, Height*0.9, Width*0.9) reduce_domain (FullImage, Rectangle, Image)

看看裁剪结果:

3、把选中的区域灰度化,方便后续处理: decompose3 (Image, Red, Green, Blue)

trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, 'hsv')

灰度化后的效果图:

4、灰度阙值过滤,本例中只选中灰度值在100至255之间的区域,可根据实际情况进行相应的设置,然后进行降噪处理:

threshold (Saturation, HighSaturation, 100, 255)

remove_noise_region (HighSaturation, OutputRegion, 'n_48')

过滤降噪后的效果,和实际的位置很接近了吧!

5、根据预定义的车牌长宽比例等查找符合特定特征的区域:

代码

connection (OutputRegion, ConnectedRegions1)

closing_rectangle1 (ConnectedRegions1, RegionClosing1, 10, 10)

select_shape (RegionClosing1, ASelectedRegions, 'area', 'and', 3000, 9000) select_shape (ASelectedRegions, HSelectedRegions, 'height', 'and', 30, 90) select_shape (HSelectedRegions, SelectedRegions, 'width', 'and', 60, 180)

效果图如下,分割成了多个区域哈:

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4