halcon 数字识别

news2024/11/16 13:23:18

文章目录

  • 素材
  • 交互选取区域
  • 阈值分割
  • 特征提取
  • 识别字符
  • 显示
  • 全部代码

素材

请添加图片描述

dev_get_window(WindowHandle)
**读取图像
read_image(Image,'C:/Users/Augustine/Desktop/1.png')
**把图像转正,镜像方式
mirror_image(Image,ImageMirror,'row')
mirror_image(ImageMirror,ImageMirror1,'column')

在这里插入图片描述

交互选取区域

**交互式把需要识别的区域找出来
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
gen_rectangle1(Rectangle,Row1,Column1,Row2,Column2)
**显示需要识别的区域图像
reduce_domain(ImageMirror1, Rectangle, ImageReduced)

在这里插入图片描述

阈值分割

**分割出需要识别的区域
rgb1_to_gray(ImageReduced,GrayImage)
*阈值处理
binary_threshold(GrayImage, Region, 'max_separability', 'dark', UsedThreshold)
connection(Region,ConnectedRegions)

特征提取

通过行和列来获取数字的值
在这里插入图片描述用特征直方图获取特征
在这里插入图片描述

**分割出需要识别的区域
rgb1_to_gray(ImageReduced,GrayImage)
*阈值处理
binary_threshold(GrayImage, Region, 'max_separability', 'dark', UsedThreshold)
connection(Region,ConnectedRegions)
** 把需要识别的字符显出出来
select_shape (ConnectedRegions, SelectedRegions, ['row','column'], 'and', [276,260], [310,310])

在这里插入图片描述

识别字符

** 把需要识别的字符显出出来
select_shape (ConnectedRegions, SelectedRegions, ['row','column'], 'and', [276,260], [310,310])
**识别字符,加载识别字符库句柄,使用工业字符
read_ocr_class_mlp('Industrial_0-9_NoRej.omc',OCRHandle)
**执行字符识别
do_ocr_multi_class_mlp(SelectedRegions,GrayImage,OCRHandle,Class,Confidence)

在这里插入图片描述

显示

**展示结果
smallest_rectangle1(SelectedRegions,Row11,Column11,Row21,Column21)
for Index:=1 to Number by 1
    disp_message(WindowHandle, Class[Index - 1], 'image', Row21[Index -1 ], Column11[Index -1]+20, 'red', 'true')
endfor

全部代码

