halcon粘连字符分割_机器视觉—字符识别之粘连字符分割识别
粘连字符的分割有很多种方法:
第一种方法:利用阈值法提取联通区域,再利用形态学分离字符;
第二种方法:每个字符定义一个感兴趣区域;
第三种方法: 计算区域每列像素数目,由于不同字符之间连接部分非常狭窄,求取每列像素的全局最小值;
等等。其中第一种方法最为常见,也是本文介绍的方法。
粘连字符分割识别
本次采用halcon自带的分类器文件
一般用于识别数字和字符,以及少数特殊字符
字符库的使用望文生义即可
Document文档字符、DotPrint点阵字符、Industrial工业字符等
待识别原图
图中数字俩俩连在一起
根据直方图阈值法阈值分割结果
填充孔洞后
利用矩形元素在垂直方向开运算
此步骤为关键一步
此时已分离单个字符
利用halcon自带字符库
最终识别结果
核心程序
*(1)字符分割
*关闭更新
dev_update_window ('off')
*读取图像
read_image (Bottle, 'bottle2.png')
*获得图像大小
get_image_size (Bottle, Width, Height)
*关闭窗口
dev_close_window ()
*打开一个图像大小两倍的窗口
dev_open_window (0, 0, 2*Width, 2*Height, 'black', WindowHandle)
set_display_font (WindowHandle, 20, 'mono', 'true', 'false')
dev_display (Bottle)
disp_continue_message (WindowHandle, 'black', 'true')
*全局阈值处理,获得区域
threshold (Bottle, RawSegmentation, 0, 95)
*根据形状特征填充孔洞
fill_up_shape (RawSegmentation, RemovedNoise, 'area', 1, 5)
*利用圆形结构元素执行开运算
opening_circle (RemovedNoise, ThickStructures, 2.5)
dev_display (Bottle)
*填充孔洞
fill_up (ThickStructures, Solid)
*利用矩形结构元素执行开运算。矩形宽设为1,高为7,相当于低于7的连接被截断
opening_rectangle1 (Solid, Cut, 1, 7)
*计算连通区域
connection (Cut, ConnectedPatterns)
*计算区域交集
intersection (ConnectedPatterns, ThickStructures,NumberCandidates)
*根据区域面积进行选择
select_shape (NumberCandidates, Numbers, 'area', 'and', 300, 9999)
*区域排序
sort_region (Numbers, FinalNumbers, 'first_point', 'true', 'column')
*(2)读取数字
*读取OCR分类器(多层感知器)
read_ocr_class_mlp ('Industrial_0-9A-Z_NoRej.omc', OCRHandle)
*使用分类器进行字符分类
do_ocr_multi_class_mlp (FinalNumbers, Bottle, OCRHandle, RecNum, Confidence)
*求取字符区域中心坐标及面积
area_center (FinalNumbers, Area, Row, Column)
set_display_font (WindowHandle, 27, 'mono', 'true', 'false')
*循环显示读取得到的数字
for i := 0 to |RecNum| -1 by 1
*显示结果
disp_message (WindowHandle, RecNum[i], 'image', 80, Column[i]-3, 'green', 'false')
endfor
*清除分类器
clear_ocr_class_mlp (OCRHandle)
dev_update_window ('off')
本文转载·交流学习
halcon粘连字符分割_机器视觉—字符识别之粘连字符分割识别相关推荐
- 语义分割和实例分割_一文读懂语义分割与实例分割
以人工智能为导向的现代计算机视觉技术,在过去的十年中发生了巨大的变化.今天,它被广泛用于图像分类.人脸识别.物体检测.视频分析以及机器人及自动驾驶汽车中的图像处理等领域.图像分割技术是目前预测图像领域 ...
- 0宽字符加密_艺术鬼才!Unicode 字符还能这么玩?
上周的时候,朋友圈的直升飞机不知道为什么就火了,很多朋友开着各种花式飞机带着起飞. 还没来得及了解咋回事来着,这个直升飞机就 到的微博热搜. 后面越来越多人开来他们的直升飞机,盘旋在朋友圈上方.于是很 ...
- python生成字符画_使用Python生成ASCII字符画
使用Python生成ASCII字符画 在很多的网站主页中或者程序的注释中会有一些好看的字符注释画.显得很牛逼的样子 例如: 知乎 _____ _____ _____ _____ /\ \ /\ \ / ...
- java抖音字符视频_抖音流行的字符视频如何实现
前几天,有个朋友给我分享了一个抖音短视频链接,是以代古拉k跳舞视频为原型的字符视频,朋友问我:"这个你知道怎么做吗?". 我们都知道视频是由一帧一帧的静态图片组合而成的,所以当我们 ...
- mysql中的宽字符注入_深入理解Mysql宽字符注入
之前记录过一篇 写的不够详细 概念 宽字节是相对于ascII这样单字节而言的:像GB2312.GBK.GB18030.BIG5.Shift_JIS等这些都是常说的宽字节,实际上只有两字节 GBK是一种 ...
- java修改默认字符编码_设置默认的Java字符编码?
如何以编程方式正确设置JVM(1.5.x)使用的默认字符编码? 我已经读过-Dfile.encoding =以前是以往的方式去为旧的JVM -我没有那么奢侈的原因,我不会进入. 我努力了: Sys ...
- enet分割_论文阅读 | CVPR 2016 | 语义分割论文: ENet
论文源址:https://arxiv.org/abs/1606.02147 tensorflow github: https://github.com/kwotsin/TensorFlow-ENet ...
- python实现语义分割_如何用PyTorch进行语义分割?一文搞定
很久没给大家带来教程资源啦. 正值PyTorch 1.7更新,那么我们这次便给大家带来一个PyTorch简单实用的教程资源:用PyTorch进行语义分割. 图源:stanford 该教程是基于2020 ...
- 关于python字符编码_关于python文件的字符编码
# -*- coding: utf-8 -*-字符编码是啥? 在弄清楚字符编码是啥之前我们要先考虑一个问题.如果计算机最基础的就是0和1,那么他们是如何识别我们输入的英文字母和数字的. 下面是数学知识 ...
最新文章
- nginx正向代理和反正代理区别
- IDEA---Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
- 将Windows下的文件同步到Linux下
- macappstore登不上去_武功山观星归来,缆车登顶,不徒步攻略!
- 56 SD配置-科目分配-定义物料科目设置组
- 简单的html5级联下拉菜单,什么是html5纯CSS的三级联动级联菜单
- c# winform WebBrower 控件中右键获取控件坐标
- LINUX第2天——基础操作
- C++之生成器(builder)模式
- 决策树后剪枝算法(二)错误率降低剪枝REP
- 韦根w34是多少位_韦根协议格式
- 图像处理之前景检测(三)之码本(codebook)(主要为代码升级)
- Linux--DNS域名解析
- 中国首次包揽2021年国际信息学奥赛(IOI 2021)前四名
- 动态本体 palantir
- Tableau筛选器:仪表板中运用地图做筛选器
- 转-iOS- GPUImage README.md
- sql2000服务器的注册码,安装完成后如何找回SQL Server实例安装时的序列号
- 计算机检测不出移动硬盘,电脑不显示移动硬盘怎么办,检测不到移动硬盘的原因...
- PHP开发环境搭建和phpinfo函数