腐蚀操作
前提
图像数据为二值的(黑/白)
作用
去掉图片中字上的毛刺
显示图片
读取一个图像文件,并在一个窗口中显示它。用户可以查看这个图像,直到按下任意键,然后程序会关闭显示图像的窗口
# cv2是OpenCV库的Python接口,用于图像处理和计算机视觉
import cv2
#cv2.imread读取一张名为‘dige.png’的图片
#如果读取成功,会把这张图片存储到内存中 并 返回一个图像矩阵
#如果图片不存在或者格式不符,则返回None
img=cv2.imread('dige.png')
#cv2.imshow函数展示图片,不会立即显示图片,会准备好显示窗口和图片
#imshow函数需要两个参数:窗口名称和图片名字
#把窗口命名为'img’,图片名字上面定义过为img
#窗口加载之前传入的图像矩阵
cv2.imshow('img',img)
#waitKey的作用是 等待用户按键
#参数为0表示一直等待用户按下任意键
# 效果:调试,方便看图片
cv2.waitKey(0)
#destroyALLWindows 关闭所有OpenCV打开的窗口,即销毁所有由cv2.imshow打开的窗口
cv2.destroyALLWindows()
腐蚀操作
import numpy as np
# 创建一个5*5的矩阵,里面都是 无符号8位整型的 1(np.uint8)
# 把这个矩阵作为 Kernel(结构元素),用于图像的腐蚀操作
kernel=np.ones((5,5),np.uint8)
#cv2.erode是cv2库里的腐蚀操作
#参数img是需要腐蚀操作的图片
#kernel定义了腐蚀操作的范围
#iteration是腐蚀操作的次数
erosion=cv2.erode(img,kernel,iterations=1)
#imshow展示腐蚀操作后的图像
#窗口名为‘erosion’
#展示的图片为 腐蚀操作后的 erosion图片
cv2.imshow('erosion',erosion)
cv2.waitKey(0)
#destroyALLWindows 关闭所有OpenCV打开的窗口,即销毁所有由cv2.imshow打开的窗口
cv2.destroyAllWindows()
由上图可以看到,字体的线条变细了,原本的刺条都没有了