Halcon ORC字符识别

OCR(Optical Character Recognition,光学字符识别)是通过使用OCR工具实现的。Halcon提供了一些用于进行字符识别的函数和工具,可以帮助用户实现文本的自动识别和提取。

read_ocr_class_mlp:用于读取一个经过训练好的OCR多类别MLP(Multi-Layer Perceptron,多层感知器)分类器。
do_ocr_multi_class_mlp:用于在给定的图像上执行基于MLP的多类别OCR,并返回识别的类别和置信度。

dev_close_window ()
read_image (Image, 'D:/Halcon/images/PlugGauge.jpg')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width/5, Height/6, 'black', WindowHandle)
dev_display (Image)
* 转成灰度图
rgb1_to_gray (Image, GrayImage)
* 制作ROI
gen_rectangle1 (ROI_0, 1645.88, 1336.74, 1800.1, 2192.3)
gen_rectangle1 (ROI_1, 2340.5, 958.469, 2477.66, 1050.61)
* 合并区域
union2 (ROI_0, ROI_1, ROI_1)
gen_rectangle1 (ROI_2, 3143.16, 1670.06, 3286.34, 1836.29)
union2 (ROI_1, ROI_2, RegionUnion)
* 裁剪图像
reduce_domain (GrayImage, RegionUnion, ImageReduced)* 均值平滑
mean_image (ImageReduced, ImageMean, 150, 150)
* 局部阈值
dyn_threshold (GrayImage, ImageMean, RegionDynThresh, 30, 'dark')
* 连通性
connection (RegionDynThresh, ConnectedRegions)
* 开运算(去除杂斑)
opening_circle (ConnectedRegions, RegionOpening, 2.5)
connection (RegionOpening, ConnectedRegions1)
* 筛选区域
select_shape (ConnectedRegions1, SelectedRegions, 'area', 'and', 230, 99999)
select_shape (ConnectedRegions1, SelectedRegions, 'height', 'and', 30, 99999)union1 (SelectedRegions, RegionUnion1)
* 填充图像中的形状
fill_up_shape (RegionUnion1, RegionFillUp, 'area', 1, 100)
* 膨胀
dilation_circle (RegionFillUp, RegionDilation, 5)
connection (RegionDilation, ConnectedRegions2)
* 交集
intersection (ConnectedRegions2, RegionFillUp, RegionIntersection)
* 对区域进行排序
sort_region (RegionIntersection, SortedRegions, 'character', 'true', 'row')* 字符进行识别,从文件中读取分类器
* 参数一:是指定的已训练好的OCR多类别MLP分类器文件。
* 参数二:存储所读取分类器的句柄。
read_ocr_class_mlp ('Industrial_0-9A-Z_Rej.omc', OCRHandle)
* 使用分类器对字符进行提取
* 参数一:排序完成的区域
* 参数二:灰度图像
* 参数三:分类器的句柄
* 参数四:输出参数,用于存储识别的类别
* 参数五:识别结果的置信度
do_ocr_multi_class_mlp (SortedRegions, GrayImage, OCRHandle, Class, Confidence)dev_set_color('red')
dev_display (Image)
dev_display (SortedRegions)set_display_font (WindowHandle, 20, 'mono', 'true', 'false')
* 求最小外接矩形,会返回矩形的左上角坐标和右下角坐标
* 参数一:已排序的区域
* 参数二、三:最小外接矩形的一个角的行和列坐标
* 参数四、五:最小外接矩形的另一个角的行和列坐标
smallest_rectangle1 (SortedRegions, Row1, Column1, Row2, Column2)disp_message (WindowHandle, Class, 'image', Row2, Column2, 'black', 'false')

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

第二十八天-ES6标准入门和Flex布局

目录 1.ES6标准入门 2.ES6与JavaScript关系 3.ES6常用新特性 1.变量与常量 1.let三大特性 2.常量三大特征 2.解构赋值 1.数组解构赋值 2.对象解构赋值 3.字符串解构赋值 3.函数与箭头函数 1.函数 2.箭头函数 4.JS的面向对象编程 5.模块化 export使用 import使用…

HEVC的编码结构

编码单元划分 CTU/CTB CTU(Coding Tree Unit)和CU组成了一个四叉树的层级结构,CTU的尺寸为64 x 64,32 x 32,16 x 16,一个CTU可以分为一个或四个CTU,对标H264的MB。 CU/CB CU/CB(Coding Unit/Coding Block),CU为亮度和色度编码单元的统称,CB特指某一个分量的的编码…

JAVA后端调用OpenAI接口 实现打字机效果(SSE)

SSE SSE(Server-Sent Events,服务器发送事件)是一种基于HTTP协议的通信技术,它允许服务器持续地将数据推送给客户端,而无需客户端发起请求。这种通信方式通常用于实时性要求较高的场景,如实时更新、通知、或…

C++初始化列表

本博客将讲述C初始化列表的相关内容 一.什么是初始化列表 图中红方框框的就是初始化列表 格式为: :成员变量1(参数1),成员变量2(参数2) 编译器会将初始化列表一一转换成代码,并将…

高可用、逻辑保护、容灾、多活、妥协、流程

