OpenCV Python - 形態學變換



基於影像形狀的簡單操作稱為形態學變換。兩種最常見的變換是 **腐蝕和膨脹**。

腐蝕

腐蝕去除前景物件的邊界。類似於二維卷積,一個核在影像 A 上滑動。如果核下所有畫素均為 1,則保留原始影像中的畫素。

否則將其設為 0,從而導致腐蝕。邊界附近的畫素都會被丟棄。此過程可用於去除白噪聲。

OpenCV 中 **erode()** 函式的命令如下:

cv.erode(src, kernel, dst, anchor, iterations)

引數

OpenCV 中的 **erode()** 函式使用以下引數:

src 和 dst 引數是相同大小的輸入和輸出影像陣列。核是用於腐蝕的結構元素矩陣,例如 3X3 或 5X5。

錨點引數預設為 -1,這意味著錨點元素位於中心。迭代次數是指應用腐蝕的次數。

膨脹

它與腐蝕正好相反。在這裡,如果核下至少有一個畫素為 1,則畫素元素為 1。結果,它增加了影像中的白色區域。

dilate() 函式的命令如下:

cv.dilate(src, kernel, dst, anchor, iterations)

引數

**dilate()** 函式與 erode() 函式具有相同的引數。這兩個函式都可以具有其他可選引數,例如 BorderType 和 borderValue。

BorderType 是影像邊界的列舉型別(CONSTANT、REPLICATE、TRANSPERANT 等)。

borderValue 用於常數邊界。預設值為 0。

示例

下面是一個示例程式,演示了 erode() 和 dilate() 函式的用法:

import cv2 as cv
import numpy as np
img = cv.imread('LinuxLogo.jpg',0)
kernel = np.ones((5,5),np.uint8)
erosion = cv.erode(img,kernel,iterations = 1)
dilation = cv.dilate(img,kernel,iterations = 1)
cv.imshow('Original', img)
cv.imshow('Erosion', erosion)
cv.imshow('Dialation', dilation)

輸出

原始影像

Morphological

腐蝕

Erosion

膨脹

Dilation
廣告
© . All rights reserved.