粘连字符的分割有很多种方法:

第一种方法:利用阈值法提取联通区域,再利用形态学分离字符;

第二种方法:每个字符定义一个感兴趣区域;

第三种方法: 计算区域每列像素数目,由于不同字符之间连接部分非常狭窄,求取每列像素的全局最小值;

等等。其中第一种方法最为常见,也是本文介绍的方法。

粘连字符分割识别

本次采用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粘连字符分割_机器视觉—字符识别之粘连字符分割识别相关推荐

  1. 语义分割和实例分割_一文读懂语义分割与实例分割

    以人工智能为导向的现代计算机视觉技术,在过去的十年中发生了巨大的变化.今天,它被广泛用于图像分类.人脸识别.物体检测.视频分析以及机器人及自动驾驶汽车中的图像处理等领域.图像分割技术是目前预测图像领域 ...

  2. 0宽字符加密_艺术鬼才!Unicode 字符还能这么玩?

    上周的时候,朋友圈的直升飞机不知道为什么就火了,很多朋友开着各种花式飞机带着起飞. 还没来得及了解咋回事来着,这个直升飞机就 到的微博热搜. 后面越来越多人开来他们的直升飞机,盘旋在朋友圈上方.于是很 ...

  3. python生成字符画_使用Python生成ASCII字符画

    使用Python生成ASCII字符画 在很多的网站主页中或者程序的注释中会有一些好看的字符注释画.显得很牛逼的样子 例如: 知乎 _____ _____ _____ _____ /\ \ /\ \ / ...

  4. java抖音字符视频_抖音流行的字符视频如何实现

    前几天,有个朋友给我分享了一个抖音短视频链接,是以代古拉k跳舞视频为原型的字符视频,朋友问我:"这个你知道怎么做吗?". 我们都知道视频是由一帧一帧的静态图片组合而成的,所以当我们 ...

  5. mysql中的宽字符注入_深入理解Mysql宽字符注入

    之前记录过一篇 写的不够详细 概念 宽字节是相对于ascII这样单字节而言的:像GB2312.GBK.GB18030.BIG5.Shift_JIS等这些都是常说的宽字节,实际上只有两字节 GBK是一种 ...

  6. java修改默认字符编码_设置默认的Java字符编码?

    如何以编程方式正确设置JVM(1.5.x)使用​​的默认字符编码? 我已经读过-Dfile.encoding =以前是以往的方式去为旧的JVM -我没有那么奢侈的原因,我不会进入. 我努力了: Sys ...

  7. enet分割_论文阅读 | CVPR 2016 | 语义分割论文: ENet

    论文源址:https://arxiv.org/abs/1606.02147 tensorflow github: https://github.com/kwotsin/TensorFlow-ENet ...

  8. python实现语义分割_如何用PyTorch进行语义分割?一文搞定

    很久没给大家带来教程资源啦. 正值PyTorch 1.7更新,那么我们这次便给大家带来一个PyTorch简单实用的教程资源:用PyTorch进行语义分割. 图源:stanford 该教程是基于2020 ...

  9. 关于python字符编码_关于python文件的字符编码

    # -*- coding: utf-8 -*-字符编码是啥? 在弄清楚字符编码是啥之前我们要先考虑一个问题.如果计算机最基础的就是0和1,那么他们是如何识别我们输入的英文字母和数字的. 下面是数学知识 ...

最新文章

  1. nginx正向代理和反正代理区别
  2. IDEA---Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
  3. 将Windows下的文件同步到Linux下
  4. macappstore登不上去_武功山观星归来,缆车登顶,不徒步攻略!
  5. 56 SD配置-科目分配-定义物料科目设置组
  6. 简单的html5级联下拉菜单,什么是html5纯CSS的三级联动级联菜单
  7. c# winform WebBrower 控件中右键获取控件坐标
  8. LINUX第2天——基础操作
  9. C++之生成器(builder)模式
  10. 决策树后剪枝算法(二)错误率降低剪枝REP
  11. 韦根w34是多少位_韦根协议格式
  12. 图像处理之前景检测(三)之码本(codebook)(主要为代码升级)
  13. Linux--DNS域名解析
  14. 中国首次包揽2021年国际信息学奥赛(IOI 2021)前四名
  15. 动态本体 palantir
  16. Tableau筛选器:仪表板中运用地图做筛选器
  17. 转-iOS- GPUImage README.md
  18. sql2000服务器的注册码,安装完成后如何找回SQL Server实例安装时的序列号
  19. 计算机检测不出移动硬盘,电脑不显示移动硬盘怎么办,检测不到移动硬盘的原因...
  20. PHP开发环境搭建和phpinfo函数

热门文章

  1. Out of Distribution(OoD)检测相关方法综述
  2. GraphIA: An In-situ Accelerator for Large-scale Graph Processing
  3. pfSense高可用性集群设置指南
  4. Javaweb大作业网页制作开发过程,首页部分网页设计结果
  5. Presentation–Introduction
  6. TestLink教程:一份完整指南
  7. ORACLE 11g RAC 集群的管理与维护(3) —— crsctl 命令之(三) :管理 crs
  8. CSS实现渐变圆角边框
  9. 让WordPress更安全
  10. go语言ast语法解析