久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

數(shù)字圖像插值算法:最臨近插值和雙線性插值

 開花結(jié)果 2010-09-07

圖像的 縮放很好理解,就是圖像的放大和縮小,。傳統(tǒng)的繪畫工具中,有一種叫做“放大尺”的繪畫工具,,畫家常用它來放大圖畫。當(dāng)然,,在計(jì)算機(jī)上,,我們不再需要用放大 尺去放大或縮小圖像了,把這個工作交給程序來完成就可以了,。下面就來講講計(jì)算機(jī)怎么來放大縮小圖象,;在本文中,我們所說的圖像都是指點(diǎn)陣圖,,也就是用一個 像素矩陣來描述圖像的方法,,對于另一種圖像:用函數(shù)來描述圖像的矢量圖,不在本文討論之列,。
越是簡單的模型越適合用來舉例子,,我們就舉個簡單的圖 像:3X3 的256級灰度圖,也就是高為3個象素,,寬也是3個象素的圖像,,每個象素的取值可以是 0-255,代表該像素的亮度,,255代表最亮,,也就是白色,,0代表最暗,即黑色 ,。假如圖像的象素矩陣如下圖所示(這個原始圖把它叫做源圖,,Source):
234   38    22
67     44    12
89     65    63

這個矩陣中,元素坐標(biāo)(x,y)是這樣確定的,,x從左到右,,從0開始,y從上到下,,也是從零開始,,這是圖象處理中最常用的坐標(biāo)系,就是這樣一個坐標(biāo):

  ---------------------->X
  |
  |
  |
  |
  |
∨Y

如果想把這副圖放大為 4X4大小的圖像,,那么該怎么做呢,?那么第一步肯定想到的是先把4X4的矩陣先畫出來再說,好了矩陣畫出來了,,如下所示,,當(dāng)然,矩陣的每個像素都是未知數(shù),,等待著我們?nèi)ヌ畛洌ㄟ@個將要被填充的圖的叫做目標(biāo)圖,Destination):
                      
                      
                      
                        
               
        然后要往這個空的矩陣?yán)锩嫣钪盗?,要填的值從哪里來來呢?是從源圖中來,,好,,先填寫目標(biāo)圖最左上角的象素,坐標(biāo)為(0,,0),,那么該坐標(biāo)對應(yīng)源圖中的坐標(biāo)可以由如下公式得出:                                     
srcX=dstX* (srcWidth/dstWidth) , srcY = dstY * (srcHeight/dstHeight)
好了,套用公式,,就可以找到對應(yīng)的原圖的坐標(biāo)了(0*(3/4),0*(3/4))=>(0*0.75,0*0.75)=>(0,0)
,找到了源圖的對應(yīng)坐標(biāo),就可以把源圖中坐標(biāo)為(0,0)處的234象素值填進(jìn)去目標(biāo)圖的(0,0)這個位置了,。

接下來,如法炮制,尋找目標(biāo)圖中坐標(biāo)為(1,0)的象素對應(yīng)源圖中的坐標(biāo),套用公式:
(1*0.75,0*0.75)=>(0.75,0)
結(jié)果發(fā)現(xiàn),得到的坐標(biāo)里面竟然有小數(shù),這可怎么辦?計(jì)算機(jī)里的圖像可是數(shù)字圖像,象素就是最小單位了,象素的坐標(biāo)都是整數(shù),從來沒有小數(shù)坐標(biāo)。這時候采用的一種策略就是采用四舍五入的方法(也可以采用直接舍掉小數(shù)位的方法),,把非整數(shù)坐標(biāo)轉(zhuǎn)換成整數(shù),,好,那么按照四舍五入的方法就得到坐標(biāo)(1,,0),,完整的運(yùn)算過程就是這樣的:
(1*0.75,0*0.75)=>(0.75,0)=>(1,0)
那么就可以再填一個象素到目標(biāo)矩陣中了,同樣是把源圖中坐標(biāo)為(1,0)處的像素值38填入目標(biāo)圖中的坐標(biāo),。
         
依次填完每個象素,,一幅放大后的圖像就誕生了,像素矩陣如下所示:
234    38     22     22 
67      44     12     12 
89      65     63     63 
89      65     63     63  

這種放大圖像的方法叫做最臨近插值算法, 這是一種最基本,、最簡單的圖像縮放算法,,效果也是最不好的,放大后的圖像有很嚴(yán)重的馬賽克,,縮小后的圖像有很嚴(yán)重的失真,;效果不好的根源就是其簡單的最臨 近插值方法引入了嚴(yán)重的圖像失真,比如,,當(dāng)由目標(biāo)圖的坐標(biāo)反推得到的源圖的的坐標(biāo)是一個浮點(diǎn)數(shù)的時候,,采用了四舍五入的方法,直接采用了和這個浮點(diǎn)數(shù)最接 近的象素的值,,這種方法是很不科學(xué)的,,當(dāng)推得坐標(biāo)值為 0.75的時候,不應(yīng)該就簡單的取為1,,既然是0.75,,比1要小0.25 ,比0要大0.75 ,那么目標(biāo)象素值其實(shí)應(yīng)該根據(jù)這個源圖中虛擬的點(diǎn)四周的四個真實(shí)的點(diǎn)來按照一定的規(guī)律計(jì)算出來的,,這樣才能達(dá)到更好的縮放效果。雙線型內(nèi)插值算法就是一種 比較好的圖像縮放算法,,它充分的利用了源圖中虛擬點(diǎn)四周的四個真實(shí)存在的像素值來共同決定目標(biāo)圖中的一個像素值,,因此縮放效果比簡單的最鄰近插值要好很 多。

