halcon小例:ORC识别

ORC识别

原图
这里写图片描述
识别后
这里写图片描述
Halcon代码如下:

*关闭窗口
dev_close_window () 
*读取图片
read_image (Image, 'C:/Users/Pictures/13_81_bcb4442e5fb68e9.bmp')
*通过均值滤波器,平滑图像
mean_image (Image, Img_m1, 3, 3) 
*通过均值滤波器,再次平滑图像
mean_image (Img_m1, Img_m2, 17, 17) 
*阈值处理,满足Img_mi>=Img_m2+5的像素点输出
dyn_threshold (Img_m1, Img_m2, Reg_th, 5, 'light') 
*连接阈值分割后的区域
connection (Reg_th, Reg_con) 
*根据特征选择连接后的区域(再次精确连接区域),限制宽高,识别出区域
select_shape (Reg_con, Reg_sel, ['height', 'width'], 'and', [50, 15], [70, 45]) 

*排序区域,从左到右,递增
sort_region (Reg_sel, Reg_sort, 'character', 'true', 'row')
*膨胀
dilation_circle (Reg_sort, Reg_dil, 1.5) 

*反转图像
invert_image (Img_m1, Img_inv) 

*读取ORC分类器(halcon提供的训练库)
read_ocr_class_mlp ('Pharma_0-9A-Z.omc', OCRHandle)
*调用ORC分类器,识别字符
do_ocr_multi_class_mlp (Reg_dil, Img_inv, OCRHandle, Class, Confidence) 

*打开一个以给定的纵横比打开新的图形窗口
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
*显示灰度图 
disp_image (Image, WindowHandle)

*识别每个字符的最小矩形区域
smallest_rectangle1 (Reg_sort, R1, C1, R2, C2) 
*设置显示的字体
set_display_font (WindowHandle, 14, 'mono', 'true', 'false') 
*遍历016
for i:= 0 to |R1|-1 by 1 
    *在指定位置显示指定样式文本
    disp_message (WindowHandle, Class[i], 'window', R1[i]-20, C1[i], 'black', 'true') 
endfor 
*设置矩形区域填充方式
dev_set_draw ('margin')
*画矩形
disp_rectangle1 (WindowHandle, R1, C1, R2, C2)
*关闭窗口
*dev_close_window () 
*清理ORC分类器
*clear_ocr_class_mlp (OCRHandle)
相关系列
  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值