可用性三叉戟: 本地高可用性:消除单点故障,确保链路所有环节系统高可用 本地是指:针对生产中心的内部故障 故障类型:服务器、硬盘、适配器卡、网络 特点:快速恢复、自动的接管、实施简单 RPO-0 业务逻辑保护…

高级数据结构 <AVL树>

本文已收录至《数据结构(C/C语言)》专栏! 作者:ARMCSKGT 目录 前言正文AVL树的性质AVL树的定义AVL树的插入函数左单旋右单旋右左双旋左右双旋 检验AVL树的合法性关于AVL树 最后 前言 前面我们学习了二叉树,普通的二叉树没有任何特殊性质&…

[Linux]互斥锁(什么是锁,为什么需要锁,怎么使用锁(接口),演示代码)

目录 一、锁的概念 一些需要了解的概念 什么是锁?为什么需要锁?什么时候使用锁?怎么定义锁? 二、锁的接口 1.初始化锁 2.加锁 3.申请锁 4.解锁 5.销毁锁 三、实践(写代码):黄牛抢票 一…

华曦传媒陆锋:数字媒体时代,社区电梯广告价值正在被重估

在数字化时代的浪潮中,电梯广告、停车场道闸广告、门禁灯箱广告等线下社区广告似乎面临着生存的挑战。 然而,这一传统广告形式展现出了惊人的韧性和价值。 比如,2023年上半年,作为行业龙头分众传媒,2023年上半年实现…

GraalVM详细安装及打包springboot、java、javafx使用教程(环境安装篇)

下一篇:GraalVM详细安装及打包springboot、java、javafx使用教程(打包普通JAVA项目篇) GraalVM介绍 GraalVM是一款由Oracle公司开发的一款具有高效性能、降低基础设施成本、支持Java发展、与其他编程语言无缝集成、创建本机镜像等优点的跨平台虚拟机。它支持多种编程语言&…

Nacos详解,从安装到服务部署,及nginx反向代理

Nacos 安装 Windows安装 下载 在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: GitHub主页:https://github.com/alibaba/nacos GitHub的Release下载页:https://github.com/alibaba/nacos…

Python 安装目录及虚拟环境详解

Python 安装目录 原文链接:https://blog.csdn.net/xhyue_0209/article/details/106661191 Python 虚拟环境 python 虚拟环境图解 python 虚拟环境配置与详情 原文链接:https://www.cnblogs.com/hhaostudy/p/17321646.html

下沉市场会给蔚来带来新“未来”吗?

2023年以来,在价格战、技术战等多重因素的催化下,我国汽车行业的洗牌在持续进行。一边是小米等手机厂商跨界入场,一边是三菱等合资品牌淡出大众视野。市场格局正在重塑。 这种情况下,现有车企的一举一动都备受市场关注。其中&…

09 事务和连接池

文章目录 properties文件连接池service层实现类dao层实现类dao层实现类 连接池类: 创建线程池静态常量,用于放连接。 创建Properties静态常量,用于解析properties文件 静态代码块中,解析properties文件,将解析结果用于创建连接池 …

手写一个跳表,跪了。。。

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团、蚂蚁、得物的面试资格,遇到很多很重要的相关面试题: 手写一个跳表? redis为什…

技能篇:如何批量替换文件名称 一招批量替换文件名

在日常生活和工作中,我们经常需要处理大量的文件,而文件名的设置对于文件的管理和查找至关重要。一个清晰、有序的文件名能够帮助我们快速找到所需的文件,提高工作效率。然而,随着时间的推移和项目的增多,我们可能需要…

【JS】JavaScript 中的原型与原型链

JavaScript 中的原型与原型链 原型1 函数中 prototype 指向原型对象2 对象中 __proto__ 指向原型对象3 原型对象中 constructor 指向构造函数4 __proto__ 与 [[Prototype]] 的关系5 所有非空类型数据,都具有原型对象6 new运算符做了哪些事情 原型链1 举个栗子1.1 直…

使用有道bce-embedding-vase-v1模型构建知识向量库并进行相似度搜索

国产embedding 最开始使用LangChain结合通义千问API实现了基础的RAG(Retrieval-Augmented Generation)过程,当时认为embedding模型似乎是LangChain的一部分,然后又通过学习OpenAI的API发现,其实使用embedding模型不需要…

智能农业:农业技术与效益

文章目录 什么是智慧农业?智能农业的好处智能农业技术物联网智能农业解决方案智能农业软件和移动应用程序智能农业的挑战作物监测卫星智能农业解决方案使用卫星数据数据测量历史数据和预测在便携式设备上使用应用程序 智能农业的未来参考 现代技术的发展影响着人类活…

走进jvm之垃圾回收器篇

这里我想首先说明一下,虽然我们经常会拿垃圾回收器来做比较,虽然想挑选一个最好的收集器出来,但是目前也没有说哪一款收集器是完美的,更不存在万能的收集器,我们也只是对收集器选择最适合场景的一个收集器。 那么作者将…

深入解析权限之钥RBAC模型!

在2B系统中设计中,角色基于访问控制(RBAC,Role-Based Access Control)是最常见的权限管理模型之一。它将权限分配给角色而非个别用户,简化了权限管理的过程。接下来我们一起了解下几种常见的RBAC模型。 1. 标准 RBAC&…