• 图像形态学操作


    形态学-腐蚀操作

    img = cv2.imread('dige.png')
    
    cv2.imshow('img', img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    kernel = np.ones((3,3),np.uint8) 
    erosion = cv2.erode(img,kernel,iterations = 1)
    
    cv2.imshow('erosion', erosion)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    pie = cv2.imread('pie.png')
    
    cv2.imshow('pie', pie)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

      

    kernel = np.ones((30,30),np.uint8) 
    erosion_1 = cv2.erode(pie,kernel,iterations = 1)
    erosion_2 = cv2.erode(pie,kernel,iterations = 2)
    erosion_3 = cv2.erode(pie,kernel,iterations = 3)
    res = np.hstack((erosion_1,erosion_2,erosion_3))
    cv2.imshow('res', res)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    形态学-膨胀操作

    img = cv2.imread('dige.png')
    cv2.imshow('img', img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    kernel = np.ones((3,3),np.uint8) 
    dige_erosion = cv2.erode(img,kernel,iterations = 1)
    
    cv2.imshow('erosion', erosion)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    kernel = np.ones((3,3),np.uint8) 
    dige_dilate = cv2.dilate(dige_erosion,kernel,iterations = 1)
    
    cv2.imshow('dilate', dige_dilate)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

     

    pie = cv2.imread('pie.png')
    
    kernel = np.ones((30,30),np.uint8) 
    dilate_1 = cv2.dilate(pie,kernel,iterations = 1)
    dilate_2 = cv2.dilate(pie,kernel,iterations = 2)
    dilate_3 = cv2.dilate(pie,kernel,iterations = 3)
    res = np.hstack((dilate_1,dilate_2,dilate_3))
    cv2.imshow('res', res)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    开运算与闭运算

    # 开:先腐蚀,再膨胀
    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()

    梯度运算

    # 梯度=膨胀-腐蚀
    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)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel)
    
    cv2.imshow('gradient', gradient)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    礼帽与黑帽

    • 礼帽 = 原始输入-开运算结果
    • 黑帽 = 闭运算-原始输入
    #礼帽
    img = cv2.imread('dige.png')
    tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
    cv2.imshow('tophat', tophat)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    #黑帽
    img = cv2.imread('dige.png')
    blackhat  = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT, kernel)
    cv2.imshow('blackhat ', blackhat )
    cv2.waitKey(0)
    cv2.destroyAllWindows()




  • 相关阅读:
    什么是Portal!
    Maven 让事情变得简单
    HTTP协议详解
    函数实现不放在头文件的原因,及何时可以放头文件的情况
    Linux中的内存管理(四)Heap
    寿星万年历Lua实现
    TCP epoll触发后只accept一次带来的问题
    生产者消费者问题
    Windows SDK 实现不规则窗口
    论迭代式的产品开发方法
  • 原文地址:https://www.cnblogs.com/exciting/p/10389661.html
Copyright © 2020-2023  润新知