注意:如果是争对汉字的识别,请翻阅我另一篇博客:https://blog.csdn.net/weixin_44490080/article/details/90208492

此处仅介绍24个字母以及数字的识别,后面还有一些关键算子的介绍

识别用的图片:

halcon代码:

*自动文本阅读器的快速使用demo
read_image (Image, 'D:/Halcon-WorkSpaces/Test/Image/2333.png')
rgb1_to_gray (Image, GrayImage)
*创建自动文本阅读器模型
create_text_model_reader ('auto', 'Industrial_Rej.omc', TextModel)
*设置自动文本阅读器模型的参数
set_text_model_param (TextModel, 'add_fragments', 'true')
*识别
find_text (GrayImage, TextModel, TextResultID)
*显示字符截取的模型
get_text_object (Characters, TextResultID, 'all_lines')
*从阅读器模型中提取识别的字符
get_text_result (TextResultID, 'class', Classes)
*显示识别结果
Classess:=''
for Index := 0 to |Classes|-1 by 1Classess:=Classess+Classes[Index]
endfor
disp_message (3600, '识别结果:'+Classess, 'window', 0, 0, 'black', 'false')

执行结果:

创建自动文本阅读器模型

create_text_model_reader:

参数介绍:

Mode (input_control)  string → (string)
文本模型的模式
默认值: 'auto'
List of values: 'auto', 'manual'

OCRClassifierMLP (input_control)  string → (string / integer)
选择ocr分类器
默认值: 'Industrial_Rej.omc'
Suggested values: 'Document_A-Z+_NoRej.omc', 'Document_0-9A-Z_NoRej.omc', 'Document_0-9_NoRej.omc', 'Document_NoRej.omc', 'Document_A-Z+_Rej.omc', 'Document_0-9A-Z_Rej.omc', 'Document_0-9_Rej.omc', 'Document_Rej.omc', 'DotPrint_A-Z+.omc', 'DotPrint_0-9A-Z.omc', 'DotPrint_0-9.omc', 'DotPrint_0-9+.omc', 'DotPrint.omc', 'HandWritten_0-9.omc', 'Industrial_A-Z+_NoRej.omc', 'Industrial_0-9A-Z_NoRej.omc', 'Industrial_0-9_NoRej.omc', 'Industrial_0-9+_NoRej.omc', 'Industrial_NoRej.omc', 'Industrial_A-Z+_Rej.omc', 'Industrial_0-9A-Z_Rej.omc', 'Industrial_0-9_Rej.omc', 'Industrial_0-9+_Rej.omc', 'Industrial_Rej.omc', 'MICR.omc', 'OCRB_A-Z+.omc', 'OCRA_0-9A-Z.omc', 'OCRA_0-9.omc', 'OCRA.omc', 'OCRB_A-Z+.omc', 'OCRB_0-9A-Z.omc', 'OCRB_0-9.omc', 'OCRB.omc', 'OCRB_passport.omc', 'Pharma_0-9A-Z.omc', 'Pharma_0-9.omc', 'Pharma_0-9+.omc', 'Pharma.omc', 'SEMI.omc'

TextModel (output_control)  text_model → (integer)
输出一个新的文本模型

设置自动文本阅读器模型参数

set_text_model_param:

模式= 'auto'的文本模型参数

“min_contrast”:

人物与周围背景的最小对比。

值列表:整数或浮点值之间的1和255的字节图像和1和65.535之间的uint2图像

默认值:15

“极性”:

“dark_on_light”(如果要分割的文本比背景颜色深),“light_on_dark”(如果要分割的文本比背景颜色浅),“both”(如果两种文本都要分割)。

值列表:'dark_on_light'、'light_on_dark'、'both'

默认值:‘都’

“min_char_height”:

字符的最小高度(以像素为单位)。如果要分割任意高度的文本,可以传递“auto”。注意“min_char_height”只引用字符。标点符号或分隔符的高度不受“min_char_height”的限制。

值列表:大于或等于1的整数或浮点值

默认值:“汽车”

“max_char_height”:

以像素为单位的字符的最大高度。如果要分割任意高度的文本,可以传递“auto”。注意“max_char_height”只引用字符。标点符号或分隔符的高度不受“max_char_height”的限制。

值列表:大于或等于1的整数或浮点值

默认值:“汽车”

“min_char_width”:

