美文网首页图像处理Deep Learning
形态学操作—膨胀与腐蚀(Dilation and Erosion

形态学操作—膨胀与腐蚀(Dilation and Erosion

作者: 徐凯_xp | 来源:发表于2018-08-22 13:21 被阅读86次

    膨胀和腐蚀被称为形态学操作。它们通常在二进制图像上执行,类似于轮廓检测。通过将像素添加到该图像中的对象的感知边界,扩张放大图像中的明亮白色区域。侵蚀恰恰相反:它沿着物体边界移除像素并缩小物体的大小。
    通常这两个操作是按顺序执行的,以增强重要的对象特征!

    • 膨胀
      要在OpenCV中扩展图像,您可以使用该dilate函数和三个输入:原始二进制图像,确定扩张大小的内核(无将导致默认大小),以及执行扩张的多次迭代(通常= 1)
      在下面的例子中,我们有一个5x5的内核,它们在图像上移动,就像一个滤波器一样,如果任何周围的像素在5x5窗口中都是白色,则将像素变成白色!我们将使用草书字母“j”的简单图像作为示例。
    • 腐蚀
      为了侵蚀图像,我们采用erode函数。
    # Reads in a binary image
    image = cv2.imread(‘j.png’, 0) 
    
    # Create a 5x5 kernel of ones
    kernel = np.ones((5,5),np.uint8)
    
    # Dilate the image
    dilation = cv2.dilate(image, kernel, iterations = 1)
    # Erode the image
    erosion = cv2.erode(image, kernel, iterations = 1)
    

    OPENING

    如上所述,这些操作通常组合在一起以获得理想的结果!一种这样的组合称为Opening,其是侵蚀,然后是膨胀
    这在降噪中是有用的,其中侵蚀首先消除噪声(并收缩物体)然后扩张再次扩大物体,但噪声将从先前的侵蚀中消失!
    为了在OpenCV中实现这一点,我们将函数morphologyEx与原始图像,我们想要执行的操作以及传入的内核一起使用。

    opening = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)
    

    Closing

    Closing 是Opening的反向组合,它是膨胀,然后是侵蚀。这对于关闭物体内的小孔或暗区很有用
    它可用于关闭前景对象内的小孔或对象上的小黑点。
    closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)


    Opening和Closing 操作试图提取关于物体形状的更好(更少噪声)信息或放大重要特征,如角点检测的情况!

    相关文章

      网友评论

        本文标题:形态学操作—膨胀与腐蚀(Dilation and Erosion

        本文链接:https://www.haomeiwen.com/subject/sbmeiftx.html