2008年12月4日 星期四

Chapter 5_Neighborhood Processing~

5.1 ====================

Neighborhood processing 在ch4也有稍微提到.
一點pixel的資料,與鄰近的pixel的資料息息相關.
不能只靠單一pixel來決定,要以鄰近的pixel作為依據.

不過在這章還多提到了mask和filter和linear filter.
mask在之前的印象是"遮罩"的意思,不曉得在這有別的意思嗎?
filter之前倒是沒聽過,查字典,說是"過濾"之類的意思.
當然加了linear更不知道是什麼了.線性過濾??(依然不明白)

比較看得懂的有一句,就是mask的邊長通常是奇數.
ex:
□□□□□
□□■□□
□□□□□
因為邊長是奇數,中心才能是完整的一點pixel.(也是為了對稱.)
有中央的pixel,才有所謂鄰近的pixel.

課本上好像是說鄰近的pixel值,乘上相對應的pixel值,再加總,就是filter的運算.
但是我有點搞不太清楚它相對應的pixel值是從哪來的??(對應的是mask嗎??)

[p.89]的figure 5.2 的mask是怎麼決定的??(從哪來的??)

[p.89]convolution,字典查是"迴旋".
但這裡跟迴旋有關係嗎??
我是還有看到180度還有乘積之類的地方.
但是這裡的描述我還是不太了解...
網路上是查到空間迴旋運算.


5.2 ====================

這裡好像是說linear filter 可以簡易地決定mask裡的pixel值.
它將係數放入矩陣內,以係數來決定鄰近pixel值的比例.
不過似乎還是沒講清楚,這係數是怎麼來的....

之後還提出了兩個作法:
Ignore the edges(忽視邊)和Pad with zeros(補零)
似乎都是為了防止資料遺失或錯誤.


5.3 ====================

一開始
我們的x=uint8(10*magic(5))
不過我有一點覺得有點奇怪.
為什麼x不直接隨便取一個5*5的矩陣就好了,
而要用5*5的魔術矩陣(橫直斜的總合都一樣)呢??
(難不成又是作者高興.)

filter2(a,x,'same')
filter2(a,x,'valid')
filter2(a,x,'full')

x=>5*5
same=>5*5 ->陣列邊長不變
valid=>3*3 ->陣列邊長各-2
full=>7*7 ->陣列邊長各+2



5.4 ====================

雖然這裡說了一堆frequencies的filter,
但是內容有看沒有懂.
high-pass filter(高通濾波器) => 讓高頻通過
low-pass filter(低通濾波器) =>讓低頻通過

另外,
可以看出p.98的4*4陣列轉成2*2陣列的方法.
它相當於是run了
filter2(a,x,'valid')指令
a陣列為p.97的:
1 -2 1
-2 4 -2
1 -2 1

x陣列為p.98的4*4的那個陣列:
150 152 148 149
147 152 151 150
152 148 149 151
151 149 150 148

ans:
11  6
-13 -5

11 ←1*(150+148+152+149)+(-2)*(152+147+151+148)+4*152
6 ←1*(152+149+148+151)+(-2)*(148+152+150+149)+4*151
-13 ←1*(147+151+151+150)+(-2)*(152+152+149+149)+4*148
-5 ←1*(152+150+149+148)+(-2)*(151+148+151+150)+4*149
(用迴旋積的作法,即可驗證.)

p.98
提到'laplacian'和'log'
尤其是laplacian(簡稱:拉斯轉換)
我不太清楚它一開始是由哪一組樣本, 去做拉斯轉換的.
是p.97的那個3*3陣列嗎??(我不太確定..)

而且這裡的laplacian是之前(工程數學)學過的那個laplacian嗎?
雖然不確定,我還是用之前那不順眼?的式子的結果,去算算看.
(別問我那個公式,相信我,你不會想知道~)

最後算出來的結果再*10,
結果就和p.98的數值有相符.
雖然不曉得為何要*10,但還是乘了~ (就是湊出來~


p.99
filter後,如果gray value 不在[0~255]的處理:
1.Make negative value positive
(我不太懂內容的意思..)

2.Clip value
0,if x<0
x,if 0≦x≦255
255,if x >255
雖然有給值域和定義域,
不過一旦遇上有很多超過[0~255]的數的情況,
就會發生問題了~

3.Scaling transformation.
y=255*(x-gL)/(gH-gL)
又是一條直線方程式.
簡單的說就是,將超過[0~255]的值,
依比例轉成符合[0~255]範圍內的值.

沒有留言:

張貼留言