<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                原始圖像: ![](https://box.kancloud.cn/cb7d029f3c5e4da687bad9faa749a0b4_1024x1024.jpg) 函數:cv2.erode(),cv2.dilate(),cv2.morphotogyEx() 形態學轉換原理:一般情況下對二值化圖像進行操作。需要兩個參數,一個是原始圖像,第二個被稱為結構化元素或者核,它是用來決定操作的性質的。基本操作為腐蝕和膨脹,他們的變體構成了開運算,閉運算,梯度等。 1.腐蝕 把前景物體的邊界腐蝕掉,但是前景仍然是白色的。卷積核沿著圖像滑動,如果與卷積核對應的原圖像的所有像素值都是1,那么中心元素就保持原來的像素值,否則就變為零。根據卷積核的大小靠近前景的所有像素都會被腐蝕掉(變為0),所以前景物體會變小,整幅圖像的白色區域會減少。這對于去除白噪音很有用,也可以用來斷開兩個連在一塊的物體。 ~~~ import cv2 import numpy as np img = cv2.imread('1024.jpg',0) kernel = np.ones((5,5),np.uint8) erosion = cv2.erode(img,kernel,iterations=1) while(1): cv2.imshow('image',img) cv2.imshow('erosion',erosion) k=cv2.waitKey(1) if k == ord('q'):#按q鍵退出 break cv2.destroyAllWindows() ~~~ 演示結果: ![](https://box.kancloud.cn/872e3287d01de310ea8928589b91259b_2043x1044.jpg) 2.膨脹 與腐蝕相反,與卷積核對應的原圖像的像素值中只要有一個是1,中心元素的像素值就是1。所以這個操作會增加圖像中白色區域(前景)。一般在去噪音時先腐蝕再膨脹,因為腐蝕再去掉白噪音的同時,也會使前景對象變小,所以我們再膨脹。這時噪音已經被去除,不會再回來了,但是前景還在并會增加,膨脹也可以用來連接兩個分開的物體。 ~~~ dilation = cv2.dilation(img,kernel,iterations=1) ~~~ ![](https://box.kancloud.cn/c6d284b711048eca2eb1e7c99daccc65_2476x953.jpg) 3.開運算 先進行腐蝕再進行膨脹就叫做開運算。被用來去除噪音,函數可以使用cv2.morphotogyEx() ~~~ opening = cv2.morphotogyEx(img,cv2.MORPH_OPEN,kernel) ~~~ 4.閉運算 先膨脹再腐蝕。被用來填充前景物體中的小洞,或者前景上的小黑點。 ~~~ closing = cv2.morphotogyEx(img,cv2.MORPH_CLOSE,kernel) ~~~ 5.形態學梯度 其實就是一幅圖像膨脹與腐蝕的差別。 結果看上去就像前景物體的輪廓。 ~~~ gradient = cv2.morphotogyEx(img,cv2.MORPH_GRADIENT,kernel) ~~~ ![](https://box.kancloud.cn/6f12a18036c671cbc062d3d827cb45f7_1003x1044.jpg) 6.禮帽 原始圖像與進行開運算之后得到的圖像的差。 ~~~ tophat = cv2.morphotogyEx(img,cv2.MORPH_TOPHAT,kernel) ~~~ ![](https://box.kancloud.cn/d96e3af164ff63f4551d581194f5c123_1028x1040.jpg) 7.黑帽 進行閉運算之后得到的圖像與原始圖像的差。 ~~~ blackhat = cv2.morphotogyEx(img,cv2.MORPH_BLACKHAT,kernel) ~~~ ![](https://box.kancloud.cn/e0295b3e09cdb6611392076d03457be4_1041x1064.jpg) 8.形態學操作之間的關系及結構化元素 形態學操作之間的關系 ![](https://box.kancloud.cn/3c1a2e10e9cd5adf57bdae18cf0a5304_841x431.jpg) 結構化元素 之前的例子都是使用numpy構建了結構化元素,但是是正方形的,若需要構建橢圓或者圓形的核,可以使用OpenCV提供的函數cv2.getStructuringElemenet(),只需要告訴它你需要的核的形狀和大小。 ![](https://box.kancloud.cn/c47235ea74cf84a1063db20e73732d11_647x571.jpg)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看