Opencv 膨脹與腐蝕

2021-08-28 11:38:23 字數 1775 閱讀 6261

簡而言之:一組基於形狀處理影象的操作。形態操作將結構元素應用於輸入影象並生成輸出影象。

最基本的形態作用是:侵蝕和擴張。它們有廣泛的用途,即:

消除噪音

隔離單個元素並連線影象中的不同元素。

查詢影象中的強度凸點或孔

我們將簡要解釋膨脹和侵蝕,使用以下影象作為示例:

該操作包括將影象與某些核心(b)進行卷積,其可以具有任何形狀或尺寸,通常為正方形或圓形。ab

核心具有定義的錨點,通常是核心的中心。b

當核心在影象上掃瞄時,我們計算由b重疊的最大畫素值,並用該最大值替換錨點位置中的影象畫素。您可以推斷,這種最大化的操作會使影象中的亮區「增長」(因此稱為擴張)。以上圖為例。應用擴張我們可以得到:bb

背景(明亮)擴大了字母的黑色地區。

為了更好地把握想法並避免可能的混亂,在另乙個例子中,我們已經將原始影象倒過來,如白色的物件現在是這個字母。我們已經執行了兩個具有大小的矩形結構元素的擴張3x3。

左圖:原圖反轉,右圖:產生擴張

膨脹使物體變白。

這個操作是擴張的姊妹。它計算給定核心區域的區域性最小值。

當核心在影象上掃瞄時,我們計算由重疊的最小畫素值,並用該最小值替換錨點下的影象畫素。bb

對於擴張的例子,我們可以將侵蝕運算元應用於原始影象(如上所示)。您可以在下面的結果中看到,影象的明亮區域(背景,顯然)變得更薄,而黑暗區域(「寫作」)變得更大。

以相似的方式,通過對反轉的原始影象(具有尺寸的矩形結構元素的兩次侵蝕)施加侵蝕操作來產生相應的影象3x3:

左圖:原圖反轉,右圖:造成侵蝕

侵蝕使物體變白。

**實現:

#include #include using namespace cv;

mat src, dst;

char output_win = "output image";

int element_size = 3;

int max_size = 21;

void callback_demo(int, void*);

int main(int argc, char** argv)

namedwindow("input image", cv_window_autosize);

imshow("input image", src);

namedwindow(output_win, cv_window_autosize);

createtrackbar("element size :", output_win, &element_size, max_size, callback_demo);

callback_demo(0, 0);

waitkey(0);

return 0;

}void callback_demo(int, void*)

OpenCV 膨脹與腐蝕

include include include using namespace cv using namespace std int element size 3 int max size 21 mat src,dst void callback demo int,void int main int...

Open Cv 膨脹與腐蝕

影象形態學1 膨脹 dilate 與腐蝕 是灰度與二值影象處理中的重要手段 數學集合論和拓撲集合的基礎上發展起來 膨脹 dilate 與腐蝕 erode 最值濾波 3 3模板?膨脹 3 3模板中的最大值替換中心畫素 腐蝕 3 3模板中的最小值替換中心畫素 膨脹的作用 物件大小增加乙個畫素 3x3 平...

OpenCV 膨脹與腐蝕

全域性變數宣告 mat g srcimage,g dstimage int g ntrackbarnumber 0 0表示腐蝕erode,1表示膨脹dilate int g nkernelsize 3 核大小 全域性函式宣告 void on trackbarnumberchange int,void...