opencv python 图像形态学

形态学操作(morphology operators)

图像形态学操作 – 基于形状的一系列图像处理操作的合集,
主要是基于集合论基础上的形态学数学。
形态学主要针对二值图像进行处理,特别是OCR等这些处理,
还有特征提取、区域分割等也可以通过形态学的方法进行。

形态学有四个基本操作:腐蚀、膨胀、开、闭。
膨胀与腐蚀是图像处理中最常用的形态学操作手段。

1)膨胀(dilate)

跟卷积操作类似,假设有图像A和结构元素B,
结构元素B在A上面移动,其中B定义其中心为锚点,
以B覆盖下A的最大像素值(偏白)替换锚点的像素,
其中B作为结构体可以是任意形状。
(与卷积不同之处,可以是线、矩阵、圆、十字等形状)

在这里插入图片描述
在这里插入图片描述

最大值(偏白)替换就是向原图边缘膨胀,白色变多,黑色变小

(2)腐蚀(erode)

腐蚀跟膨胀操作的过程类似,唯一不同的是以最小值(偏黑)
替换锚点重叠下图像的像素值。

在这里插入图片描述二值图像与灰度图像上的腐蚀操作:
在这里插入图片描述

最小值(偏黑)替换就是向背景做了腐蚀,黑色变大,白色变小。	
import cv2
import numpy as np

# 腐蚀 取最小值
def erossionDef(img):

    kernel = np.ones((5,5),np.uint8)
    erossion = cv2.erode(img,kernel,iterations=1)
    return erossion

# 膨胀 取最大值
def dilate(img):

    kernel = np.ones((5, 5), np.uint8)
    img = cv2.dilate(img,kernel,iterations=1)
    return img

# 开运算:先腐蚀 再膨胀
def morphOpen(img):

    kernel = np.ones((5, 5), np.uint8)
    img = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)
    return img

# 闭运算:先膨胀 再腐蚀
def morphClose(img):

    kernel = np.ones((5, 5), np.uint8)
    img = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)
    return img

# 梯度 = 膨胀 - 腐蚀
def gradientImg(img):

    kernel = np.ones((3,3), np.uint8)
    img = cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel)
    return img

# 礼帽 = 原始输入 - 开运算结果
def topHat(img):

    kernel = np.ones((5, 5), np.uint8)
    img = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)
    return img

def blackHat(img):

    kernel = np.ones((5, 5), np.uint8)
    img = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)
    return img

img = cv2.imread("img1.png")

# img = erossionDef(img)
# img1 = dilate(img)
# img2 = erossionDef(img)
# img3 = gradientImg(img)
#
# img = np.hstack((img,img1,img2,img3))

img = blackHat(img)

cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值