zoukankan      html  css  js  c++  java
  • 图像分析之图像形态学处理

    1.腐蚀操作
    2.膨胀操作
    3.开运算与闭运算
    4.梯度运算(绘制图像的边框)
    5.礼帽与黑帽

    1.腐蚀操作

    import cv2 #opencv读取的格式是BGR
    import numpy as np
    import matplotlib.pyplot as plt#Matplotlib是RGB
    
    img = cv2.imread('dige.png')
    cv2.imshow('img', img)
    
    # 腐蚀操作
    #kernel 腐蚀范围, iterations 迭代次数
    kernel = np.ones((3, 3), np.uint8) erosion = cv2.erode(img, kernel, iterations = 1) cv2.imshow('erosion', erosion) cv2.waitKey(0) cv2.destroyAllWindows()

    2.膨胀操作

    img = cv2.imread('dige.png')
    cv2.imshow('img', img)
    # 膨胀操作
    #kernel 腐蚀范围, iterations 迭代次数
    kernel = np.ones((3,3),np.uint8) dige_dilate = cv2.dilate(img,kernel,iterations = 1) cv2.imshow('dilate', dige_dilate) cv2.waitKey(0) cv2.destroyAllWindows()

    3.开运算与闭运算

    # 开:先腐蚀,再膨胀
    img = cv2.imread('dige.png')
    
    kernel = np.ones((5,5),np.uint8) 
    opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
    
    cv2.imshow('opening', opening)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    # 闭:先膨胀,再腐蚀
    img = cv2.imread('dige.png')
    
    kernel = np.ones((5,5),np.uint8) 
    closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
    
    cv2.imshow('closing', closing)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    4.梯度运算(绘制图像的边框)

    # 梯度=膨胀-腐蚀
    pie = cv2.imread('pie.png')
    kernel = np.ones((7, 7), np.uint8)
    dilate = cv2.dilate(pie, kernel, iterations = 5)
    erosion = cv2.erode(pie, kernel, iterations = 5)
    res = np.hstack((dilate, erosion))
    cv2.imshow('res', res)
    
    # 梯度运算
    gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel)
    cv2.imshow('gradient', gradient)
    
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    5.礼帽与黑帽

    - 礼帽 = 原始输入-开运算结果
    - 黑帽 = 闭运算-原始输入
    img = cv2.imread('dige.png')
    kernel = np.ones((7, 7), np.uint8)
    
    #礼帽
    tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
    cv2.imshow('tophat', tophat)
    
    #黑帽
    blackhat  = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT, kernel)
    cv2.imshow('blackhat ', blackhat )
     
  • 相关阅读:
    iptables学习笔记
    启动级别和单用户模式
    Apache虚拟主机配置模板
    LAMP环境搭建问题
    LAMP环境搭建
    C++面向对象高级编程(九)Reference与重载operator new和operator delete
    C++面向对象高级编程(八)模板
    C++面向对象高级编程(七)point-like classes和function-like classes
    C++面向对象高级编程(六)转换函数与non-explicit one argument ctor
    C++面向对象高级编程(五)类与类之间的关系
  • 原文地址:https://www.cnblogs.com/mango1997/p/13985109.html
Copyright © 2011-2022 走看看