侵蝕的基本思想就像土壤侵蝕一樣,它侵蝕前景物體的邊界(盡量使前景保持白色)。
具體做法:核心滑動通過影象(在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...