作者littleshan (我要加入劍道社!)
看板C_and_CPP
標題Re: [問題] 該怎樣子找影像處理中縮圖的相關資料
時間Sun Jun 7 21:01:55 2009
※ 引述《VictorTom (鬼翼&娃娃魚)》之銘言:
: 這個比例數學上都算得出來, 就可以代入雙線性內差法求值....
: 相對於總是取相臨四個點, 也有用二次函數取九個點的算法的樣子....
: 但是有一個最簡單的問題是, 只取臨近的幾個點的縮圖總是可能不夠....
: 所以另外一種平均法, 也可以把範圍內所有pixel都拿進來取平均....
: 同樣的example, 假如這次我要縮成2 x 1的大小....
: 01 02 03 04 05 06 07 08
: 03 04 05 06 07 08 09 10 把16個值都拿來取平均....
: 05 06 07 08 09 10 11 12 算出來的縮圖顯然會比只取四個還有鑑別性....
: 07 08 09 10 11 12 13 14 這個例子可能看不出來是因為我數字取得差....
: 取平均 取平均
: 那假如又不是剛剛好比例均等呢??(而且resize也不見得width和height比例要一樣)
: 考倒我了, 事實上這種case在3D要fetch texel的話, 已經會換一層mipmap取了XD
做個補充
當我們要縮小某張影像時
就 signal processing 的角度來看,其實就是降低 sampling rate
而在做 resample 之前,必須先對原本的訊號做一次 low-pass filter
否則會因為 sampling rate 比 signal frequency 還低而產生 aliasing
這裡有一篇非常棒的教學文章
http://www.csie.ntu.edu.tw/~r89004/hive/mipmap/page_1.html
而這個 low-pass filter
其實有許多種做法
像是 VictorTom 板友說的,拿 16 個值來平均 (其實就是 box filter)
或是 mipmap (這其實是建立一系列的 low-frequency signal)
或是影像處理最常用的 gaussian filter
如果不是等比例的縮放
可以考慮依照縮放比例使用適當大小的 gaussian filter 來作為 low-pass filter
尤其當 x/y 縮放比例不同時,mipmap 可能就幫不上忙
(需要 anisotropic filtering)
但使用 gaussian filter 的情況下,只要在 x/y 方向上使用不同的σ即可
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.150.194
推 kvykn:推這篇,推gaussian 06/07 21:11
推 VictorTom:推~~也推l大的貼的連結; 果然AF也出來了:) 06/07 21:17
推 wowtiger:hotball 這網站很值得 雖然是快 10 年前的的東西 06/07 21:58
→ wowtiger:不過作者現在 blog 倒是比較少這類研究 06/07 21:59