2021-03-04 Halcon初学者知识 【18】谈谈秩滤波(Rank filter)
對一幅圖像進行各種空間域濾波可能大家都比較熟悉,本篇我們專門講講不太常見的濾波模式----秩濾波。這種濾波是基于對圖像的區域進行奇異值分解而得到。換句話說,如同均值濾波,總有一個filter區域,在該區域取均值填充,秩濾波也取filter,只是將filter的像素進行奇異值分解后,用結果數據填充。
如果讀者對奇異值分解不太清楚,也可以這樣理解:“中值濾波是取中間,Rank濾波專門取兩頭”。
關于光照處理的相關函數;首先是:
rank_image(Image,?Mask?:?ImageRank?:?Rank,?Margin?: )
Image:輸入被測量圖片
Mask:過濾區域(圓,矩形均可)用gen_circle (Mask, 200, 200, 10.5)語句生成;
?ImageRank:被分成等級的圖像,輸出項。
Rank:被分的等級,1 ≤?Rank?≤ 4095,考慮其它亞像素圖像,這個等級很多。
Margin:是對邊緣如何處理,或補零、或鏡像等。
** 灰度分級的操作,先建立一個Mask區域,通過將該區域在整個圖像滑動,獲取圖像的等級圖像;
* Smooth an image with an arbitrary rank mask. * read_image (Image, 'cross') gen_circle (StructEl, 200, 200, 3.5) area_center (StructEl, Area, Row, Column) rank_image (Image, StructEl, Dilation, Area, 'mirrored') rank_image (Dilation, StructEl, Closing, 1, 'mirrored')??
左邊是原圖,右邊是經過處理的圖像
?
dual_rank(Image?:?ImageRank?:?MaskType,?Radius,?ModePercent,?Margin?: )
Image:輸入被測量圖片
ImageRank:被分成等級的圖像,輸出項。
?MaskType:兩個選項來指定Mask形狀: 'circle',? 'square'
?Radius : Mask尺寸 1 ≤?Radius?≤ 101
?ModePercent:0 ≤?ModePercent?≤ 100 選擇百分率;如果是0.5,就是中值濾波
?Margin:是對邊緣如何處理,或補零、或鏡像等。
說明:運算符dual_rank過程中將兩次調用rank_image函數。在第一次調用時,使用指示的范圍(ModePercent)計算范圍灰度值。將運算結果當做輸入,進一步調用rank_image,這次使用范圍值100%。
read_image(Image,'cross') dual_rank(Image,ImageOpening,'circle',3.5,90,'mirrored') disp_image(ImageOpening,3600)總結
以上是生活随笔為你收集整理的2021-03-04 Halcon初学者知识 【18】谈谈秩滤波(Rank filter)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Halcon初学者知识【19】带pain
- 下一篇: 2021-03-08 Halcon初学者