图像的膨胀与腐蚀原理:点击了解
下面展示 代码
。
from cv2 import cv2 as cv
#腐蚀
def erode_demo(image):
print(image.shape)
# 转为灰度图
gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
# 图像二值化
ret,binary = cv.threshold(gray,0,255,cv.THRESH_BINARY_INV|cv.THRESH_OTSU)
cv.imshow('binary',binary)#显示二值图像
# 设置卷积核 并且是用矩形进行腐蚀
kernel = cv.getStructuringElement(cv.MORPH_RECT,(5,5))
dst = cv.erode(binary,kernel)
cv.imshow("erode_demo",dst)
#膨胀
def Dilate_demo(image):
print(image.shape)
# 转灰度图
gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
# 图像二值化
ret,binary = cv.threshold(gray,0,255,cv.THRESH_BINARY|cv.THRESH_OTSU)
cv.imshow('binary',binary)#显示二值图像
kernel = cv.getStructuringElement(cv.MORPH_RECT,(5,5))
dst = cv.dilate(binary,kernel)
cv.imshow("Dilate_demo",dst)
if __name__ == "__main__":
'''
腐蚀与膨胀,都支持单/多通道,支持彩色图像
'''
src = cv.imread("data/sudoku.png")
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("input image",src)
#对彩色图像进行膨胀
kernel = cv.getStructuringElement(cv.MORPH_RECT,(5,5))
dst1 = cv.dilate(src,kernel)
cv.imshow('result_dilate',dst1)
#对彩色图像进行腐蚀
kernel = cv.getStructuringElement(cv.MORPH_RECT,(3,3))
dst2 = cv.erode(src,kernel)
cv.imshow('result_erode',dst2)
cv.waitKey(0)
cv.destroyAllWindows()