膨脹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 ...