zoukankan      html  css  js  c++  java
  • [opencv]图像处理-腐蚀操作与膨胀操作

    1.腐蚀操作:

      类似于化学反应,用酸腐蚀金属等等效果类似,因而被称为腐蚀操作。

    import cv2
    import matplotlib.pyplot as plt
    import numpy as np
    
    # 载入汉字 展示原图
    img = cv2.imread('E:/img/6.jpg')
    
    cv2.imshow('img',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
    # 腐蚀范围2x2
    kernel = np.ones((2,2),np.uint8)
    # 迭代次数 iterations=1
    erosion = cv2.erode(img,kernel,iterations = 1)
    
    cv2.imshow('erosion',erosion)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    原图如下,带有许多不需要的细线,可以利用腐蚀操作去除细线:

     腐蚀操作后

     2.膨胀操作

      与名称同义,进行一个膨胀。上图明显腐蚀后,线条与原来相比变细了。这时可以采取一个膨胀操作来增宽线条。

      代码为先腐蚀后膨胀的操作:

    import cv2
    import matplotlib.pyplot as plt
    import numpy as np
    
    # 载入汉字 展示原图
    img = cv2.imread('E:/img/6.jpg')
    
    cv2.imshow('img',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
    # 腐蚀范围2x2
    kernel = np.ones((2,2),np.uint8)
    # 迭代次数 iterations=1
    erosion = cv2.erode(img,kernel,iterations = 1)
    
    cv2.imshow('erosion',erosion)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
    # 膨胀范围
    kernel = np.ones((3,3),np.uint8)
    # 迭代次数
    img_dilate = cv2.dilate(erosion,kernel,iterations = 1)
    
    cv2.imshow('dilate', img_dilate)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    膨胀操作后,线条明显变粗。

  • 相关阅读:
    2019 SDN阅读作业
    第10组 Alpha冲刺(4/6)
    第10组 Alpha冲刺(3/6)
    2019 SDN上机第3次作业
    团队Beta4
    团队Beta3
    团队Beta2
    团队Beta1
    tuandui last
    团队Arpha6
  • 原文地址:https://www.cnblogs.com/zlc364624/p/12733026.html
Copyright © 2011-2022 走看看