雙線性內(nèi)插值算法描述如下:
  對于一個目的像素,,設(shè)置坐 標(biāo)通過反向變換得到的浮點(diǎn)坐標(biāo)為(i+u,j+v) (其中i,、j均為浮點(diǎn)坐標(biāo)的整數(shù)部分,u,、v為浮點(diǎn)坐標(biāo)的小數(shù)部分,,是取值[0,1)區(qū)間的浮點(diǎn)數(shù)),則這個像素得值 f(i+u,j+v) 可由原圖像中坐標(biāo)為 (i,j),、(i+1,j),、(i,j+1)、(i+1,j+1)所對應(yīng)的周圍四個像素的值決定,,即:

  f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1)                          公式1

其中f(i,j)表示源圖像(i,j)處的的像素值,,以此類推。


比 如,,象剛才的例子,,現(xiàn)在假如目標(biāo)圖的象素坐標(biāo)為(1,1),,那么反推得到的對應(yīng)于源圖的坐標(biāo)是(0.75 , 0.75), 這其實(shí)只是一個概念上的虛擬象素,實(shí)際在源圖中并不存在這樣一個象素,那么目標(biāo)圖的象素(1,,1)的取值不能夠由這個虛擬象素來決定,而只能由源圖的這四 個象素共同決定:(0,0)(0,,1)(1,,0)(1,1),,而由于(0.75,0.75)離(1,,1)要更近一些,那么(1,1)所起的決定作用更大一 些,,這從公式1中的系數(shù)uv=0.75×0.75就可以體現(xiàn)出來,,而(0.75,0.75)離(0,0)最遠(yuǎn),,所以(0,,0)所起的決定作用就要小一些, 公式中系數(shù)為(1-u)(1-v)=0.25×0.25也體現(xiàn)出了這一特點(diǎn),;

最鄰近插值和雙向性內(nèi)插值縮放圖片的效果對比:


     原始圖片

     最鄰近插值放大圖片

   雙線型內(nèi)插值放大圖片

 

插值算法對于縮放比例較小的情況是完全可以接受的,,令人信服的。一般的,,縮小0.5倍以上或放大3.0倍以下,,對任何圖像都是可以接受的。


最鄰近插值(近鄰取樣法):
最 臨近插值的的思想很簡單,。對于通過反向變換得到的的一個浮點(diǎn)坐標(biāo),,對其進(jìn)行簡單的取整,得到一個整數(shù)型坐標(biāo),,這個整數(shù)型坐標(biāo)對應(yīng)的像素值就是目的像素的像 素值,,也就是說,取浮點(diǎn)坐標(biāo)最鄰近的左上角點(diǎn)(對于DIB是右上角,,因?yàn)樗膾呙栊惺悄嫘虼鎯Φ模?yīng)的像素值,。可見,,最鄰近插值簡單且直觀,,但得到的圖 像質(zhì)量不高


雙線性內(nèi)插值:
對于一個目的像素,設(shè)置坐標(biāo)通過反向變換得到的浮點(diǎn)坐標(biāo)為(i+u,j+v),,其中i,、j均為非 負(fù)整數(shù),u,、v為[0,1)區(qū)間的浮點(diǎn)數(shù),,則這個像素得值 f(i+u,j+v) 可由原圖像中坐標(biāo)為 (i,j)、(i+1,j),、(i,j+1),、(i+1,j+1)所對應(yīng)的周圍四個像素的值決定,即:

    f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1)

其中f(i,j)表示源圖像(i,j)處的的像素值,以此類推
這就是雙線性內(nèi)插值法,。雙線性內(nèi)插值法計(jì)算量大,,但縮放后圖像質(zhì)量高,不會出現(xiàn)像素值不連續(xù)的的情況,。由于雙線性插值具有低通濾波器的性質(zhì),,使高頻分量受損,所以可能會使圖像輪廓在一定程度上變得模糊


三次卷積法能夠克服以上兩種算法的不足,,計(jì)算精度高,,但計(jì)算亮大,他考慮一個浮點(diǎn)坐標(biāo)(i+u,j+v)周圍的16個鄰點(diǎn),,目的像素值f(i+u,j+v)可由如下插值公式得到:

    f(i+u,j+v) = [A] * [B] * [C]

[A]=[ S(u + 1) S(u + 0) S(u - 1) S(u - 2) ]

  ┏ f(i-1, j-1) f(i-1, j+0) f(i-1, j+1) f(i-1, j+2) ┓
[B]=┃ f(i+0, j-1) f(i+0, j+0) f(i+0, j+1) f(i+0, j+2) ┃
┃ f(i+1, j-1) f(i+1, j+0) f(i+1, j+1) f(i+1, j+2) ┃
┗ f(i+2, j-1) f(i+2, j+0) f(i+2, j+1) f(i+2, j+2) ┛

  ┏ S(v + 1) ┓
[C]=┃ S(v + 0) ┃
┃ S(v - 1) ┃
┗ S(v - 2) ┛

   ┏ 1-2*Abs(x)^2+Abs(x)^3      , 0<=Abs(x)<1
S(x)={ 4-8*Abs(x)+5*Abs(x)^2-Abs(x)^3 , 1<=Abs(x)<2
┗ 0                , Abs(x)>=2
S(x)是對 Sin(x*Pi)/x 的逼近(Pi是圓周率——π)


最鄰近插值(近鄰取樣法),、雙線性內(nèi)插值、三次卷積法 等插值算法對于旋轉(zhuǎn)變換,、錯切變換,、一般線性變換 和 非線性變換 都適用。

原文地址http://blog.csdn.net/qiqi5521/archive/2008/03/22/2207562.aspx

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多