這章是把上一章講述到的Neighborhood Processing再做更深入的講解。
Neighborhood Processing即藉由鄰近的pixel彼此產生一個function,而以下提及的部份就是Neighborhood Processing的應用。
- filter:對要處理的pixel取其周圍的點(包含該pixel)形成一個mask,針對該pixel與形成的mask做處理,產生一個新的點取代原本的pixel。
- linear filter:filter結果產生的新值,如果都是屬於mask裡擁有的值,那麼就把其稱為linear filter。
可以使用矩陣方式來表示filter。
5.2.1 Edges of the Image
filter有一個問題,那就是如果在圖像邊緣做mask,範圍就會跑到圖像外面,而這個小節就是在告訴我們怎樣避免這樣的問題。
方法一:忽略邊緣的地方不做。
方法二:把超出圖像範圍的mask值全部代入0以解決問題。
5.3 Filtering in MATLAB
這節顧名思義就是用MATLAB玩出filter啦!
- filter2(filter, image, shape)
filter處填入你想要成為令為filter的矩陣,至於在MATLAB矩陣製成方式為
- a=ones(x,y)/z
a為任意參數,ones為矩陣名稱,(x,y)為設定的矩陣大小,將(x,y)每個點除以z即形成filter矩陣。
而image即是你想做filter處理的圖像。
shape可代入三種數值:
- 'same':連同邊緣作filter處理,用的即是5.2.1的方法二。
- 'valid':只處理內部(指不含邊緣)的,即5.2.1的方法一,而處理過後的圖片會比原本的圖片小。
- 'full':這部份我就看不是很懂了....
5.3.1 Separable Filters
說明filter也可拆解(如果可拆的話)做處理。
舉例:
- [filterA]=[filterB][filterC],而對imageA做filterA處理等同於對imageA做filterB後再做filterC。
5.4 Frequencies: Low- and High-Pass Filters
5.5 Gaussian Filters
5.6 Edge Sharpening
5.6.2 High-Boost Filtering
5.7 Nonlinear Filters
5.8 Region of Interest Processing
只對一整張圖片的某部份做filter的處理,簡稱ROIs,而其過程稱為ROI processing。
5.8.1 Region of Interest Processing in MATLAB
在MATLAB裡做ROI處理的指令為
- roipoly(image, [欲作處理的區域範圍的列], [欲作處理的區域範圍的行]);
舉一例如圖 ↑左下方寫錯,應為(25,75)
如果想在中間(25,25),(75,25),(25,75),(75,75)做ROI,則程式碼寫法為:
roipoly(image, [25 25 75 75], [25 75 25 75]);
5.8.2 Region of Interest Filtering
沒寫完真是對不住,不過這章真的有點多又有些難度orz....
沒有留言:
張貼留言