资源经验分享OpenCV:图像的腐蚀和膨胀

OpenCV:图像的腐蚀和膨胀

2019-11-29 | |  81 |   0

原标题:OpenCV:图像的腐蚀和膨胀

原文来自:博客园      原文链接:https://www.cnblogs.com/geeksongs/p/11105757.html


图像的腐蚀和膨胀实际上是利用卷积进行计算,首先导包:

import numpy as npimport cv2import matplotlib.pyplot as pltdef show(image):
    plt.imshow(image)
    plt.axis('off')
    plt.show()def imread(image):
    image=cv2.imread(image)
    image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)    return image


然后生成一个正方形的核:

kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))print(kernel)

输出:

[[1 1 1 1 1]
 [1 1 1 1 1]
 [1 1 1 1 1]
 [1 1 1 1 1]
 [1 1 1 1 1]]

当然我们作运算的时候都是使用的正方形的核,这里也展示下生成椭圆核的方法:

kernel=cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(10,10))#这里生成的是椭圆print(kernel)

生成十字形的核:

kernel=cv2.getStructuringElement(cv2.MORPH_CROSS,(5,5))#这里生成的是十字形print(kernel)

利用卷积进行图像的腐蚀:可以使黑色的点变大

kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(10,10))
ero=cv2.erode(image,kernel)
show(ero)

循环进行多次腐蚀:

show(image)
kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(10,10))for i in range(2):
    ero=cv2.erode(image,kernel,iterations=i+1)
    show(ero)

图像的膨胀,使白色的点变大,用于去除图像当中的黑点:

show(image)#利用卷积将图像进行膨胀,求解的是区域最大值,腐蚀则是求解的区域最小值dilation=cv2.dilate(image,kernel)
show(dilation)#用于去除图像当中黑色的小点

循环去除:


image=imread('123.jpg')
show(image)
kernel=cv2.getStructuringElement(cv2.MORPH_RECT,(21,21))for i in range(3):
    ero=cv2.erode(image,kernel,iterations=i+1)
    show(dilation)


下面是处理朱茵图片进行膨胀的效果:
01.png

 

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:学习机器学习前你应该要知道的一些事

下一篇:[Tensorflow] 使用 Mask_RCNN 完成目标检测与实例分割,同时输出每个区域的 Feature Map

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...