Halcon OCR字符识别

news2024/12/23 10:09:52

create_text_model_reader创建一个文本模型描述要用于分割的文本find_text.

的parameter value文本分段方法的值为'自动''手动'.

通常,参数模式应设置为'自动'因为这种模式更稳定,需要更少 配置工作量。请注意,在这种情况下,还有一个 OCR 分类器 必须传入OCRClassifierMLP.仅当 以下限制适用,模式必须设置为'手动':

  • 需要对点阵进行分割。

  • 文本的分段,其中 极性是必需的。例如,由于反射,雕刻的文本经常 具有很强的局部差异。

  • 没有合适的基于 MLP 的 OCR 分类器可用(见下文)。

如果模式 = '自动',find_text能够提取任意大小的文本。可以限制 搜索到具有特定属性的字符,请参阅set_text_model_param了解详情。 此外,必须传入 OCR 分类器OCRClassifierMLP. 此 OCR 分类器必须基于多层感知器 (MLP)。此外 强烈建议使用提供拒绝的 OCR 分类器 类(请参阅set_rejection_params_ocr_class_mlp) 并接受过培训 使用正则化参数(请参阅set_regularization_params_ocr_class_mlp).合适的 OCR classifier 可以使用create_ocr_class_mlp或read_ocr_class_mlp.也可以传递 包含已存储的 OCR 分类器路径的字符串 跟write_ocr_class_mlp.

在以下情况下启用文本分段模式 = '手动', 文本模型的合理参数,包括预期的 字符高度和宽度,必须使用set_text_model_param.在这种情况下,OCRClassifierMLP被忽略。

文本模型可以使用set_text_model_param和get_text_model_param.

由于在调用create_text_model_reader在以下操作中, model 应由运算符显式释放clear_text_model如 一旦它不再使用。

read_image (Image, 'E:/项目/电容/Image_20240311160353328.bmp')

gen_rectangle1 (ROI_0, 967.743, 3347.29, 1342.24, 3829.91)
dev_get_window (WindowHandle)
reduce_domain (Image, ROI_0, ImageReduced)
text_line_orientation (ROI_0, ImageReduced, 30, rad(-30), rad(30), OrientationAngle)
rotate_image (ImageReduced, ImageRotate, deg(-OrientationAngle+rad(180)), 'constant')

gen_rectangle1 (ROI_0, 2438.7, 1691.79, 2582.98, 1856.02)
reduce_domain (ImageRotate, ROI_0, ImageReduced1)
crop_domain (ImageReduced1, ImagePart)

get_image_size (ImagePart, Width, Height)
emphasize (ImagePart, ImageEmphasize, 17, 17, 3)
threshold (ImageEmphasize, Region, 0, 120)
region_to_bin (Region, BinImage, 0, 255, Width, Height)

create_text_model_reader ('auto', 'Universal_0-9A-Z+_Rej.occ', TextModel)
set_text_model_param (TextModel, 'min_stroke_width',3)
set_text_model_param (TextModel, 'min_char_height',20)
find_text (BinImage, TextModel, TextResultID)
get_text_object (Characters, TextResultID, 'all_lines')
get_text_result (TextResultID, 'class', Classes)

area_center (Characters, Area, Row, Column)
query_font (WindowHandle, Font)
* Specify font name and size
FontWithSize := Font[0]+'-40'

set_font (WindowHandle, FontWithSize)
disp_message (WindowHandle, Classes, 'image', Row-30, Column , 'green', 'false')

例2:

read_ocr_class_mlp读取已 存储于write_ocr_class_mlp.由于训练了 OCR 分类器可以消耗比较长的时间,分类器是 通常在离线进程中训练,并写入具有write_ocr_class_mlp.在在线流程中,分类器 读取 并随后用于 classification 替换为read_ocr_class_mlpdo_ocr_single_class_mlp或do_ocr_multi_class_mlp.

do_ocr_multi_class_mlp计算每个 区域给出的字符字符和灰色 值图像使用 OCR 分类器OCR汉德尔和 返回类和相应的 中类的置信度(概率)信心. 与do_ocr_single_class_mlp,do_ocr_multi_class_mlp可以对多个字符进行分类 一次调用,因此通常比使用do_ocr_single_class_mlp对单个字符进行分类。 然而do_ocr_multi_class_mlp只能返回最好的 class 的 class 的 intent 值。因为置信度可以被解释 作为概率(参见classify_class_mlp和evaluate_class_mlp),因此很容易检查 一个角色是否被归类为不确定性太大, 这通常不是缺点,除非 类重叠如此之多,以至于在许多情况下,第二好的类 必须进行检查才能决定字符的类别。 在这些情况下,do_ocr_single_class_mlp应该使用。 调用do_ocr_multi_class_mlp,则分类器必须为 训练trainf_ocr_class_mlp.

