halcon 中文识别

文章目录

  • 简单的阈值处理
  • 发现颜色不统一,把‘游’字选出来
  • 膨胀处理
  • 把字扣下来进行阈值处理
  • 训练模型

请添加图片描述

简单的阈值处理

dev_close_window()
**基于自定义中文识别库识别名称
read_image(Image,'C:/Users/Augustine/Desktop/西游记.png')
get_image_size(Image,Width,Height)
dev_open_window(0,0,Width, Height, 'black', WindowHandle)
dev_display(Image)**选取ROI 区域
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
gen_rectangle1(Rectangle,Row1,Column1,Row2,Column2)**显示需要识别的区域
reduce_domain(Image, Rectangle, ImageReduced)**分割出需要识别的区域
rgb1_to_gray(ImageReduced,GrayImage)** 阈值处理
binary_threshold(GrayImage, Region, 'max_separability', 'dark', UsedThreshold)
connection(Region, ConnectedRegions)

在这里插入图片描述

发现颜色不统一,把‘游’字选出来

在这里插入图片描述
在这里插入图片描述

膨胀处理

*选取特征区域
select_shape (ConnectedRegions, SelectedRegions, ['row','column'], 'and', [80,190], [170,280])* 膨胀,尽量的将单个字体连接起来
dilation_circle (SelectedRegions, RegionDilation, 2)
* 将各个区域求并集
union1 (RegionDilation, RegionUnion)

在这里插入图片描述

把字扣下来进行阈值处理

*抠图
reduce_domain(Image, RegionUnion, ImageReduced1)
* 阈值选择
threshold (ImageReduced1, Regions, 0, 228)

在这里插入图片描述

训练模型

*抠图
reduce_domain(Image, RegionUnion, ImageReduced1)
* 阈值选择
threshold (ImageReduced1, Regions1, 0, 228)* 创建一个trf文件,将‘游’字存放进去
write_ocr_trainf (Regions1, Image, '游', 'D:/游.trf')
* 加载我们创建的trf文件
read_ocr_trainf_names ('D:/游.trf', CharacterNames, CharacterCount)
* 创建模型
create_ocr_class_mlp (8, 10, 'constant', 'default', CharacterNames,\80, 'none', 10, 42, OCRHandle)
* 训练模型
trainf_ocr_class_mlp (OCRHandle, 'D:/游.trf', 200, 1, 0.01, Error1, ErrorLog1)
* 识别
do_ocr_multi_class_mlp (Regions1, Image, OCRHandle, Class, Confidence)* 显示
disp_message (WindowHandle, Class, 'window', 0, 0, 'red', 'true')

在这里插入图片描述
其他字以此类推

dev_close_window()
**基于自定义中文识别库识别名称
read_image(Image,'C:/Users/Augustine/Desktop/西游记.png')
get_image_size(Image,Width,Height)
dev_open_window(0,0,Width, Height, 'black', WindowHandle)
dev_display(Image)**选取ROI 区域
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
gen_rectangle1(Rectangle,Row1,Column1,Row2,Column2)**抠图显示需要识别的区域
reduce_domain(Image, Rectangle, ImageReduced)**分割出需要识别的区域
rgb1_to_gray(ImageReduced,GrayImage)** 阈值处理
binary_threshold(GrayImage, Region, 'max_separability', 'dark', UsedThreshold)
connection(Region, ConnectedRegions)***********************************************************************************************************
*选取特征区域 "识别 游 字"
select_shape (ConnectedRegions, SelectedRegions, ['row','column'], 'and', [80,190], [170,280])* 膨胀,尽量的将单个字体连接起来
dilation_circle (SelectedRegions, RegionDilation, 2)
* 将各个区域求并集
union1 (RegionDilation, RegionUnion)*抠图
reduce_domain(Image, RegionUnion, ImageReduced1)
* 阈值选择
threshold (ImageReduced1, Regions1, 0, 228)* 创建一个trf文件,将‘游’字存放进去
write_ocr_trainf (Regions1, Image, '游', 'D:/游.trf')
* 加载我们创建的trf文件
read_ocr_trainf_names ('D:/游.trf', CharacterNames, CharacterCount)
* 创建模型
create_ocr_class_mlp (8, 10, 'constant', 'default', CharacterNames,\80, 'none', 10, 42, OCRHandle)
* 训练模型
trainf_ocr_class_mlp (OCRHandle, 'D:/游.trf', 200, 1, 0.01, Error1, ErrorLog1)
* 识别
do_ocr_multi_class_mlp (Regions1, Image, OCRHandle, Class, Confidence)* 显示
disp_message (WindowHandle, Class, 'window', 0, 0, 'red', 'true')************************************************************************************************************
*选取特征区域 "识别 记 字"
select_shape (ConnectedRegions, SelectedRegions1, ['row','column'], 'and', [80,280], [170,360])* 膨胀,尽量的将单个字体连接起来
dilation_circle (SelectedRegions1, RegionDilation1, 4.5)
* 将各个区域求并集
union1 (RegionDilation1, RegionUnion1)*抠图
reduce_domain(Image, RegionUnion1, ImageReduced2)
* 阈值选择
threshold (ImageReduced2, Regions1, 0, 228)* 创建一个trf文件,将‘记’字存放进去
write_ocr_trainf (Regions1, Image, '记', 'D:/记.trf')
* 加载我们创建的trf文件
read_ocr_trainf_names ('D:/记.trf', CharacterNames, CharacterCount)
* 创建模型
create_ocr_class_mlp (8, 10, 'constant', 'default', CharacterNames,\80, 'none', 10, 42, OCRHandle)
* 训练模型
trainf_ocr_class_mlp (OCRHandle, 'D:/记.trf', 200, 1, 0.01, Error1, ErrorLog1)
* 识别
do_ocr_multi_class_mlp (Regions1, Image, OCRHandle, Class, Confidence)* 显示
disp_message (WindowHandle, Class, 'window', 0, 0, 'red', 'true')

