1,概念及原理:
膨脹(dilating) (或)
(1)將影象 a 與任意形狀的核心 (b),通常為正方形或圓形,進行卷積。
(2)核心 b 有乙個可定義的 錨點, 通常定義為核心中心點。
(3)進行膨脹操作時,將核心 b 劃過影象a,將核心 b 覆蓋區域的最大相素值提取,並代替錨點位置的相素。顯然,這一最大化操作將會導致影象中的亮區開始」擴充套件」 (因此有了術語膨脹 dilation )。
以3*3的核心為例:
腐蝕(eroding) (與)
(1)腐蝕在形態學操作家族裡是膨脹操作的孿生姐妹。它提取的是核心覆蓋下的相素最小值。
(2)進行腐蝕操作時,將核心 b 劃過影象,將核心 b 覆蓋區域的最小相素值提取,並代替錨點位置的相素。
源**:
import cv2 as cv
import numpy as np
def erode_demo(image):
# print(image.shape)
gray = cv.cvtcolor(image, cv.color_bgr2gray)
ret, binary = cv.threshold(gray, 0, 255, cv.thresh_binary | cv.thresh_otsu)
#cv.imshow("binary", binary)
kernel = cv.getstructuringelement(cv.morph_rect, (15, 15))#定義結構元素的形狀和大小
dst = cv.erode(binary, kernel)#腐蝕操作
cv.imshow("erode_demo", dst)
def dilate_demo(image):
#print(image.shape)
gray = cv.cvtcolor(image, cv.color_bgr2gray)
ret, binary = cv.threshold(gray, 0, 255, cv.thresh_binary | cv.thresh_otsu)
#cv.imshow("binary", binary)
kernel = cv.getstructuringelement(cv.morph_rect, (5, 5))#定義結構元素的形狀和大小
dst = cv.dilate(binary, kernel)#膨脹操作
cv.imshow("dilate_demo", dst)
src = cv.imread("f:/images/test01.png")
cv.namedwindow("input image", cv.window_autosize)
cv.imshow("input image", src)
erode_demo(src)
dilate_demo(src)
cv.waitkey(0)
cv.destroyallwindows()
執行結果:
opencv python中的腐蝕與膨脹函式
1 影象的腐蝕 就像土壤侵蝕一樣,這個操作會把前景物體的邊界腐蝕掉 但是前景仍然是白色 這是怎麼做到的呢?卷積核沿著影象滑動,如果與卷積核對應的原影象的所有畫素值都是1,那麼中心元素就保持原來的畫素值,否則就變為零。這回產生什麼影響呢?根據卷積核的大小靠近前景的所有畫素都會被腐蝕掉 變為 0 所以前...
腐蝕和膨脹
matlab中函式strel在操作結構元素應用,用於膨脹腐蝕及開閉運算等操作的結構元素物件 構造結構元素 具體用法 se strel shape,parameters 建立由指定形狀shape對應的結構元素。其中shape的種類有 arbitrary pair diamond periodiclin...
膨脹和腐蝕
我在做手勢識別模組。以下是程式 clear i1 imread c users administrator desktop 手勢 8.jpg level graythresh i1 自動算出合適的閾值 i2 im2bw i1,level 灰度影象轉換為二值影象 se ones 50,10 形態學結構...