read_image (Image12, 'E:/Halcon数据/测量程序/OCR识别/12.png')

dev_get_window (WindowHandle)
gen_rectangle1 (ROI_0, 140.933, 176.767, 286.107, 660.934)
reduce_domain (Image12, ROI_0, ImageReduced)
threshold (ImageReduced, Region, 0, 100)
connection (Region, ConnectedRegions)
read_ocr_class_mlp ('DotPrint_NoRej', OCRHandle)
do_ocr_multi_class_mlp (ConnectedRegions, Image12, OCRHandle, Class, Confidence)
smallest_rectangle1 (ConnectedRegions, Row11, Column1, Row2, Column21)
query_font (WindowHandle, Font)
FontWithSize := Font[0]+'-60'
set_font (WindowHandle, FontWithSize)
disp_message (WindowHandle, Class, 'image', Row2+50, Column1, 'green', 'false')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2204238.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis Windows最新安装教程(2024.10.10)

文章目录 redis介绍下载地址 安装流程基础操作测试Redis常用的服务指令 redis介绍 Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,常用作数据库、缓存和消息中间件。Redis具有快速、灵活、可扩展和高可用性等特…

2024最新会声会影序列号及会声会影2023怎样添加画中画滤镜

深入简单直观的视频编辑!使用 Corel VideoStudio会声会影2023,将您最美好的时刻和生活体验变成令人惊叹的电影,这是一款有趣且直观的视频编辑器,包含高级工具和高级效果会声会影2024免费下载。从自定义标题和过渡,到 M…

微服务(二)

目录 一、服务注册和发现 1、注册中心原理 2、nacos注册中心 3、服务注册 3.1 添加依赖 3.2 配置nacos 3.3 服务的发现 二、openfeign 1、快速入门 1.1 引入依赖 1.2 启用openfeign 1.3 编写openfeign客户端 2、连接池 2.1 引入依赖 2.2 开启连接池 3、 最佳实…

用godot4.3 C#开发一个APP登陆界面

一、下载godot godot 是一个游戏开发平台,可以用gd语言,这一个类似python,python程序员转gd很容易,也可以用C#开发。 https://godotengine.org/ 进行下载,下载 下载,net版本。当然mac也可以下载,linux上也有可以&#…

[含文档+PPT+源码等]精品基于Python实现的Django高校职业通的设计与实现

基于Python实现的Django高校招聘系统的设计与实现背景,主要源于以下几个方面的需求和趋势: 1. 就业压力的增加 随着高校毕业生数量的不断增加,就业压力日益加大。传统的招聘方式,如招聘会、报纸广告等,由于其信息传播…

C语言 | Leetcode C语言题解之第470题用Rand7()实现Rand10()

题目&#xff1a; 题解&#xff1a; // The rand7() API is already defined for you. // int rand7(); // return a random integer in the range 1 to 7int rand10() {while(true) {int index (rand7() - 1) * 7 rand7(); if(index < 40) return index % 10 1; } }

ThingsBoard规则链:Copy Keys节点详解

引言 复制键节点简介 用法 含义 应用场景 实际项目运用示例 智能农业监控系统 城市交通管理系统 结论 引言 ThingsBoard是一个功能丰富的物联网平台&#xff0c;它支持设备管理、数据收集与处理以及实时监控。其强大的规则引擎允许用户通过创建复杂的业务逻辑来自动处理…

探索高效的 PDF 拆分工具及其独特功能

当一份大型的PDF文档包含了多个不同主题或章节的内容时&#xff0c;将其拆分成独立的部分可以更方便我们的阅读、编辑和管理。接下来&#xff0c;让我们一起走进PDF拆分工具的世界&#xff0c;了解它们的功能和价值。 1.福昕PDF编辑器 链接一下>>https://editor.foxits…

6-基于TMS320C6678、FPGA XC5VSX95T的6U CPCI 8路光纤信号处理卡

1、板卡概述   本板卡由我公司自主研发&#xff0c;基于CPCI架构&#xff0c;符合CPCI2.0标准&#xff0c;采用两片TI DSP TMS320C6678芯片和Xilinx公司V5系列FPGA XC5VSX95T-1FF1136芯片。包含PCI接口、GMII的以太网接口、Nor Flash接口、8路SFP光 纤&#xff0c;4路RS232。…

