計算機視覺工程師在面試過程中主要考察三個內容:圖像處理、機器學習、深度學習。然而,各類資料紛繁複雜,或是簡單的知識點羅列,或是有着詳細數學推導令人望而生畏的大部頭。爲了督促自己學習,也爲了方便後人,決心將常考必會的知識點以通俗易懂的方式設立專欄進行講解,努力做到長期更新。此專欄不求甚解,只追求應付一般面試。希望該專欄羽翼漸豐之日,可以爲大家免去尋找資料的勞累。每篇介紹一個知識點,沒有先後順序。想了解什麼知識點可以私信或者評論,如果重要而且恰巧我也能學會,會盡快更新。最後,每一個知識點我會參考很多資料。考慮到簡潔性,就不引用了。如有冒犯之處,聯繫我進行刪除或者補加引用。在此先提前致歉了!
原理
膨脹,腐蝕,開運算,閉運算都是圖像形態學操作。
我們只分析二值圖像的情況,以下有顏色的是1,沒有顏色的是0。
膨脹:
定義結構體B的原點,通常就是其中心。
在整張圖上移動B,如果A與B有交集,那麼填補B的原點所在的位置。
A ⊕ B = { x,y | B∩A≠∅ }
腐蝕:
定義結構體B的原點,通常就是其中心。
用B的原點遍歷A中的每一個點,如果B中的所有點都落在A內,那麼B的原點所處的位置保留,否則去除。
A ⊖ B = { x,y | B⊆A }
開運算:
先腐蝕後膨脹。
閉運算:
先膨脹後腐蝕。
作用與記憶
其實原理大家都懂,主要是它們的作用可能記不住,尤其是開閉運算中腐蝕和膨脹的順序。
膨脹和腐蝕的作用可以顧名思義。
膨脹:變大,填充空洞,填充目標區域的小顆粒噪聲。
腐蝕:變小,消除細小物體。
開運算,先腐蝕,後膨脹。
閉運算,先膨脹,後腐蝕。
膨脹和腐蝕的作用是相反的。
先後使用的目的是後者是對前者的彌補。
開運算的主要目的是前者腐蝕,後者膨脹是對腐蝕過度的彌補。
閉運算的主要目的是前者膨脹,後者腐蝕是對膨脹過度的彌補。
所以
開運算的作用類似腐蝕,卻弱於腐蝕:
消除纖細連接,平滑大物體邊緣。
閉運算的作用類似膨脹,卻弱於膨脹:
填補空洞,連接相近物體,平滑邊緣。
兩者都能平滑邊緣的理解:
開運算腐蝕掉了邊緣不平滑的地方。
閉運算將邊緣不平滑的地方進行了膨脹填充變得平滑。
最後就是膨脹和腐蝕順序的記憶,可以和大家分享一下我的:
膨脹、開:+
腐蝕、閉:-
開運算先腐蝕後膨脹:+ - +
閉運算先膨脹後腐蝕:- + -
這樣可能好記點?可能大家都能記住,我比較菜。。。
完
歡迎討論 歡迎吐槽