opencv 形態學轉換

2021-10-16 16:58:57 字數 2529 閱讀 4895

侵蝕的基本思想就像土壤侵蝕一樣,它侵蝕前景物體的邊界(盡量使前景保持白色)。

具體做法:核心滑動通過影象(在2d卷積中)。原始影象中的乙個畫素(無論是1還是0)只有當核心下的所有畫素都是1時才被認為是1,否則它就會被侵蝕(變成0)。

結果:根據核心的大小,邊界附近的所有畫素都會被丟棄。前景物體的厚度或大小減

小,或只是影象中的白色區域減小。有助於去除小的白雜訊,分離兩個連線的物件等。

img = cv.imread(

'3.png',0

)kernel = np.ones((5

,5),np.uint8)

erosion = cv.erode(img,kernel,iterations =1)

#或者erosion = cv.morphologyex(img, cv.morph_erode, kernel)

和侵蝕相反,如果核心下的至少乙個畫素為「 1」,則畫素元素為「 1」。因此會增加影象中白色區域的寬度或增加前景物件的大小。

通常,在消除噪音的情況下,腐蝕後會膨脹,因為腐蝕會消除白雜訊,但也會縮小物體。在連線物件的損壞部分時也很有用。

img = cv.imread(

'3.png',0

)kernel = np.ones((5

,5),np.uint8)

erosion = cv.dilate(img,kernel,iterations =1)

#或者 erosion = cv.morphologyex(img, cv.morph_dilate, kernel)

該函式用於形態學操作,主要有以下幾個操作。

————morph_open – 開運算(opening operation)

————morph_close – 閉運算(closing operation)

————morph_gradient -形態學梯度(morphological gradient)

————morph_tophat - 「頂帽」(「top hat」)

————morph_blackhat - 「黑帽」(「black hat「)

————morph_erode - 「腐蝕」

————morph_dilate - 「膨脹」

即侵蝕然後擴張,有助於消除雜訊。

閉運算與開運算相反,先擴張然後再侵蝕。在關閉前景物件內部的小孔或物件上的小黑點時很有

用。

kernel = np.ones((8

是擴張和腐蝕的差,有點像輪廓。

輸入影象和影象開運算之差。

輸入影象和影象閉運算之差。

形態學轉換

1 腐蝕 cv2.erode 就像土壤侵蝕一樣,這個操作會把前景物體的邊界腐蝕掉 但是前景仍然 是白色 這是怎麼做到的呢?卷積核沿著影象滑動,如果與卷積核對應的原圖 像的所有畫素值都是 1,那麼中心元素就保持原來的畫素值,否則就變為零。這回產生什麼影響呢?根據卷積核的大小靠近前景的所有畫素都會被腐蝕...

opencv學習 形態學

void cvdilate const cvarr src,cvarr dst,iplconvkernel element null,int iterations 1 void cverode const cvarr src,cvarr dst,iplconvkernel element null,...

opencv 形態學處理

影象形態學中的幾個基本操作 腐蝕 膨脹 開操作 閉操作。1.1 腐蝕 結構a被結構b腐蝕的定義為,a b a b 可以理解為,移動結構b,如果結構b與結構a的交集完全屬於結構a的區域內,則儲存該位置點,所有滿足條件的點構成結構a被結構b腐蝕的結果。1.2 膨脹 結構a被結構b膨脹的定義為,a b a...