让代码更简单

当前位置:代码狗 > 开发教程 > 工业视觉教程 > 正文

Halcon简单文字识别OCR的使用

突然想起网上有很多打码挣钱的活动,于是灵光一闪,用C#搞个自动识别验证码的程序出来岂不是自动挣钱了?找了半天,打码就是个坑货,半天不见一个码,打个锤子。不过验证码识别却是值得研究的,在学习识别验证码之前,我们先来学习下OCR光学字符识别,halcon在这方面提供的算法很多,visionPro比较薄弱,所以学习下halcon吧。

Halcon简单文字识别OCR的使用

Halcon简单文字识别OCR的使用

我这里随便用画板写了几个字,我用不同字体试过了,效果不错,我懒得做动图了,所以就这一张图。

//读入一张图片,提供窗口句柄及设置窗口大小
dev_close_window ()
dev_update_pc ('off')
dev_update_window ('off')
read_image (Image, 'C:/Users/Administrator/Desktop/testimage/1.png')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_set_draw ('margin')
//创建字体失败模板
create_text_model_reader ('auto', 'Universal_0-9A-Z_Rej', TextModel)
set_text_model_param (TextModel, 'dot_print', 'true')

set_text_model_param (TextModel, 'min_contrast', 40)
//循环读入图片识别
for Index := 1 to 4 by 1
read_image (Image, 'C:/Users/Administrator/Desktop/testimage/'+Index+'.png')
dev_display (Image)
find_text (Image, TextModel, TextResultID)
get_text_object (Characters, TextResultID, 'all_lines')
get_text_result (TextResultID, 'class', Class)
//显示结果
set_tposition (WindowHandle, 20,20)
write_string (WindowHandle, '结果:'+ sum(Class))
stop ()
endfor

上面主要使用了create_text_model_reader识别模式选择、find_text查找识别算子,使用起来比较简单。

代码比较简单,很容易看懂,学了好几天halcon了,个人觉得halcon最难的就是对算子的理解和记忆。建议带有目的性的学习,比如你需要检测产品数量,就专门去看斑点相关算子和相关案例,当然这样学习的弊端就是只会按照例子的套路写,如果出现一些变化,就不会写了,不过当你写过几个项目后应该会有一些自己的认知,再理解起来应该就不难了。

当然,我个人还是建议带有目的性的学习,不能像学校一样挨着理解每一个算子功能含义,不然理论知识在丰富,不会动手等于零。动手才能快速掌握。

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏

评论 2

  1. #1

    百度云提供了ORC识别接口,每天5000次,考虑下……

    缙哥哥1个月前 (10-18)回复
    • 有干扰的图像他们识别不了,需要自己预处理

      代码狗1个月前 (10-19)回复
×

请作者吃根烤肠!

支付宝