import cv2
import numpy as np
可以通过腐蚀操作将图像”变瘦“
通过cv2.erode( image,kernel,iterations)函数 可以实现
image:要操作的图片
kernel:腐蚀的核函数
iterations:迭代次数,迭代次数越多,图像越不明显
img = cv2.imread('dige.png')
kernel = np.ones((3,3),np.uint8)
erosion = cv2.erode(img,kernel=kernel,iterations=1)
#iterations是迭代次数,迭代次数越多,图像越不明显
可以通过膨胀操作将图像”变胖“
通过cv2.dilate( image,kernel,iterations)函数 可以实现
image:要操作的图片
kernel:膨胀的核函数
iterations:迭代次数,迭代次数越多,图像越明显
img = cv2.imread('dige.png')
kernal = np.ones((3,3),np.uint8)
dilate = cv2.dilate(erosion,kernel=kernal,iterations=1)
img = cv2.imread('dige.png')
kernel = np.ones((3,3),np.uint8)
opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)
可以看出开运算后的图像,相比与原来的图像线条粗细没有变化,只是少了周围的细线条
img = cv2.imread('dige.png')
kernel = np.ones((3,3),np.uint8)
closeing = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)
pie = cv2.imread('pie.png')
kernel = np.ones((7,7),np.uint8)
gradient = cv2.morphologyEx(pie,cv2.MORPH_GRADIENT,kernel)
这里以一个圆的图像为例子
原图像是这样的
经过梯度运算后只保留了边框出来
黑帽 = 闭运算 - 原始输入
img = cv2.imread('dige.png')
kernel = np.ones((3,3),np.uint8)
tophat = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)
black = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)