腐蚀膨胀预处理

devtools/2024/10/25 14:27:10/

腐蚀:通过减少前景对象(例如白色字符)的边缘,腐蚀可以用来减小或消除细小的干扰线。如果干扰线较细,腐蚀可以有效地“消除”这些线条,同时保留较粗的字符。

膨胀:在腐蚀之后,膨胀可以用来恢复字符的完整性,因为腐蚀可能会削弱字符的部分结构。膨胀能够扩展字符的边界,使其恢复到原来的粗细。

import cv2
import numpy as np# 读取验证码图片
img = cv2.imread('captcha.png', 0)# 定义腐蚀和膨胀的内核大小
kernel = np.ones((3, 3), np.uint8)# 先腐蚀再膨胀
eroded = cv2.erode(img, kernel, iterations=1)
result = cv2.dilate(eroded, kernel, iterations=1)# 显示原图和处理后的图像
cv2.imshow('Original', img)
cv2.imshow('Processed', result)cv2.waitKey(0)
cv2.destroyAllWindows()

可以根据实际情况调整腐蚀和膨胀的内核大小(如 kernel),以及迭代次数。测试不同的参数可以达到最佳效果。如果干扰线较粗,可能需要更大内核或增加腐蚀的次数。

腐蚀和膨胀是形态学图像处理中的两种基本操作,它们主要用于处理二值图像(黑白图像),也可以用于灰度图像。它们背后的原理基于集合论,并应用一个称为结构元素的矩阵对图像进行操作。以下是它们的工作原理:

1. 腐蚀(Erosion)

腐蚀的作用是“缩小”前景(通常是白色像素)的区域,使物体边界收缩。每个像素的值会变成它周围像素的最小值(最“黑”的像素),这意味着如果某个像素周围有黑色像素,腐蚀操作会将该像素也变成黑色。

原理:腐蚀操作滑动一个结构元素(通常是一个小的正方形或圆形内核)遍历图像。当结构元素完全放置在前景上时,中心像素保持前景值,否则被侵蚀变为背景(黑色)。这意味着干扰线(通常较细)更容易被消除,因为它们的面积小,很快就会变成背景。

效果:腐蚀用于移除细小的物体(如干扰线),以及减少前景物体的厚度。

2. 膨胀(Dilation)

膨胀是腐蚀的逆过程,它的作用是“扩展”前景区域,使物体边界扩张。每个像素的值会变成它周围像素的最大值(最“白”的像素),这意味着如果某个像素周围有白色像素,膨胀操作会将该像素也变成白色。

原理:膨胀操作滑动结构元素遍历图像。当结构元素的任何部分接触前景时,它将使中心像素变为前景(白色)。这可以让前景(如字符)变得更厚和完整。

效果:膨胀常用于恢复经过腐蚀后的前景,填充图像中的小洞或连接断开的部分。

3. 腐蚀和膨胀的结合——开运算(Opening)

开运算是先腐蚀后膨胀的组合,通常用于消除图像中的小对象或噪声。

原理:开运算可以有效去除细小的干扰线,腐蚀会先去掉细线,随后膨胀操作会确保字符的主要结构不会被过度削弱。
总结

腐蚀:减小前景物体,去除细小噪声。

膨胀:增大前景物体,填补小孔洞。

通过先腐蚀再膨胀,细小的干扰线可以被消除,同时保持字符的主要轮廓完整。这种方法尤其适用于验证码的预处理,以增强字符识别的准确性。

在这里插入图片描述

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


http://www.ppmy.cn/devtools/128701.html

相关文章

如何按照最左原则和B+树设计的联合索引

在数据库的联合索引中,最左原则(Leftmost Prefix Rule)指的是:当查询使用联合索引时,查询必须从索引的最左侧列开始才能有效利用索引。这是因为联合索引按列的顺序进行存储,如果跳过最左列,查询…

MySQL 主从复制原理和配置流程

目录 一:MySQL 主从复制介绍二: 异步单线程主从复制1. 主服务器配置流程2. 从服务器配置 二:异步多线程主从复制1. 配置流程 一:MySQL 主从复制介绍 MySQL 主从复制是MySQL官方提供的一种数据备份容灾和负载均衡技术。 数据容灾&…

3D看车如何实现?全面解析其优势与特点

3D看车,作为汽车展示领域的一次革新,巧妙融合了三维建模与虚拟现实技术,为消费者带来前所未有的真实、立体观车体验。 一、3D看车的核心实现技术 三维建模技术: 通过高精度三维建模,精确复制汽车每一处细节&#xff…

【工具】新手礼包之git相关环境包括中文的一套流程{收集和整理},gitlab的使用

【工具】新手礼包之git相关环境包括中文的一套流程{收集和整理} git Git 详细安装教程(详解 Git 安装过程的每一个步骤) TortoiseGit 【TortoiseGit】TortoiseGit安装和配置详细说明

仕考网:2025年注册会计师考试报名

打算参加25年注册会计师的朋友们你真的做好准备了吗?如果是新手一定要提前了解这些! 1、时间节点安排: 报名时间:2025年4月8日8点-4月30日20点。 交费时间:2025年6月13日8点-6月28日20点。 准考证打印时间: 考试时间:2025年8月23日-25日。 2、考试科目难度 …

【MAC OS】rocketmq搭建可视化工具rocketmq-dashboard

【MAC OS】rocketmq搭建可视化工具rocketmq-dashboard 文章目录 【MAC OS】rocketmq搭建可视化工具rocketmq-dashboard一、安装1.安装dashboard2.将应用编译为可运行的 jar 包3.关闭dashborad 二、遇到的问题三、参考博客 一、安装 1.安装dashboard 官网:https://…

sortablejs(前端拖拽排序的实现)

源文档&#xff1a;sortablejs - npm 安装 npm install sortablejs --save 引入项目 import Sortable from sortablejs; 使用示例 <template><ul id"items"><li>item 1</li><li>item 2</li><li>item 3</li>&l…

新手向-C接口调用dbus

工作需要用c接口调用dbus&#xff0c;在这里写篇博客记录一下。 1. 方案比较 用C接口调用dbus一般来说有3种方案&#xff0c;分别是libdbus、GDBus&#xff08;GIO的一部分&#xff09;和sd-bus&#xff08;systemd的一部分&#xff09;&#xff0c;以下比较了3种方案的优劣&a…