[實做筆記區]
※6.1 Interpolation of Data
Start with a simple problem:suppose we have a collection of four values that we wish to enlarge to eight.
「如何把四個數字擴大八個數字?」
在6.1中一共提到了四個方法,
而Figure6.1與6.2指的是同一種方法...
「Slightly redrawn」 (Page.120)
X1 ~ X4 之間一共有三個間隔,而每個間隔相差的直為1
X'1 ~ X'8 的長度與 X1~X4的長度相等,此外
X'1 ~ X'8之間一共有七個間隔,每個間隔的大小為3/7 也就是0.4286
數學公式如下:X'=1/3(7x-4)
X =1/7(3x'+4)
「Nearest-neighbor interpolation」 (Page.120)
X →X' 挑最近的的點 如6.3所示
X1最近的點:X'1 & X'2 (課本於X'2標空圈)
X2最近的點:X'3 & X'4
X3最近的點:X'5 & X'6
X4最近的點:X'7 & X'8 (課本於X'7標空圈)
「Linear interpolation」 (Page.121)
F-f(X)/λ = f(X2)-f(X1)/1
→F=λf(X2)+(1-λ)f(X1)
註:F是想知道的X'n
λ是以 X1 到 X2 的距離,F距離 X1 佔整段比例的比數
※6.2 Image Interpolation
6.1提到了點與線之間的數值放大(使用線性做範例)
6.2則是一個面的,也就是Image。
Example:將4×4的Image放大到8×8
(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)
Matlab內有個function叫做 imresize 負責上述提過的處理
語法是:resize(A, k, 'method')
method一共有:'nearest', 'bilinear', 'bicubic' 三種方法
※6.3 General Interpolation (Page.125)
本節提到的是cubic interpolation
也就是Method中的bicubic....
f(x')=R3(-1-λ)f(x1)+R3(-λ)f(x2)+R3(1-λ)f(x3)+R4(2-λ)f(x4)
x'透過 x1, x2, x3, x4 共四個點計算出
解讀如下:
因為計算的過程中該曲線f(x) x值 最高項次是 3次方
此外,在平面上求得(x',y')需仰賴bilinear的概念
故稱為bicubic interpolation
※6.4 Enlargement by Spatial Filtering
在Enlarge的過程中使用filter(?)
※6.5 Scaling Smaller
似乎可以用公式畫圓(但是沒有成功= =)
※6.6 Rotation (旋轉)
將圖片(中的每個點)旋轉Θ度
語法如下:var = imrotate(c,60);
//將c旋轉60度的值給var
此外,旋轉90度的倍數有特殊的語法
90度:c90 = flipud(c);
180度:c180 = filplr(flipud(c));
270度:c270 = fliplr(c);
※6.7 Anamorphosis (失真圖像)
[問題區]
1. Page 120, Figure 6.3
Nearest-neighbor interpolation,以空圈標記了最近的點
然而位於邊緣的 X1 ,與 X4 僅僅標記了X'2與X'7
X'1與X'8並未被標,是因為重疊的關係?
在這張圖,從 X'→X 似乎沒有太大的問題
然而從 X→X' 是否如字面意義挑最近的點
例如 X'3 較 X'4更接近 X2...X→X'時,X2是否取X'3的值
2. Page 137
90度:c90 = flipud(c);
180度:c180 = filplr(flipud(c));
270度:c270 = fliplr(c);
因為課本上使用imrotate的旋轉,是逆時鐘旋轉...
然而這邊提到特殊與法的時候,有提到度數
我以為c90的結果應該與imrotate(c,90)相同
然而實際上並不是,而是往下折(x,y')
c180 也不等於 imrotate(c,180)而是(x',y')
c270 是(x',y)
註:(x,y')是指 x 相對位置不變,y的位置作映射
(x',y') x y 作映射
(x',y)是指 y 相對位置不變,x的位置作映射
這樣算是我解讀上有所問題嗎?
沒有留言:
張貼留言