Open_Cv 膨胀与腐蚀

在这里插入图片描述

import cv2 as cv
import numpy as np
#图像形态学1 膨胀(dilate)与腐蚀 是灰度与二值图像处理中的重要手段 数学集合论和拓扑集合的基础上发展起来
#膨胀(dilate)与腐蚀(erode) 最值滤波(3*3模板?)
#膨胀 3*3模板中的最大值替换中心像素   腐蚀 3*3模板中的最小值替换中心像素
#膨胀的作用 对象大小增加一个像素(3x3) 平滑对象边缘  减少或者填充对象之间的距离
#腐蚀的作用 对象大小减少一个像素(3x3) 平滑对象边缘  弱化或者分割对象之间半岛型连接

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.THRESH_BINARY_INV
    cv.imshow("binary",binary)
    kernel=cv.getStructuringElement(cv.MORPH_RECT,(5,5))#得到结构元素 cross十字交叉 矩形  结构元素变大 腐蚀加重
    dst=cv.erode(binary,kernel=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_INV|cv.THRESH_OTSU)#注意cv.THRESH_BINARY_INV
    cv.imshow("binary",binary)
    kernel=cv.getStructuringElement(cv.MORPH_RECT,(5,5))#得到结构元素 cross十字交叉 矩形  结构元素变大 腐蚀加重
    dst=cv.dilate(binary,kernel=kernel)
    cv.imshow("dilate_demo",dst)






src=cv.imread("D:\Py_Test\Open_Cv\data\pic3.png")
cv.namedWindow("Test",cv.WINDOW_AUTOSIZE)
cv.imshow("Test",src)#在上面创建的“Test”窗口中显示图像sr
dilate_demo(src)
#彩色图像的膨胀
src2=cv.imread("D:\Py_Test\Open_Cv\data\lena.jpg")
cv.imshow("color",src2)
kernel=cv.getStructuringElement(cv.MORPH_RECT,(5,5))#得到结构元素 cross十字交叉 矩形  结构元素变大 腐蚀加重
dst=cv.erode(src2,kernel=kernel)#腐蚀是最小值替换中心像素,所以眉毛的位置会变的更加黑 0为最黑
cv.imshow("color_dilate",dst)
cv.waitKey(0)#(0)参数表示无限等待 等又任意按键按下关闭图片窗口
cv.destroyAllWindows()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值