機器視覺Halcon檢測動態想要的特征區域識別字符

2023-10-10 21:40

本文主要是介绍機器視覺Halcon檢測動態想要的特征區域識別字符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

光學字符識別是机器视觉领域非常重要的一个应用。机器视觉是集光学、机电和计算机三个领域的一门不算新的技术。此例子用的CNN神經網絡算子識別,調用的訓練庫是系統HDevelop自帶的
識別的圖片為電錶的屏幕截圖,用於提取電錶中間的一大串數字
要識別的圖片:
在这里插入图片描述

識別過程
1、閾值處理
mean_image(Image,Mean,15,15)
dyn_threshold(Image,Mean,Region,5,‘dark’)
dev_display (Region)
圖片效果:
在这里插入图片描述
2、執行代碼:
*連接字符
closing_rectangle1 (Region, RegionClosing1, 1, 5)
在这里插入图片描述

3、裁剪不要的,將不要的其他區域剪小
opening_circle (RegionClosing1, GuoRegion,2.2)
在这里插入图片描述

4、 *篩選區域
在調用select_shape 之前必須要調用連通區域方法connection 才有效果,切記
*计算区域的连通组件
connection (GuoRegion, ConnPatterns)
在这里插入图片描述

5、篩選區域
select_shape (ConnPatterns, shapeRegion, ‘area’, ‘and’, 260, 99999)
在这里插入图片描述
6、去掉頭頂的紅杠
*去掉圖片頭頂的紅色橫杠
select_shape (shapeRegion, shapeRegion2, ‘width’, ‘and’, 10, 100)
在这里插入图片描述

7、求交集,與第一步處理后的區域求交集
*求交集 以區分的顏色模塊在前,原字符再后,才能單獨著色交集后的單體字符
intersection (shapeRegion2, Region, RegionIntersection)
dev_display(RegionIntersection)
在这里插入图片描述

8、最後用cnn卷積神經網絡識別
*排序
sort_region (RegionIntersection, SortedRegions, ‘character’, ‘true’, ‘row’)

dev_set_draw (‘margin’)
dev_set_shape (‘rectangle1’)
dev_display (SortedRegions)

shape_trans (SortedRegions, RegionTrans, ‘rectangle1’)
area_center (RegionTrans, Area, Row, Column)
MeanRow := mean(Row)
FontName := ‘Universal_Rej’
count_obj (SortedRegions, Number)
read_ocr_class_cnn (FontName, OCRHandle)
for I := 1 to Number by 1
select_obj (SortedRegions, ObjectSelected, I)
do_ocr_single_class_cnn (ObjectSelected, Image, OCRHandle, 1, Class, Confidence)
dev_disp_text (Class, ‘image’, MeanRow+30, Column[I - 1]-5, ‘green’, ‘box’, ‘false’)
endfor

識別結果:
在这里插入图片描述

Halcon HDevelop完整代碼:

dev_update_off()
read_image(Image,'d:/Desktop/vision/DBIAO01.png')
get_image_size(Image,Width,Height)dev_close_window ()
dev_open_window (0, 0, Width*2, Height*2, 'black', WindowHandle)
set_display_font (WindowHandle, 30, 'mono', 'true', 'false')
dev_display (Image)dev_set_line_width (2)mean_image(Image,Mean,15,15)
dyn_threshold(Image,Mean,Region,5,'dark')
dev_display (Region)*clip_region (Region, RawSegmentation, 74.8873, 58.6812, 132.943, 312.194) 
*select_shape (Region, SelectedRegions, 'height', 'and',170,99999)
*gen_rectangle1 (ROI_0, 73.2924, 55.8125, 135.814, 312.938)*連接字符,以9度閉合畫圓圈
*closing_circle (CharCandidates, RegionClosing1, 1.5)
closing_rectangle1 (Region, RegionClosing1, 1, 5)
*去除不要的
opening_circle (RegionClosing1, GuoRegion,2.2)*  fill_up (RegionClosing1, Solid)
* opening_rectangle1 (Solid, Cut, 5, 2)*计算区域的连通组件connection (GuoRegion, ConnPatterns)*篩選區域select_shape (ConnPatterns, shapeRegion, 'area', 'and', 260, 99999)*去掉圖片頭頂的紅色橫杠select_shape (shapeRegion, shapeRegion2, 'width', 'and', 10, 100)*求交集 以區分的顏色模塊在前,原字符再后,才能單獨著色交集后的單體字符
intersection (shapeRegion2, Region, RegionIntersection) 
dev_display(RegionIntersection)*排序
sort_region (RegionIntersection, SortedRegions, 'character', 'true', 'row') dev_set_draw ('margin')
dev_set_shape ('rectangle1')
dev_display (SortedRegions)shape_trans (SortedRegions, RegionTrans, 'rectangle1')
area_center (RegionTrans, Area, Row, Column)
MeanRow := mean(Row)
FontName := 'Universal_Rej'
count_obj (SortedRegions, Number)
read_ocr_class_cnn (FontName, OCRHandle)
for I := 1 to Number by 1select_obj (SortedRegions, ObjectSelected, I)do_ocr_single_class_cnn (ObjectSelected, Image, OCRHandle, 1, Class, Confidence)dev_disp_text (Class, 'image', MeanRow+30, Column[I - 1]-5, 'green', 'box', 'false')
endfor

