24、其他形态学操作

6044416-092066e6999cc06d.png
image.png
6044416-9c6c32e076ae4eae.png
顶帽
def tophat_function(image):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    kernel = cv.getStructuringElement(cv.MORPH_RECT, (15, 15))

    '''
       op = cv.MORPH_TOPHAT(顶帽操作)
    '''
    dst = cv.morphologyEx(gray, cv.MORPH_TOPHAT, kernel)
    cimage = np.array(gray.shape,np.uint8)
    cimage = 100
    dst = cv.add(dst,cimage)#增加亮度
    cv.imshow("tophat",dst)
6044416-6382861536edf969.png
增加亮度后的
6044416-6b9c48e931358f07.png
黑帽
#修改op即可
dst = cv.morphologyEx(gray, cv.MORPH_BLACKHAT, kernel)
6044416-c29bb2932de19862.png
黑帽

6044416-6bf3cb9e77a87e11.png
image.png

基本梯度

dst = cv.morphologyEx(gray, cv.MORPH_GRADIENT, kernel)
6044416-5c2e2d071acc510e.png
基本梯度

内外梯度

def gradient_demo(image):
    kernel = cv.getStructuringElement(cv.MORPH_RECT, (5, 5))
    dm = cv.dilate(image, kernel)
    em = cv.erode(image, kernel)
    dst1 = cv.subtract(dm, image)  # 外梯度
    dst2 = cv.subtract(image, em)  # 内梯度
    cv.imshow("external_gradient", dst1)
    cv.imshow("internal_gradient", dst2)
6044416-f84d94396540bca2.png
内外梯度

猜你喜欢

转载自blog.csdn.net/weixin_34357267/article/details/87422249