zoukankan      html  css  js  c++  java
  • opencv形态学操作之开运算、闭运算

    原图:

    开运算:

    先腐蚀后膨胀叫开运算(因为先腐蚀会分开物体,这样容易记住),其作用是:分离物体,消除小区域。这类形态学操作用cv2.morphologyEx()函数实现:

    下面两份代码分别对应通过先腐蚀后膨胀的效果 和 直接通过开运算的效果

    import cv2
    import numpy as np
    
    img = cv2.imread("zw.jpg", 0)
    kernel = np.ones((3, 3), np.uint8)
    kerne2 = np.ones((5, 5), np.uint8)
    erodtion = cv2.erode(img, kernel, iterations=2)
    dilation = cv2.dilate(erodtion, kerne2, iterations=1)
    import cv2
    import numpy as np
    
    img = cv2.imread("zw.jpg", 0)
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))  # 矩形结构
    open = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

     可以看到两者差别不大。

    闭运算

    先膨胀后腐蚀(先膨胀会使白色的部分扩张,以至于消除/"闭合"物体里面的小黑洞,所以叫闭运算)

    import cv2
    import numpy as np
    
    img = cv2.imread("zw.jpg", 0)
    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))  # 矩形结构
    open = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel, iterations=2)

     可以看出左侧原图中的黑点,通过闭运算后被填充掉了

  • 相关阅读:
    java web图片显示到浏览器
    Spring MVC + jpa框架搭建,及全面分析
    spring常用jar包总结(转载)
    搭建基于Maven的SSM框架
    线程同步的几种方法
    HttpServlet容器响应Web客户流程
    forword 与 redirect
    Hibernate状态转换
    String StringBuffer StringBuilder 对比
    位运算符
  • 原文地址:https://www.cnblogs.com/answerThe/p/11451619.html
Copyright © 2011-2022 走看看