6.1
Interpolation of Data(資料添寫或插補)
Interpolation(內插法):是利用相鄰四點的像素值,依照已知的非整數座標相鄰距離的遠近,根據比例求得取樣值。也就是接近哪個點就像那個點。距離近的取樣比例大,距離遠的取樣比例小。
Nearest-neighbor interpolation(鄰近點內插法):將附近已知的像素利用微分來推測出值。
Iinear interpolation(線性內插法):在二個已知數據點間畫一條直線,新的數據點就位於這條直線上,具體位置要根據其值與二個端點之一的接近程度確定。
6.2
Image Interpolation(影像添寫或插補)
Bilinear interpolation(雙線性內插法):以一維線性內插法求得點的位置,再以同樣的一維線性內插法求得點位置,這種考慮到二維的情形,用了兩次線性內插,就稱為雙線性內插。
從課本figure 6.9就可以看出鄰近點內插法和雙線性內插法的差別,鄰近點內插法會造成鋸齒狀的效果,雙線性內插法則是比較平緩。
6.3
General InterpolationCubic
Interpolation(立方內插法):在三維的矩陣內用線性內插法來計算值線性,和內插法是一樣的原理。
Bicubic interpolation(雙立方體插值法):雙線性內插的延伸,從二維進階到三維來做。
課本一開始希望插補x'在x1和x2之間(x1≤x'≤x2),並假設x'-x1=λ。
然後定義一個interpolation function R(u)
且 f(x')=R(-λ)f(x1)+R(1-λ)f(x2)。 課本在此舉出:
R0(u):nearest-neighbor interpolation
R1(u):bilinear interpolation
R3(u):cubic interpolation
三種不同的R(u)函數當例子。
6.4
Enlargement by Spatial Filtering:藉由空間濾波器來放大影像。
linear filtering:線性濾波器,先是是對某矩陣做zero-interleave(零交錯),再進行過濾(filtering)。
6.5
Scaling Smaller
圖片抽樣:圖就是一個圓的抽樣點。
Image minimization:影像最小化。
Subsampling是把兩個點中間畫素移除的一種方法;但對高頻的部分效果不佳。
6.6
Rotation
利用矩陣旋轉圖形的公式可知旋轉後的點為何:
逆時針旋轉
[x']=[cosθ -sinθ][x]
[y'] [sinθ cosθ][y]
如果θ是直角,以下也可成立
[x]=[cosθ sinθ][x']
[y] [-sinθ cosθ][y']
在MATLAB中可使用imrotate(image,angle,'method');指令來旋轉影像
其中method表示nearest、bilinear或bicubic
angle是指定的旋轉角度
ipud可以顛倒(使相反)行跟列
iplr讓影像上下相反
flipud(c'); - 旋轉90°
fliplr(flipud(c)); - 旋轉180°
fliplr(c'); - 旋轉 270°
6.7
Anamorphosis 失真圖像(歪像)
課本中有提到在16、17世紀時候的畫家很流行使用這種技術。
並以 德國畫家:小漢斯·荷爾拜因 在1533年所畫的《大使們》為例子。
在MATLAB中的指令為rgb2gray(),指定範圍:skull= a(566:743,157:586);
消除這種歪斜效果的指令:
skull2=imresize(imrotate(skull,-22,'bicubic'),[500,150],'bicubic');
沒有留言:
張貼留言