2008年12月18日 星期四

CH6


Nearest-neighbor interpolation

(較近的鄰近的插補)

figure 6.3 的圖明顯的指出
    X3'  X4'
    ○● ○        X7' X8'
         X5'  X6'  ○ ●
         ○ ● ○    
● ○
X1' X2' 

1    2     3      4

●分別對應1234,因為X1' X2'離 1 較近,所以X1' X2'的值就和 1 相同
X3' X4' 則離 2 比較近所以X3' X4' 的值就和 2 相同
X5' X6' X7' X8' 也是如此,作插補得值會因為離最近的一點而當作相同value
這就是Nearest-neighbor interpolation

至於Linear interpolation
書上說經由直線和把那些插補的value放在直線上

figure 6.4的圖 把四個●筆直的連起來
然後再把插補的值,直直的往上放在線上,去當作插補後的value。

6.2
就講到對 image 作插補
接著,p.122下面是打算把一個 4*4 的 image 經由插補 變成 8*8 的 image
於是又是一串數學計算
算到最後的方程式
就是書上想說的 bilinear interpolation

http://zh.wikipedia.org/w/index.php?title=%E5%8F%8C%E7%BA%BF%E6%80%A7%E6%8F%92%E5%80%BC&variant=zh-tw
上面是維基百科的解釋
雙線性插值是有兩個變數的差值函數的線性差值擴展,其核心思想是在兩個方向分別進行一次線性插值。
看p.123的圖 他所敘述的兩個方向應該是X、Y軸
老實說 維基的解釋我看得霧煞煞冏

這時偉大的 Matlab 又有指令可以去做這件事
imresize(A,K,'method')

A是放 "image",K是排列的要素,method則是要用哪種方法
比如之前所說的 " Nearest "或" bilinear "。
p.125就明顯看出 差異了
原本的 image 是 Figure 6.8,而做鄰近插補的則是Figure 6.9 的 (a)
可以看出因為會和靠近的point相同value,所以會有菱菱角角的。
而經由雙線性插補後,感覺變朦朧了。

6.3

這章蠻多數學計算式子的
cubic interpolation
三次插補
bicubic interpolation
雙立方插補

這兩個插補法的英文看起來還蠻相似的
根據我 google 一下 bicubic interpolation
他可以把 image 明顯改善邊緣鋸齒化的缺陷,

6.4
enlargement by spatial filtering
經由空間性的過濾來放大

zero-interleaved 插入0
在原本的矩陣的行和列之間 插入0進去
那麼矩陣的大小就會變兩倍了。
因為插入了0 會讓整個 image 會有明顯的一小格一小格的黑點

p.132 有到目前的插補法所呈現出來的 image 。

6.5
subsampling (部分取樣)

根據老賴對我的解說是
p.133的左邊的圖原本是分散的,把點跟點之間縮小 
就會變成,右邊的圖了。

6.6
rotation (旋轉)
是對 image 作角度的旋轉。
指令
imrotate(c,60,'bicubic')

第一位置放的是 image 第二是放旋轉的角度,第三是放要做哪種插補運算。

6.7
anamorphosis (失真圖像)
Figure 6.25 的圖就發現了下方有個扭曲的不明物體
而書上也有把那不明物體給矯正回來
似乎是用指令
skull = a(566:743,157:586)

還蠻神奇的 話說Figure 6.25 的圖原本就畫那樣還蠻妙的
那時期的畫家的畫風跟現今的人還真是不一樣。


沒有留言:

張貼留言