1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Python圖像處理:形態(tài)學(xué)操作

        共 4018字,需瀏覽 9分鐘

         ·

        2021-08-09 00:08

        來源:DeepHub IMBA

        本文約1400字,建議閱讀5分鐘 

        形態(tài)學(xué)的操作主要是去除影響圖像形狀和信息的噪聲。形態(tài)學(xué)運(yùn)算在圖像分割中非常有用,可以得到無噪聲的二值圖像。


        形態(tài)學(xué)方法


        當(dāng)圖像經(jīng)過預(yù)處理進(jìn)行增強(qiáng)和閾值等性能操作時(shí),圖像就有可能得到一些噪聲。從而導(dǎo)致圖像中存在像素信息不平衡的問題。

        形態(tài)學(xué)的操作主要是去除影響圖像形狀和信息的噪聲。形態(tài)學(xué)運(yùn)算在圖像分割中非常有用,可以得到無噪聲的二值圖像。

        基本的形態(tài)操作是侵蝕和膨脹。下面對這兩種操作進(jìn)行說明:

        膨脹


        在放大操作中,如果物體是白色的,那么白色像素周圍的像素就會(huì)增大。它增加的區(qū)域取決于物體像素的形狀。膨脹過程增加了對象的像素?cái)?shù),減少了非對象的像素?cái)?shù)。

        具有不同內(nèi)核大小和迭代的膨脹的Python代碼

         import numpy as np
         import imutils
         import cv2#reading the input image
         img = cv2.imread('thumb.png') #reads the image
         
         #cv2.imwrite('Input_image.jpg',image)
         
         #Resizing the image
         scale_percent = 70
         width = int(img.shape[1] * scale_percent / 100)
         height = int(img.shape[0] * scale_percent / 100)
         dim = (width, height)
           
         # resize the input image
         image = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
         
         kernel = np.ones((1,1), dtype = "uint8")/9
         dilation = cv2.dilate(image,kernel,iterations = 1)
         cv2.imwrite('dilation.jpg', dilation)
         
         kernel = np.ones((2,2), dtype = "uint8")/9
         dilation = cv2.dilate(image,kernel,iterations = 1)
         cv2.imwrite('dilation.jpg', dilation)
         
         kernel = np.ones((2,2), dtype = "uint8")/9
         dilation = cv2.dilate(image,kernel,iterations = 3)
         cv2.imwrite('dilation.jpg', dilation)
         
         kernel = np.ones((2,2), dtype = "uint8")/9
         dilation = cv2.dilate(image,kernel,iterations = 5)
         cv2.imwrite('dilation.jpg', dilation)
         
         kernel = np.ones((3,3), dtype = "uint8")/9
         dilation = cv2.dilate(image,kernel,iterations = 2)
         cv2.imwrite('dilation.jpg', dilation)


        侵蝕


        侵蝕函數(shù)正好與膨脹功函數(shù)相反。侵蝕作用使物體體積變小。侵蝕過程增加了非目標(biāo)像素,減少了目標(biāo)像素。

        具有不同內(nèi)核大小和迭代的侵蝕的Python代碼

         import numpy as np
         import imutils
         import cv2
         
         #reading the input image
         img = cv2.imread('thumb.png')
         #cv2.imwrite('Input_image.jpg',image)
         
         #Resizing the image
         scale_percent = 70
         width = int(img.shape[1] * scale_percent / 100)
         height = int(img.shape[0] * scale_percent / 100)
         dim = (width, height)
         
         # resize the input image
         image = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
         
         kernel = np.ones((1,1), dtype = "uint8")/9
         erosion = cv2.erode(image, kernel, iterations = 1)
         cv2.imwrite('erosion.jpg', erosion)
         
         kernel = np.ones((2,2), dtype = "uint8")/9
         erosion = cv2.erode(image, kernel, iterations = 2)
         cv2.imwrite('erosion.jpg', erosion)
         
         kernel = np.ones((2,2), dtype = "uint8")/9
         erosion = cv2.erode(image, kernel, iterations = 3)
         cv2.imwrite('erosion.jpg', erosion)
         
         kernel = np.ones((2,2), dtype = "uint8")/9
         erosion = cv2.erode(image, kernel, iterations = 5)
         cv2.imwrite('erosion.jpg', erosion)
         
         kernel = np.ones((5,5), dtype = "uint8")/9
         erosion = cv2.erode(image, kernel, iterations = 2)
         cv2.imwrite('erosion.jpg', erosion)


        開操作


        此方法可用于從圖像中去除噪聲。該方法的工作功能是先腐蝕再膨脹,以保持物體像素的原始性,去除背景中的小噪聲。

         import numpy as np
         import imutils
         import cv2
         #reading the input image
         img = cv2.imread('11.png')
         
         kernel = np.ones((5,5), dtype = "uint8")/9
         opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
         cv2.imwrite('opening.jpg', opening)


        閉操作

        此方法可用于從圖像中去除噪聲。這種方法的工作功能是先膨脹再腐蝕,去除內(nèi)部的小噪聲。

         import numpy as np
         import imutils
         import cv2
         #reading the input image
         img = cv2.imread('thumb.png')
         
         kernel = np.ones((9,9), dtype = "uint8")/9
         closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
         cv2.imwrite('closing.jpg', closing)


        形態(tài)學(xué)梯度


        這種方法是膨脹圖與腐蝕圖之差。

         import numpy as np
         import imutils
         import cv2
         
         #reading the input image
         img = cv2.imread('g1.png')
         
         kernel = np.ones((6,6), dtype = "uint8")/9
         gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)
         cv2.imwrite('gradient.jpg', gradient)


        總結(jié)


        這些操作是處理二進(jìn)制圖像的一種非常簡單的方法,也是圖像處理應(yīng)用程序中預(yù)處理的一部分。


        編輯:文婧


        瀏覽 91
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            99热热久久 | 久久亚洲综合国产精品99麻豆的功能介绍 | 久久久国产精品免费 | sese99999 | 女人18片毛片90分钟免费 | 天天操天天干天天 | 国产精品久久久久久久久在饯观看 | 久久久久国色AV免费观看麻豆 | 波多野结衣视频在线看 | 太粗太深了太紧太爽了国产 |