字符的最小宽度(以像素为单位)。如果要分割任意宽度的文本,可以传递“auto”。注意“min_char_width”只引用字符。标点符号或分隔符的宽度不受“min_char_width”的限制。

值列表:大于或等于1的整数或浮点值

默认值:“汽车”

“max_char_width”:

字符的最大宽度(以像素为单位)。如果要分割任意宽度的文本,可以传递“auto”。注意“max_char_width”只引用字符。标点符号或分隔符的宽度不受“max_char_width”的限制。

值列表:大于或等于1的整数或浮点值

默认值:“汽车”

“min_stroke_width”:

字符的最小笔画宽度(以像素为单位)。如果要在文本分割过程中自动估计最小笔画宽度,可以传递“auto”。注意,'min_stroke_width'仅指字符。标点符号或分隔符的笔画宽度不受“min_stroke_width”的限制。

值列表:大于或等于1的整数或浮点值

默认值:“汽车”

“max_stroke_width”:

字符的最大笔画宽度(以像素为单位)。如果要在文本分割过程中自动估计最大笔画宽度,可以传递“auto”。注意“max_stroke_width”只引用字符。标点符号或分隔符的笔画宽度不受“max_stroke_width”的限制。

值列表:大于或等于1的整数或浮点值

默认值:“汽车”

“eliminate_border_blobs”:

如果触及图像域边界的区域应该被丢弃,则为true,否则为false。

值列表:“true”、“false”

默认值:“假”

“return_punctuation”:

如果标点符号(例如点或逗号)也应该返回,则为“true”。如果不应该返回标点,则使用“false”。

值列表:“true”、“false”

默认值:“真正的”

“return_separators”:

如果分隔符(如减号或等号)也应该返回,则为true。如果不应该返回分隔符,则为“false”。

值列表:“true”、“false”

默认值:“真正的”

“add_fragments”:

如果片段(如“i”上的点)被添加到分段字符中,则为“true”,否则为“false”。请注意,这可能会导致向分段字符添加噪声。

值列表:“true”、“false”

默认值:“真正的”

“text_line_structure”:

为了简化对分段文本中特定结构(例如日期或序列号)的搜索,可以定义文本行结构。对于每个文本行,计算字符之间的距离,并根据这些距离将文本行划分为文本块。短字符,如'。'、'_'和'-'在此过程中被忽略,并作为空格处理。此外,还可以定义特定于用户的分隔符,这些分隔符也被忽略。有关详细信息,请参见'text_line_separator '的描述。然后测试用户定义的任何文本行结构是否符合结果文本块。

例如,如果要查找的文本是一个包含月、日和年的两个字符的日期,那么结构将是' 2,2,2 '。如果年份可能由两个或四个字符组成,那么结构将是' 2,2,2 -4',表示最后一个字符块由两到四个字符组成。通过在参数名后面附加索引,可以提供多个匹配的结构,例如。“text_line_structure_0”、“text_line_structure_1”。如果'text_line_structure'被设置为空字符串' ',则要查找的文本可能具有任何结构。

请注意,所找到的每个文本行结构都保存为文本结果中的唯一文本行。因此,当调用get_text_object时,“line”引用一个有效的文本行结构。如果返回包含文本行结构的整个文本行,则可以相应地设置'return_whole_line'。

默认值:' '

“text_line_separators”:

包含在查找文本行结构过程中要忽略的字符列表的字符串,有关详细信息,请参见“text_line_structure”。请注意,用户特定的分隔符需要在使用的OCR分类器中是有效的字符。例如,如果要忽略':'和'\',则应该传递':\\'。请注意,'\'转义任何特殊符号,将其作为文字处理,因此需要传递'\\'来使用'\'作为分隔符。

值列表:' /',':',':\\',' \\/:',…

默认值:' '

“return_whole_line”:

如果只返回分段的文本行结构作为文本行,则为“false”。如果每个包含文本行结构的文本行都以文本行形式返回,则为“true”。

值列表:“true”、“false”

默认值:“假”

“mlp_classifier”:

find_text中用于文本分割的基于mlp的OCR分类器。在创建文本模型时设置初始分类器。有关所需OCR分类器的更多信息,请参见create_text_model_reader。

manual模式就不介绍了。。。

xxx