参考
https://blog.csdn.net/qq_41440913/article/details/110868580

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

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

相关文章

springboot整合mybatis入门程序

1.准备工作(创建springboot工程、数据库表user、实体类User) 创建数据表: create table user(id int unsigned primary key auto_increment comment ID,name varchar(100) comment 姓名,age tinyint unsigned comment 年龄,gender tinyint unsigned comment 性别, 1…

计算机竞赛 题目:基于大数据的用户画像分析系统 数据分析 开题

文章目录 1 前言2 用户画像分析概述2.1 用户画像构建的相关技术2.2 标签体系2.3 标签优先级 3 实站 - 百货商场用户画像描述与价值分析3.1 数据格式3.2 数据预处理3.3 会员年龄构成3.4 订单占比 消费画像3.5 季度偏好画像3.6 会员用户画像与特征3.6.1 构建会员用户业务特征标签…

工信部教考中心:什么是《研发效能(DevOps)工程师》认证,拿到证书之后有什么作用!(下篇)丨IDCF

拿到证书有什么用? 提高职业竞争力:通过学习认证培训课程可以提升专业技能,了解项目或产品研发全生命周期的核心原则,掌握端到端的研发效能提升方法与实践,包括组织与协作、产品设计与运营、开发与交付、测试与安全、…

信创办公–基于WPS的EXCEL最佳实践系列 (条件格式)

信创办公–基于WPS的EXCEL最佳实践系列 (设置条件格式) 目录 应用背景操作步骤1、选用条件格式1.1 筛选出迟到次数超过3次的数据1.2 筛选出早退次数位于前三的数据1.3 个人加班时长在总体中所占的在的位置 2、删除条件格式2.1 清除规则2.2 管理规则 应用…

铭控传感亮相2023国际物联网展,聚焦“多场景物联感知方案”应用

金秋九月,聚焦IoT基石技术,荟萃最全物联感知企业,齐聚IOTE 2023第20届国际物联网展深圳站。铭控传感携智慧楼宇,数字工厂,智慧消防,智慧泵房等多场景物联感知方案及多品类无线传感器闪亮登场,现…

Docker 基础

一、快速入门: 1.Docker的安装 安装docker引擎 官方网址:Install Docker Engine on CentOS | Docker Docs 朋友们,有坑,千万不要用官方的仓库,就是下面这一步 记得用国内的镜像源: yum-config-manager …

C# 替换字符串最后一个逗号为分号

使用场景,sql语句的insert into table(c1,c2,c3) values (v1,v2,v3),(v1,v2,v3),(v1,v2,v3), 为了提高执行效率,在一个insert into中执行时,在循环中拼接语句,最后一个逗号需要替换为分号才能执行。 public static string Replace…

干洗店软件,洗鞋店收银管理系统小程序app

闪站侠洗衣洗鞋店管理系统是一款专业的洗护管理软件,它集收银系统,会员卡管理系统,财务报表系统等强大功能为一身,系统界面简洁优美,操作直观简单。系统为广大干洗店,洗衣店提供了成本分析,利润分析&#x…

浅谈智能安全配电装置在老年人建筑中的应用

摘要:我国每年因触电伤亡人数非常多,大多数事故是发生在用电设备和配电装置。在电气事故中,无法预料和不可抗拒的事故是比较少的,大量用电事故可采取切实可行措施来预防。本文通过结合老年人建筑的特点和智能安全配电装置的功能&a…

【方法】如何取消ZIP压缩包的密码?

我们知道,在压缩ZIP文件的时候,可以设置“打开密码”来保护压缩包,那后续不需要保护了,不想每次打开压缩包都输一次密码,要如何取消密码呢? 比较常用的方法是先把ZIP压缩包解压后,再压缩成没有…

微服务技术栈-Ribbon负载均衡和Nacos注册中心

文章目录 前言一、Ribbon负载均衡1.LoadBalancerInterceptor(负载均衡拦截器)2.负载均衡策略IRule 二、Nacos注册中心1.Nacos简介2.搭建Nacos注册中心3.服务分级存储模型4.环境隔离5.Nacos与Eureka的区别 总结 前言 在上面那个文章中介绍了微服务架构的…

除静电离子风嘴的工作原理及应用

除静电离子风嘴是一种常见的除静电设备,它的工作原理是通过产生大量的负离子来中和物体表面的静电电荷,从而达到除静电的目的。 除静电离子风嘴内部装有一个电离器,电离器会将空气中的氧气分子或水分子电离成正、负离子。这些带电的离子在空…

2023年地理信息系统与遥感专业就业前景与升学高校排名选择

活动地址:毕业季进击的技术er 地理信息系统(GIS,Geographic Information System),又称“地理信息科学”(Geographic Information Science),是一种具有信息系统空间专业形式的数据管理…

Vulnhub_driftingblues1靶机渗透测试

driftingblues1靶机 信息收集 使用nmap扫描得到目标靶机ip为192.168.78.166,开放80和22端口 web渗透 访问目标网站,在查看网站源代码的时候发现了一条注释的base64加密字符串 对其解密得到了一个目录文件 访问文件发现是一串ook加密的字符串&#xf…

【面试】C/C++面试八股

C/C面试八股 编译过程的四个阶段C和C语言的区别简单介绍一下三大特性多态的实现原理虚函数的构成原理虚函数的调用原理虚表指针在什么地方进行初始化的?构造函数为什么不能是虚函数为什么建议将析构函数设为虚函数虚函数和纯虚函数的区别抽象类类对象的对象模型内存…

用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告

本篇文章将介绍如何使用开源的测试报告生成框架 Allure 生成规范、格式统一、美观的测试报告。 通过这篇文章的介绍,你将能够: 将 Allure 与 Pytest 测试框架相结合; 如何定制化测试报告内容 执行测试之后,生成 Allure 格式的测…

AutoGen - 多个Agent开发LLM应用的框架

文章目录 关于安装使用关于 Enable Next-Gen Large Language Model Applications 用多个Agent开发LLM应用的框架,这些agent可相互交流以解决任务。 官网:https://microsoft.github.io/autogen/github : http://github.com/microsoft/autogendiscord : https://discord.com/i…

面试官必问的分布式锁面试题,你答得上来吗?

一、面试聊聊-分布式锁,如何回答? 要分析分布式锁这个问题,我们根据黄金圈法则来分析 黄金圈法则是由美国营销顾问西蒙斯涅克(Simon Sinek)提出的一种思维模型,用于帮助人们更好地理解和传达信息。黄金圈法…

自定义类型:结构体,枚举,联合

目录 前言 一、结构体 1.构体的声明 1.1 结构的基础知识 1.2 结构的声明 1.3 特殊的声明 1.4 结构的自引用 1.5 结构体变量的定义和初始化 1.6 结构体内存对齐 1.7 修改默认对齐数 2. 位段 2.1 什么是位段 2.2 位段的内存分配 2.3 位段的跨平台问题 2.4 位段的应…

网络基础知识面试题1

VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)