这篇关于機器視覺Halcon檢測動態想要的特征區域識別字符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/183269

相关文章

OmniGlue论文详解(特征匹配)

OmniGlue论文详解(特征匹配) 摘要1. 引言2. 相关工作2.1. 广义局部特征匹配2.2. 稀疏可学习匹配2.3. 半稠密可学习匹配2.4. 与其他图像表示匹配 3. OmniGlue3.1. 模型概述3.2. OmniGlue 细节3.2.1. 特征提取3.2.2. 利用DINOv2构建图形。3.2.3. 信息传播与新的指导3.2.4. 匹配层和损失函数3.2.5. 与Super

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

如何将一个文件里不包含某个字符的行输出到另一个文件?

第一种: grep -v 'string' filename > newfilenamegrep -v 'string' filename >> newfilename 第二种: sed -n '/string/!'p filename > newfilenamesed -n '/string/!'p filename >> newfilename

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通

【Python 千题 —— 算法篇】字符统计

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目背景 在编程中,对字符串的字符统计是一个常见任务。这在文本处理、数据分析、词频统计、自然语言处理等领域有广泛应用。无论是统计字母出现的频率,还是分析不同字符类型的数量,字符串字符统计都是非常有用的技术。 字符统

C语言进阶【1】--字符函数和字符串函数【1】

本章概述 字符分类函数字符转换函数strlen的使用和模拟实现strcpy的使用和模拟实现strcat的使用和模拟实现strcmp的使用和模拟实现彩蛋时刻!!! 字符分类函数 字符: 这个概念,我们在以前的文章中讲过了。我们键盘输入的信息都是字符。字符大体可以分为两类——单个字符,字符串。而单个字符又可以进行分类——字母字符,数字字符,特殊字符和不可见字符。进行思维图展示: 在日

想要从OPPO手机恢复数据?免费OPPO照片视频恢复软件

此实用程序可帮助那些寻找以下内容的用户: 在OPPO手机中格式化存储卡后可以恢复图片吗?我删除了 OPPO上的视频和图片,我感觉很糟糕,因为里面有我在拉斯维加斯拍摄的视频和照片 免费OPPO照片视频恢复软件 您能恢复OPPO上已删除的照片吗?我不小心格式化了OPPO SD 卡,有希望恢复已删除的照片吗? 救命!我在清理时删除了我的照片,我的问题是是否有任何免费软件可以从OPPO中恢复已

centOS7.0设置默认进入字符界面

刚装的,带有x window桌面,每次都是进的桌面,想改成自动进命令行的。记得以前是修改 /etc/inittab 但是这个版本inittab里的内容不一样了没有id:x:initdefault这一行而且我手动加上也不管用,这个centos 7下 /etc/inittab 的内容 Targets systemd uses targets which serve a simil

HalconDotNet中的图像特征与提取详解

文章目录 简介一、边缘特征提取二、角点特征提取三、区域特征提取四、纹理特征提取五、形状特征提取 简介   图像特征提取是图像处理中的一个重要步骤,用于从图像中提取有意义的特征,以便进行进一步的分析和处理。HalconDotNet提供了多种图像特征提取方法,每种方法都有其特定的应用场景和优缺点。 一、边缘特征提取   边缘特征提取是图像处理中最基本的特征提取方法之一,通过检

Python字符编码及应用

字符集概念 字符集就是一套文字符号及其编码的描述。从第一个计算机字符集ASCII开始,为了处理不同的文字,发明过几百种字符集,例如ASCII、USC、GBK、BIG5等,这些不同的字符集从收录到编码都各不相同。在编程中出现比较严重的问题是字符乱码。 几个概念 位:计算机的最小单位二进制中的一位,用二进制的0,1表示。 字节:八位组成一个字节。(位与字节有对应关系) 字符:我们肉眼可见的文字与符号。