python+opencv形态学方法整理

python+opencv形态学处理学习记录

#形态学处理
#腐蚀(腐蚀可以使目标区域范围“变小”,其实质造成图像的边界收缩,可以用来消除小且无意义的目标物。)
def corrode(gray):
    kernel = np.ones((5, 5), np.uint8)  # 卷积核/结构元素(getStructuringElement函数也可以构造)
    corrode = cv2.erode(gray, kernel, iterations=1)  # 腐蚀(iterations:迭代次数)
    return corrode

#膨胀(膨胀会使目标区域范围“变大”,将于目标区域接触的背景点合并到该目标物中,使目标边界向外部扩张。
      #作用就是可以用来填补目标区域中某些空洞以及消除包含在目标区域中的小颗粒噪声。 膨胀也可以用来连接两个分开的物体。)
def swelld(gray):
    kernel = np.ones((5, 5), np.uint8) #卷积核
    swelld = cv2.dilate(gray, kernel, iterations=1)  # 膨胀
    return swelld

#开运算
#(先腐蚀再膨胀),它被用来去除噪声。cv2.MORPH_OPEN
def Opening(gray):
    kernel = np.ones((5, 5), np.uint8) #卷积核
    Opening = cv2.morphologyEx(gray, cv2.MORPH_OPEN, kernel)  # 开运算
    return Opening

#闭运算
# (先膨胀再腐蚀)它经常被用来填充前景物体中的小洞,或者前景物体上的小黑点。
def Closing(gray):
    kernel = np.ones((5, 5), np.uint8)  # 卷积核
    Closing = cv2.morphologyEx(gray, cv2.MORPH_CLOSE, kernel)  # 闭运算
    return Closing

#形态学梯度
#前景物体的轮廓
def Gradient(gray):
    kernel = np.ones((5, 5), np.uint8)  # 卷积核
    Gradient = cv2.morphologyEx(gray, cv2.MORPH_GRADIENT, kernel)  # 形态学梯度
    return Gradient

#礼帽
#礼帽图像=原始图像-开运算(cv2.MORPH_TOPHAT)
def Tophat(gray):
    kernel=np.ones((5, 5), np.uint8) # 卷积核
    Tophat = cv2.morphologyEx(gray, cv2.MORPH_TOPHAT, kernel)  # 礼帽
    return Tophat

#黑帽
#黑帽图像=闭运算-原始图像(cv2.MORPH_BLACKHAT)
def Blackhat(gray):
    kernel = np.ones((5, 5), np.uint8)  # 卷积核
    Blackhat = cv2.morphologyEx(gray, cv2.MORPH_BLACKHAT, kernel)  # 黑帽
    return Blackhat

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值