2008年12月19日 星期五

CH6

前言

主要是在解釋Image Geometry(圖像幾何學)的意思....
簡單來說~
所謂的Image Geometry就是圖片的變形~
課本上舉的例子是affine transformations(仿射轉換)...
二維實數系對應到二維實數系的線性轉換....
在我的理解下~
我覺得應該是比較偏向鏡射的感覺~
不知道有沒有理解錯誤...

6.1

Interpolation(添寫、插補) of Data
主要目的~
當圖片放大時~
點多出來的點~
要如何處理....

Figure6.1在解釋nearest-neighbor interpolation(近臨內插法)~
就是在原本的點中間~
再插上相近的點....

有點像在兩個有色的點中間~
在補上幾個顏色"相同"的點~
用意在於讓圖可以放的更大....
但會出現馬賽克的效過(ex:圖6.9的a)~


而Figure6.1....
將原本為4個點增加成8個點~
而長度不變...

設原間距為1
則總長為3
而增點後的間距為3/7

故原X跟X'的關係式為:
X'=1/3(7x-4)
X =1/7(3x'+4)


linear interpolation(線性插值法)

做法如圖6.4...
先將原本的點顏色填上去連線後~
再把後來補上去的點...
放在連出來的線上~

意義就是....
補上去的點的值~
會用漸進色的方式被補上去~
好處當然就是不會變成一個相同顏色的色塊....
而造成類似馬賽克的效果~
用linear interpolation畫質會比nearest-neighbor interpolation來的清晰很多~



6.2

bilinear(雙線性) interpolation
用兩個變數來做interpolation...
使image有縮放的效果....

後半段有程式....
稍微做了一下...



>> c=imread('cameraman.tif');
>> head=c(33:96,90:153); //取左上座標(33,96)到右下座標(90,153)中間的範圍
>> imshow(head)
>> head4n=imresize(head,4,'nearest');imshow(head4n)//把head放大4倍並用nearest-neighbor interpolation(近鄰補插法)做處裡
>> head4b=imresize(head,4,'bilinear');imshow(head4b)//把head放大4倍並用bilinear(雙線性) interpolation 做處裡


左邊head4n(nearest-neighbor interpolation);中間原圖(head);右邊head4b(bilinear interpolation )


圖縮小之後比較看不出來左右的差異~
歡迎點進去看!!

這次的主要程式...
imresize(被處裡的原圖檔名,放大倍數,'要用哪種補插法')
整個就是很好理解~








6.3



Cubic(立方) interpolation:在三維的空間內使用內插法來計算值~
Bicubic interpolation:圖做出來的感覺明顯的馬賽克效果被去掉了,但較為模糊...





↑Bicubic interpolation處裡的效果
顏色較bilinear來的黯沉...



6.4

Zero-interleaving
在矩陣插上0~
讓整張影像變大~
但是會插上黑點...
造成有點 陣點的效果....


6.5





我閱讀的速度還是好慢~"~
只唸到6.3~QQ
不過第6章似乎有比第5章好理解~

沒有留言:

張貼留言