HALCON学习----基于OCR分类器的字符识别(车牌)

本次案例来自书本《机器视觉技术基础》,第一次跟着案例编写

主要步骤如下:

代码如下所示:

*读取车辆照片
read_image(Car,'audi2')
dev_clear_window()
get_image_size(Car, Width, Height)
dev_open_window(0, 0, Width, Height, 'black', WindowHandle)
dev_display(Car)

*图片预处理
*选取车牌区域
gen_rectangle1(Rectangle, 276, 177, 344, 586)
reduce_domain(Car, Rectangle, CarReduced)

*选取数字区域
threshold(CarReduced, Region, 0, 75)
reduce_domain(CarReduced, Region, NumReduced)

*进行BLOB分析
regiongrowing(NumReduced, Regions, 1, 1, 14, 600)
connection(Regions, ConnectedRegions)
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 150, 99999)

*对区域进行排序
sort_region(SelectedRegions, SortedRegions, 'first_point', 'true', 'row')
*读取HALCON自带的OCR分类器
read_ocr_class_mlp('Industrial_0-9A-Z_NoRej.omc',OCRHandle)
*用OCR分类器对字符进行分类
do_ocr_multi_class_mlp(SortedRegions, NumReduced, OCRHandle, Class, Confidence)

*显示信息
area_center(SortedRegions, Area, Row, Column)
for i:=0 to 6 by 1
    disp_message(WindowHandle, Class[i], 'window', 250, Column[i], 'black', 'true')
endfor

车辆图片:

显示结果:

总结:

  1. 了解车牌识别(字符识别)的一些基本步骤;

  1. 对于本次案例使用的算子更加熟悉:

regiongrowing算子,区域生长法,区域分割常用的一种,在图像上选取“种子”像素或者区域,以其为生长点,从领域像素开始搜寻,比较种子区域像素与领域像素的相似性,将相同或者相似性质的像素合并到种子像素所在区域内,持续以上操作,直到没有满足条件的像素为止。

regiongrowing(Image : Regions : RasterHeight, RasterWidth, Tolerance, MinSize : )

RasterHeight, RasterWidth:矩形区域的宽和高(测试像素之间的垂直距离和水平距离),一般使用奇数。

Tolerance:灰度差值的分割标准,指当像素点的灰度与种子区域的灰度值在该范围内时,则将它们合并为同一区域。

MinSize:区域输出的最小像素。

read_ocr_class_mlp( : : FileName : OCRHandle):读取HALCON自带的OCR分类器

do_ocr_multi_class_mlp(Character, Image : : OCRHandle : Class, Confidence) 用OCR分类器对字符进行分类

后期目标:结合C#,利用C#制作一个简单界面

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值