OpenCV 腐蚀与膨胀(超清晰易懂版)
小编将提供最简单、最实用、直接能跑的讲解 + 代码,专门解决你之前遇到的图像处理问题。
从图上,我们明显能看出,左侧的是正常的图。右侧是膨胀后的图,变胖了。底部是腐蚀后的图,变瘦了。
一、一句话理解
- 膨胀(Dilate):白色区域变大,填充小黑点
- 腐蚀(Erode):白色区域变小,消除小白点
- 常用于:去噪、分割文字、连通区域、轮廓预处理
二、Python OpenCV 完整代码(直接复制运行)
import cv2
import numpy as np
# 1. 读取图片(灰度图)
img = cv2.imread("test.png", 0)
# 2. 定义核大小(越大效果越强)
kernel = np.ones((3, 3), np.uint8)
# 3. 腐蚀:白色变小,消除噪点
erode_img = cv2.erode(img, kernel, iterations=1)
# 4. 膨胀:白色变大,填充缺口
dilate_img = cv2.dilate(img, kernel, iterations=1)
# 显示效果
cv2.imshow("original", img)
cv2.imshow("erode 腐蚀", erode_img)
cv2.imshow("dilate 膨胀", dilate_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
三、最常用组合:开运算 & 闭运算
1. 开运算 = 先腐蚀 + 后膨胀
作用:去除小白点噪点,不破坏主体形状
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
2. 闭运算 = 先膨胀 + 后腐蚀
作用:填充小黑洞,连接断裂文字
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
四、参数说明
kernel:结构元素,常用(3,3)、(5,5)iterations:迭代次数,越大效果越强- 黑白图像效果最明显
五、你之前的 OCR 为什么要用?
因为 腐蚀 / 膨胀可以清理文字周围噪点,让 OCR 识别更准!
总结
- 腐蚀:白色变小 → 去噪
- 膨胀:白色变大 → 填充
- 开闭运算:图像预处理神器



暂无评论