圖像插值算法

圖像插值算法

ID:38395785

大?。?20.15 KB

頁數(shù):79頁

時間:2019-06-11

圖像插值算法_第1頁
圖像插值算法_第2頁
圖像插值算法_第3頁
圖像插值算法_第4頁
圖像插值算法_第5頁
資源描述:

《圖像插值算法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、CSDN&ITeye招賢榜新版下載頻道用戶權(quán)限及積分規(guī)則詳解bShare分享,迅速提升10倍流量圖形圖像處理-之-高質(zhì)量的快速的圖像縮放下篇三次線性插值和MipMap鏈2007-04-0316:29477人閱讀評論(0)收藏舉報圖形圖像處理-之-高質(zhì)量的快速的圖像縮放下篇三次線性插值和MipMap鏈HouSisong@263.net2007.03.13tag:圖像縮放、速度優(yōu)化、定點數(shù)優(yōu)化、近鄰取樣插值、二次線性插值、三次線性插值、MipMap鏈、三次卷積插值、MMX/SSE優(yōu)化、CPU緩存優(yōu)化摘要:

2、首先給出一個基本的圖像縮放算法,然后一步一步的優(yōu)化其速度和縮放質(zhì)量;高質(zhì)量的快速的圖像縮放全文分為:上篇近鄰取樣插值和其速度優(yōu)化中篇二次線性插值和三次卷積插值下篇三次線性插值和MipMap鏈正文:A:對于前一篇文章中的二次線性插值、三次卷積插值算法,但它們處理縮小到0.5倍以下的時候效果就會越來越差;這是因為插值的時候自考慮了附近點的原因;如下圖:原圖近鄰取樣縮放到0.4倍縮放到0.2倍縮放到0.1倍二次線性插值縮放到0.4倍縮放到0.2倍縮放到0.1倍三次卷積插值縮放到0.4倍縮放到0.2倍縮放到0

3、.1倍可以看出:當(dāng)縮小的比例很大的時候,插值算法的效果和近鄰取樣的效果差不多了:(;一種可行的解決方案就是:縮小時考慮更多的點;但這種解決方案有很多缺點:函數(shù)編寫麻煩,速度也許會很慢,優(yōu)化也不容易做;還有一個方案就是預(yù)先建立一個縮放好的大小不同的圖片列表,每一張圖片都是前一張的0.5倍(這種圖片列表就是MipMap鏈),縮放的時候根據(jù)需要縮放的比例從表中選擇一張大小接近的圖片來作為縮放的源圖片;該方案的優(yōu)點:不需要編寫新的底層縮放算法,直接使用前面優(yōu)化好的插值算法;缺點:需要預(yù)先建立MipMap鏈,它

4、需要時間,并且它的儲存需要多占用原圖片的1/3空間(0.5^2+0.5^4+0.5^6+...=1/3);還有一個不太明顯的小問題,就是在一張圖片的連續(xù)的比例不同的縮放中,選擇會從MipMap的一張源圖片跳到另一張圖片,視覺效果上可能會有一個小的跳躍(我在《魔獸世界》里經(jīng)??吹竭@種效應(yīng):);一種改進方案就是選擇MipMap圖片的時候,選擇出附近的兩張圖片作為縮放的源圖片;對兩張圖片單獨進行插值(和原來一致)輸出兩個值,然后把這兩個值線性插值為最終結(jié)果;還有一個比較大的缺點就是當(dāng)縮放比例不均勻時(比如x

5、軸放大y軸縮小),縮放效果也不好;(當(dāng)前很多顯卡都提供了MipMap紋理和對應(yīng)的插值方案,OpenGL和DirectX都提供了操作接口)("三次線性插值和MipMap鏈"其實比較簡單,這里只給出關(guān)鍵代碼或算法)B:MipMap圖片的生成:原圖片縮放到0.5倍(寬和高都為原圖片的1/2),在把0.5倍的圖片縮放到0.25倍,....直到寬和高都為1個像素,如果有一個長度先到1就保持1;縮放過程中,可以可采用前面的縮放插值算法;如果為了速度可以考慮這樣的方案,要求原圖片的寬和高必須是2的整數(shù)次方的數(shù)值,縮

6、放時就可以直接將2x2的像素快速合并為一個像素(如果允許原圖片寬和高為任何值,可以考慮在合并時引入Alpha通道);C:MipMap鏈圖片的儲存方案:MipMap鏈圖片示意圖可能的一種物理儲存方案(我對每張圖片加了一個邊框)D:定義MipMap數(shù)據(jù)結(jié)構(gòu):MipMap數(shù)據(jù)結(jié)構(gòu)可以定義為一個TPicRegion數(shù)組和該數(shù)組的大??;(MipMap圖片的儲存參見上面的圖示)比如:#includetypedefstd::vectorTMipMap;//其中,第一個元素TM

7、ipMap[0]指向原始圖片,后面的依次為縮小圖片;E:MipMap的選擇函數(shù)和偏好:在進行縮放時,根據(jù)目標(biāo)圖片緩沖區(qū)的大小來動態(tài)的選者MipMap中的一幅圖片來作為源圖片;這就需要一個選擇函數(shù);比如:longSelectBestPicIndex(constTMipMap&mip,constlongdstWidth,constlongdstHeight){longoldS=mip[0].width*mip[0].height;longdstS=dstWidth*dstHeight;if((dstS>=

8、oldS)

9、

10、(mip.size()==1))return0;elseif(dstS<=1)returnmip.size()-1;elsereturn(long)(log(oldS/dstS)*0.5+0.5);}選擇函數(shù)可以增加一個偏好參數(shù):mip選擇偏好:0.5沒有偏好,靠近0偏向選擇小圖片,靠近1偏向選擇大圖片(質(zhì)量好一些)floatpublic_mip_bias=0.5;//[0..1]longSelectBestPicIndex(constTM

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。