1. 程式人生 > >【影象處理】基本形態學操作

【影象處理】基本形態學操作

這裡涉及到的形態學操作,基本都是用模板對全圖進行卷積,操作簡單,是初級的影象處理。共識的集合處理符合這裡不多寫了。下面是定義:

  • A是影象子集,A的補集寫為Ac.
  • 集合B的反射A是一種對稱,寫為A^={w|w=b,bB}
  • 集合A的平移表示為(A)z={w|w=a+z,aA}
  • 膨脹:A被B膨脹寫為AB={z|(B^)zA},如果是灰度影象則表示為(fb)(s,t)=max{f(sx,ty)+b(x,y)|(sx,ty)Df;(x,y)Db} ,注意這裡B是模板,要執行原點翻轉操作後再在A圖範圍內平移。平移的位置z,如果符合上述條件,就設畫素為1。
  • 腐蝕:操作為AB
    ={z|(B)zA}
    如果是灰度影象則表示為(fb)(s,t)=min{f(s+x,t+y)b(x,y)|(s+x,t+y)Df;(x,y)Db} ,這裡B不執行原點翻轉操作,目的是為了讓腐蝕和膨脹操作成為對偶操作:(AB)c=AcB^.
  • 開操作:表示為AB=(AB)B,先腐蝕後膨脹,可以光滑輪廓,斷開狹窄的間斷和消除細的突出物
  • 閉操作:表示為AB=(AB)B,先膨脹後腐蝕,可以光滑輪廓,消彌狹窄的間斷和長細的鴻溝,消除小的空洞,並填補輪廓線中的斷裂。開操作和閉操作是對偶關係:(AB)c=(AcB^)
  • 擊中變換:是一種簡單的檢測形狀的方法,屬於模板匹配,表示為AB
    =(AX)[Ac(WX)]
    ,其中A是形狀集合,B表示X和X的背景(其實就是找X),X是待檢測的形狀,W是包圍X的一個小視窗但不一定是全圖。
  • 邊界提取:先腐蝕一次A,A的輪廓就被去掉了,然後前後相減就得到A的邊界:β(A)=A(AB)
  • 填充空心區域:從空心區域A內部的一個點P出發進行迭代膨脹操作,表示為Xk=(Xk1B)Ac,其中B是膨脹模板,X0就是P,從P出發進行膨脹,然後與A的補集相交部分就是A的內部,這樣保證不會重複填充A區域。由於P必須位於A內部,P的膨脹部分也不會越過A的邊界,因此不會填充A外圍。
  • 提取聯通分量:設P是A的一個點,那麼執行迭代膨脹操作Xk=(Xk1
    B)A
    ,其中B是膨脹模板,X0就是P,與A相交保證膨脹部分始終是A的分量。
  • 求取凹集合A的凸殼。凸形指內部任意兩個點的直線段都在其內部的圖形,有重要研究使用價值。集合A的凸殼H是包含A的最小凸形集合,H-S稱為S的凸缺。用多個不同模板Bi,執行迭代擊中變換Xik=(Xk1Bi)A;H(A)=Xiconv
  • 細化:A(AB)c,其中B是多個不同的模板,稱為結構元素,我們需要用B來多次擊中A直到收斂。細化相比腐蝕,需要儘可能保留形狀。
  • 粗化:是細化的對偶過程,寫為A(AB)
  • 骨架提取:令Sk(A)=(AkB)(AkB)B,k表示要執行k次操作,直到被腐蝕為空集之前的一次。骨架為S(A)=Sk(A),即所有骨架子集的並集。
  • 頂帽操作(top-hat):h=f(fb)用於灰度圖處理,用於增強陰影細節。