zoukankan      html  css  js  c++  java
  • 图像形态学操作

    形态学-腐蚀操作

    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()




  • 相关阅读:
    Android使用TextView实现无下划线超链接
    新浪微博Android SDK的使用
    android自定义View垂直滚动的TextView
    android开发问题集锦
    android实现TextView垂直或水平滚动
    自定义view,实现文本自动换行
    AndroidMenifest.xml中android:sharedUserId="android.uid.system权限访问sd卡问题
    【Android】报表、线图、饼图、柱状图 (工具整理)
    Python | 三种赋值(直接赋值,copy,deepcopy)
    Python | 三种赋值(直接赋值,copy,deepcopy)
  • 原文地址:https://www.cnblogs.com/exciting/p/10389661.html
Copyright © 2011-2022 走看看