dev_get_window(WindowHandle)
**读取图像
read_image(Image,'C:/Users/Augustine/Desktop/1.png')
**把图像转正,镜像方式
mirror_image(Image,ImageMirror,'row')
mirror_image(ImageMirror,ImageMirror1,'column')
**交互式把需要识别的区域找出来
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
gen_rectangle1(Rectangle,Row1,Column1,Row2,Column2)
**显示需要识别的区域图像
reduce_domain(ImageMirror1, 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', [276,260], [310,310])
**获取筛选出来的字符数量
count_obj(SelectedRegions,Number)
**识别字符,加载识别字符库句柄,使用工业字符
read_ocr_class_mlp('Industrial_0-9_NoRej.omc',OCRHandle)
**执行字符识别
do_ocr_multi_class_mlp(SelectedRegions,GrayImage,OCRHandle,Class,Confidence)
**展示结果
smallest_rectangle1(SelectedRegions,Row11,Column11,Row21,Column21)
for Index:=1 to Number by 1
    disp_message(WindowHandle, Class[Index - 1], 'image', Row21[Index -1 ], Column11[Index -1]+20, 'red', 'true')
endfor

在这里插入图片描述

注意:

在这里插入图片描述

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

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

相关文章

Python 无废话-基础知识面向对象编程详解

类定义 如何理解万物皆对象? 生活中一些事物,动物(可爱的小狗、调皮的小猫)、交通工具(比亚迪U8汽车、飞机)、人(学生、教师)…… 这些对象都有着独特或共性的属性和方法来描述其…

Android:实现Camera前后双摄

效果展示 一.概述 本博文讲解如何实现手机前后两颗摄像头同时预览并显示 我之前博文《OpenGLES:GLSurfaceView实现Android Camera预览》对单颗摄像头预览做过详细讲解,而前后双摄实现原理其实也并不复杂,粗糙点说就是把单摄像头预览流程写两…

Pytorch之MobileNetV3图像分类

💂 个人主页:风间琉璃🤟 版权: 本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 前言 由于传统卷积神经网络, 内存需求大、 运算量大导致无法在移动…

多线程JUC

文章目录 多线程一.什么是多线程二.多线程的两个概念三.线程的实现方式四.常见的成员方法五.线程安全的问题六.死锁七.生产者和消费者 多线程 一.什么是多线程 进程:是程序的基本执行实体 理解:每一个运行的软件就是一个进程 线程:是操做系统能够进行运算调度的最小单位,它…

Halcon 从基础到精通-02- 开发基于HALCON的应用

HALCON的应用通过HDevelop应用来构建原型。HDevelop的开发主要有3种形式。 Start from Scratch: 手动通过脚本,把HDevelop的代码转化为一般的编程语言。如,上一节提到,其实,每个operators,也许并不一样,需要依据HALC…

开发工具箱 —— it-tools

文章目录 开发工具箱 —— it-tools安装访问效果 开发工具箱 —— it-tools 安装 docker 安装教程:在 CentOs7 中安装宝塔面板和 Docker(包括MySQL,Redis) docker 安装命令 docker run -d --name it-tools --restart unless-st…

[unity]保存文件的路径设置

序 比如,序列化了一个数组,保存到磁盘上。 原来的路径是"D://test.bin",能跑,但是有点问题:序列化出来的文件和原项目离的太远,不好管理。 要是能保存到unity工程的文件夹里就好了。这个路径该…

c#设计模式-行为型模式 之 责任链模式

🚀简介 又名职责链模式,为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对 象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为…

学员自述:上位机编程培训经历

、大家好,我是华山编程培训中心的学员 之前是从事PLC编程工作的,在C#语言这一块是零基础,之前也尝试过自学,但对于类啊继承啊堆栈这些基本的概念始终是无法理解,直到看到华山培训的视频,并参与朱老师的直播…

番外--命令操作

------------- task00: 00:常用文件目录类命令1-18.(pwd; cd;ls; more;less;head;tail; mkdir;rmdir;cp;mv;rm&#xff1b…

pandas 笔记:asfreq

1 方法介绍 asfreq 是一个在 Pandas 时间序列数据分析中常用的方法。这个方法主要用于改变时间序列的频率。asfreq 可以帮助我们将一个时间序列从一个频率转换为另一个频率 2 基本用法 DataFrame.asfreq(freq, methodNone, howNone, normalizeFalse, fill_valueNone)3 参数说…

实验室超声波(提取)萃取技术有哪些实际的应用?

梵英超声(fanyingsonic)实验室超声波清洗机 超声波具有“空化现象”,“机械振动”以及“热效应”等特性。“空化现象”可产生瞬间几千个压力,使提取介质的微小气泡压缩、爆裂、破碎被提取原料和细胞壁,加速天然药用成分的溶出,“机…

微服务技术栈-Docker应用部署

文章目录 前言一、数据卷二、Docker 应用部署1、MySQL部署2、Tomcat部署3、Nginx部署4、Redis部署5、Kafka部署 总结 前言 之前文章讲到过,docker运行程序的过程就是去仓库把镜像拉到本地,然后用一条命令把镜像运行起来变成容器,接下来我们将…

虫情测报灯——一种农业虫情防治工具

KH-CQPest虫情测报灯是一种农业虫情防治工具,它可以通过光源或药物诱虫的方式,吸引害虫撞击撞击屏,通过远红外自动处理技术,无公害杀死害虫的同时保存害虫标本,利用高像素的摄像头拍照、农业四情测报平台识别害虫&…

简单两步实现离线部署ChatGPT,ChatGPT平替版,无需GPU离线搭建ChatGPT

文末附主程序安装包和大模型参数文件~ 演示效果如下图所示: 一、使用方法 软件主要分为两个部分:GPT4ALL软件主体(主程序)模型参数(离线模型),如果使用API Key的话则不需要下载模型参数。 可以…

家居家纺经营配送小程序商城的作用是什么

家居家纺产品是每个家庭都必备的,无论商场还是小摊贩,市场中经营商家数量都比较多,而随着互联网电商发展,在实际经营中,传统线下商家也面临多个难题: 首先就是获客问题,线下渠道推广宣传方式单…

深刻解析数据库技术的要点以及应对策略 (软件设计师笔记)

😀前言 在信息化的时代背景下,数据已经成为了推动各行各业发展的核心要素之一。数据的储存、管理、维护、和获取变得尤为关键,确保信息的高效流通和决策的科学性。数据库技术,正是在这一背景下发挥着举足轻重的作用,它…

源码上分析Vue2和Vue3的响应式原理

本文节选自我的博客:源码上分析Vue2和Vue3的响应式原理 💖 作者简介:大家好,我是MilesChen,偏前端的全栈开发者。📝 CSDN主页:爱吃糖的猫🔥📣 我的博客:爱吃糖…

基于帝国主义竞争优化的BP神经网络(分类应用) - 附代码

基于帝国主义竞争优化的BP神经网络(分类应用) - 附代码 文章目录 基于帝国主义竞争优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.帝国主义竞争优化BP神经网络3.1 BP神经网络参数设置3.2 帝国主义竞争算…

【BI看板】Superset2.0+图表二次开发初探

Superset图表功能也很丰富了,但一些个性化的定制需求就需要二次开发了。网上二开的superset版本大多是0.xxx版本的或1.5xxx版本,本次用的是2.xxx。 源码相关说明 源码目录 superset-2.0\superset-frontend\plugins\plugin-chart-echarts 插件相关资料 官…