halcon字符识别快速入门相关推荐

  1. Tensorflow快速入门2--实现手写数字识别

    Tensorflow快速入门2–实现手写数字识别 环境:  虚拟机ubuntun16.0.4  Tensorflow 版本:0.12.0(仅使用cpu下) Tensorflow安装见:  http:/ ...

  2. VPLC系列机器视觉运动控制一体机快速入门(十)

    此前,我们依次讲解了软硬件介绍及计数实例.相机的基本使用.基于形状匹配的视觉定位.BLOB有无检测.测量尺寸.机器视觉方案中使用到的标定功能.ZDevelop软件实现识别条形码和二维码,测量点/直线/ ...

  3. Shiro第一个程序:官方快速入门程序Qucickstart详解教程

    目录 一.下载解压 二.第一个Shiro程序 1. 导入依赖 2. 配置shiro配置文件 3. Quickstart.java 4. 启动测试 三.shiro.ini分析 四.Quickstart. ...

  4. 计算机入门新人必学,异世修真人怎么玩?新手快速入门必备技巧

    异世修真人怎么快速入门?最近新出来的一款文字修仙游戏,很多萌新不知道怎么玩?进小编给大家带来了游戏新手快速入门技巧攻略,希望可以帮到大家. 新手快速入门攻略 1.开局出来往下找婆婆,交互给点钱,旁边有 ...

  5. Spring Boot 2 快速教程:WebFlux 快速入门(二)

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘 ...

  6. Apache Hive 快速入门 (CentOS 7.3 + Hadoop-2.8 + Hive-2.1.1)

    2019独角兽企业重金招聘Python工程师标准>>> 本文节选自<Netkiller Database 手札> 第 63 章 Apache Hive 目录 63.1. ...

  7. 《iOS9开发快速入门》——导读

    本节书摘来自异步社区<iOS9开发快速入门>一书中的目录,作者 刘丽霞 , 邱晓华,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 前 言 第1章 iOS ...

  8. BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 序

    BIML 101 - BIML 快速入门教程 做大数据的项目,最花时间的就是数据清洗. 没有一个相对可靠的数据,数据分析就是无木之舟,无水之源. 如果你已经进了ETL这个坑,而且预算有限,并且有大量的 ...

  9. python scrapy菜鸟教程_scrapy学习笔记(一)快速入门

    安装Scrapy Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv.json等文件中. 首先我们安装Scrapy. pip install sc ...

最新文章

  1. Linux内核中工作队列的使用work_struct,delayed_work
  2. matlab 计算程序运行的时间
  3. 6-3 两个有序链表序列的合并
  4. linux 脚本学习--细节问题
  5. 直击行业痛点!端侧模型部署的成熟解决方案有了!
  6. django默认缓存是多大_Django之缓存 - osc_fd8vzgsi的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. Java通过引用操作对象的“共享”特性
  8. 部署Ceph分布式高可用集群中篇
  9. 关停近300家门店,海底捞:苦果只能一口一口咽下去
  10. jQuery 5 条件选择器
  11. 用一套键盘鼠标同时控制两台电脑
  12. 南京、无锡、苏州三地部分it岗待遇简况
  13. 个人邮箱怎么注册?手机怎么注册个人邮箱呢?
  14. 国庆节上映的电影有哪些?2014国庆节上映的动画电影盘点
  15. pip install -t的意思
  16. 团队作业(三):项目分工
  17. 任正非在持股员工代表会上讲:我的家人永不会进入接班人序列
  18. 双十一买什么比较划算?四款实用性超强不吃灰的数码好物推荐
  19. 动态规划 求第 n 个 Humble Number(丑数)
  20. 【花费9毛钱购买阿里云服务器搭建一个私有云盘-owncloud】

热门文章

  1. 参数辨识验证模块(二阶RC模型)
  2. 灯光照明实验matlab,MATLAB在低碳的室内装潢灯光照明的应用
  3. 玩游戏一般用什么硬盘
  4. 毫无基础的人如何入门 Python ?
  5. 2022年N2观光车和观光列车司机考试题及N2观光车和观光列车司机找解析
  6. 一文读懂华为Mate20系列三大看点
  7. Haskell列表操作
  8. 多维角度聊聊结对编程
  9. 偏微分方程的类型及求解(一)(备份草稿)
  10. 新来的23岁软件测试员上来秀了波操作,把几个老员工看傻了