生活随笔
收集整理的这篇文章主要介绍了
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')
*遍历
0到
16
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)
相关系列
- Halcon+MFC条形码识别
- 一维条形码检测与识别原理
总结
以上是生活随笔为你收集整理的halcon小例:ORC识别的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。