腐蝕膨脹,開閉運算,形態學梯度,頂帽,黑帽

2022-07-24 07:12:11 字數 1377 閱讀 8918

膨脹dilate

void dilate(inputarray src,outputarray dst,inputarray kernel,point anchor=point(-1,-1),int iterations=1,int bordertype=border_constant,const scalar&bordervalue=morphologydefaultbordervalue());

一般第三個引數用getstructuringelement函式配合使用:int g_nstructelementsize = 3;//結構元素(核心矩陣)的尺寸

mat element=getstructuringelement(morph_rect,size(2g_nstructelementsize+1,2g_nstructelementsize+1),point(g_nstructelementsize,g_nstructelementsize));

腐蝕erode

void erode(inputarray src,outputarray dst,inputarray kernel,point anchor=point(-1,-1),int iterations=1,int bordertype=border_constant,const scalar&bordervalue=morphologydefaultbordervalue());

開運算dst=open(src,element)=dilate(erode(src,element))

閉運算dst=close(src,element)=erode(dilate(src,element))

形態學梯度

是膨脹圖與腐蝕圖之差,可以用來保留物體的邊緣輪廓

dst=morph-grad(src,element)=dilate(src,element)-erode(src,element)

注意:頂帽top hat

是原圖與開運算的結果圖之差,為了突出比原圖輪廓周圍的區域更明亮的區域

dst=tophat(src,element)=src-open(src,element)

黑帽black hat

可以用來分離比臨近點暗一些的斑塊,效果圖有著非常完美的輪廓

dst=blackhat(src,element)=close(src,element)-src

核心api函式:morphologyex()

void morphologyex(inputarray src,outputarray dst,int op,inputarraykernel,pointanchor=point(-1,-1),intiterations=1,intbordertype=border_constant,constscalar&vordervalue=moephologydefaultbordervalue());

形態學運算元 腐蝕,膨脹,開閉

本文總結了腐蝕,膨脹和開閉操作在二值影象上的應用,基於opencv給出了例項。參考 數字影象處理 第三版 岡薩雷斯 腐蝕的定義為 在二維整數空間 其中上面的定義含義是,b對a的腐蝕是乙個用z平移的b包含在a中的所有的點z的集合。腐蝕縮小或細化了二值影象中的物體。可以將腐蝕視為形態學濾波,這種操作將小...

形態學處理梯度 頂帽 黑帽

基本梯度 經過膨脹操作的影象與經過腐蝕操作影象的差值影象,可以用來提取出物體的邊緣部分。內部梯度 原影象與經過腐蝕操作的影象的差值影象。外部梯度 經過膨脹操作的影象與原影象的差值影象。opencv中支援的是基本梯度,下面放一段 和執行結果更直觀的理解 原影象與經過開運算操作的影象的差值影象,作用是可...

形態學自補頂帽運算

函式 lhmorpqtophat 說明 形態學自補頂帽運算 引數 src 輸入影象 dst 輸出影象 element結構元素 iterations膨脹和腐蝕次數 原始碼 void lhmorpqtophat const iplimage src,iplimage dst,iplconvkernel ...