2008年12月18日 星期四

Chapter 6

Chapter 6: IMAGE GEOMETRY

6.1 Interpolation of Data

要如何把一個固定長度上的四點要增加為八點?

FIGURE6.1
X1 ~ X4 之間共有三個間隔,每個間隔各為1。
X'1 ~ X'8之間共有七個間隔,而且X'1~X'8 的長度與 X1~X4的長度相等,增加為八個點後,每個間隔的大小各為3/7,也就是0.4286。
可得出x與x'的關係式:
X'=1/3(7x-4)
X =1/7(3x'+4)

除了起始與終點,沒有新的點對齊到舊的點的,所以經由Xi附近已知的點Xj找出f(Xi)'。若Xj是最靠近xi'的點,此方法稱為nearest-neighbor interpolation。如FIGURE6.3所示。

Linear interpolation
 F-f(X)/λ = f(X2)-f(X1)/1 →F=λf(X2)+(1-λ)f(X1)



6.2Image Interpolation

將圍繞點(x',y')的原來四點連成一個矩形,在矩形中的點(x',y')垂直延伸找到與邊相交的兩點(x,y')、(x+1,y')。藉由橫邊的比例與線兩邊的點各算出(x,y')、(x+1,y'),直邊的比例與剛才求出的線兩邊的點來算出(x',y')。
公式稱為:bilinear interpolation
->f(x',y')=λμf(x+1,y+1)+λ(1-μ)f(x+1,y)+(1-λ)μf(x,y+1)+(1-λ)(1-μ)f(x,y)

‧imresize(A,k,'nearest'); -> 將影像陣列A使用scaling factor k與nearest-neighbor interpolation方法resize。

‧imresize(A,k); -> nearest-neighbor interpolation。

‧imresize(A,[m,n],'bilinear'); -> [m,n]:輸出的影像大小。



6.3General Interpolation

希望interpolate a value f(x')在x1<=x'<=x2之間,並假設x'-x1=λ。定義interpolation function R(u)且f(x')=R(-λ)f(x1)+R(1-λ)f(x2)。 舉出不同的R(u)函數當例子: 1.R0(u)={0 if(u<=-0.5)      {1 if(-0.5<=0.5)     {0 if(u>0.5)

2.R1(u)={1+u if(u<=0)     {1-u if(u>=0)

3.cubic interpolation
R3(u)={1.5|u|^3-2.5|u|^2+1   if(|u|<=1,     {-0.5|u|^3+2.5|u|^2-4|u|+2 if(1<|u|<=2 f(x')=R3(-1-λ)f(x1)+R3(-λ)f(x2)+R3(1-λ)f(x3)+R4(2-λ)f(x4) bicubic interpolation (看不懂書上說先做直行或先做橫列有何作用!?)



6.4 Enlargement by Spatial Filtering

要將影像放大兩倍,有個快速的方法就是使用linear filtering。
對矩陣做zero-interleave,就是在原行列加0。在放大的過程中使用filter。
(接下來就不懂了)



6.5 Scaling Smaller

讓影像變小稱為image minimization。
有一種方法是刪除間隔的pixel,稱為subsampling。但對high-frequency components的部分效果不佳。



6.6 Rotation
將影像旋轉θ度
var = imrotate(c,60);->將c旋轉60度

旋轉90度的倍數有不一樣的語法
90度:c90 = flipud(c);
180度:c180 = filplr(flipud(c));
270度:c270 = fliplr(c);



6.7 Anamorphosis(錯覺表現法 )

▪ imresize(imrotate(skull,-22,'bicubic'),[500,150],'bicubic');


視覺藝術中一項獨創性的透視法(perspective)。從通常的視角觀看,畫中物像呈現畸形;若從特定角度觀看,或用凹凸鏡觀察,畫中物像重歸正常。目的在娛樂或神秘化,是14~15世紀新發現的透視法的奇妙副產品,被視為是技巧精湛的一種呈現。在達文西的畫稿簿中可以見到最早的畫例。(上網查的資料)

沒有留言:

張貼留言