Reqable小黄鸟抓包

搜索Reqable到官网进行下载 Windows端配置证书 可以直接自动安装&#xff0c;或者跟着内置的教程手动安装 下载安装安卓端并配置证书 配置证书有内置的教程跟着操作即可 手机协同配置 点击这个位置然后手机扫码就可以抓包了

网络安全知识|网安问答题|OSPF报文协议|抓包工具|路由器环路|序列化与反序列化|磁盘利用率|网络攻防

网络安全知识|网安问答题|OSPF报文协议|抓包工具|路由器环路|序列化与反序列化|磁盘利用率|网络攻防 作为网络工程师&#xff0c;怎么处理防火墙没网的问题&#xff1f; 检查防火墙规则&#xff1a;确保防火墙规则没有错误地阻止了网络访问。需要检查防火墙设置&#xff0c;特…

​ceph掉电后无法启动osd,pgs unknown

处理办法&#xff1a; 只有1个osd,单副本&#xff0c;掉电损坏osd&#xff0c;只能考虑重建pg&#xff0c;丢失部分数据了。生产环境务必考虑2&#xff0c;3副本设计。避免掉电故障风险。 掉电后osdmap丢失无法启动osd的解决方案 - 武汉-磨渣 - 博客园 https://zhuanlan.zhih…

C++ | Leetcode C++题解之第472题连接词

题目&#xff1a; 题解&#xff1a; struct Trie {bool isEnd;vector<Trie *> children;Trie() {this->children vector<Trie *>(26, nullptr);this->isEnd false;} };class Solution { public:Trie * trie new Trie();vector<string> findAllConc…

前端的全栈之路:基于 Vue3 + Nest.js 全栈开发的后台应用

☘️ 项目简介 Vue3 Admin 是一个前端基于 Soybean Admin 二次开发&#xff0c;后端基于 Nest.js 的全栈后台应用&#xff0c;适合学习全栈开发的同学参考学习。 &#x1f341; 前端技术栈&#xff1a; Vue3.5、Ant Design Vue、UnoCSS、Pinia &#x1f341; 后端技术栈&…

毕设开源 基于机器视觉的人体姿态行为识别

文章目录 0 简介**1、人体姿态估计简介**2、人体姿态估计数据集4、实现原理5、实现神经网络6 部分关键代码7 最后 0 简介 今天学长向大家分享一个毕业设计项目 毕业设计 基于机器视觉的人体姿态行为识别 项目运行效果&#xff1a; 毕业设计 深度学习人体姿势姿态识别 &#…

【操作系统】深入探索:操作系统内核与用户进程的数据交互艺术

目录 一、数据从内核缓冲区拷贝到用户进程缓冲区&#xff0c;是谁来负责拷贝的&#xff0c;是操作系统还是用户进程&#xff1f;实际的执行者到底是谁&#xff1f;二、系统调用以及用户态内核态的相互转换1、系统调用2、用户态内核态的相互转换 三、如何形象的理解linux的虚拟地…

使用jenkins将airflow-dbt部署到服务器上

系列文章目录 文章目录 系列文章目录课程地址YT一、jenkins服务器的初始化配置1.1 运行第一个jenkins pipeline二、编写本地dbt项目2.1 克隆git上的初始文件到本地2.2 本地创建虚拟环境2.3 创建airflow的Dockerfile2.4 安装dbt2.5 创建dbt所需要的snowflake数据库2.6 配置docke…

elementui+vue 多行数据的合并单元格

多行的合并&#xff0c;可以参考&#xff0c;改改就能用 html <template><el-table :data"students" :span-method"objectSpanMethod"><el-table-column prop"grade" label"年级"></el-table-column><el-…

协变和逆变、事件、匿名函数

定义:协变(out)和逆变(in)是用于接口和委托中修饰泛型的,定义泛型类型的使用区域。 语法:<out T>那么T的数据类型只能用于返回值。<in T>那么T的数据类型只能用于参数列表。 //自定义委托 public delegate Result Fun<in T, in K, out Result>(…

『网络游戏』服务器启动逻辑【16】

新建Visual Studio工程命名为NetGameServer 重命名为ServerStart.cs 创建脚本&#xff1a; 编写脚本&#xff1a;ServerRoot.cs 编写脚本&#xff1a;ServerStart.cs 新建文件夹 调整脚本位置 新建文件夹 新建文件夹网络服务 创建脚本&#xff1a;NetSvc.cs 编写脚本&#xff1…