1. 程式人生 > >影象的上取樣(upsampling)與下采樣(subsampled)

影象的上取樣(upsampling)與下采樣(subsampled)

 參考:

http://blog.csdn.net/majinlei121/article/details/46742339

http://blog.csdn.net/augusdi/article/details/9028365  

        縮小影象(或稱為下采樣(subsampled)或降取樣(downsampled))的主要目的有兩個:1、使得影象符合顯示區域的大小;2、生成對應影象的縮圖。

        放大影象(或稱為上取樣(upsampling)或影象插值(interpolating))的主要目的是放大原影象,從而可以顯示在更高解析度的顯示裝置上。對影象的縮放操作並不能帶來更多關於該影象的資訊, 因此影象的質量將不可避免地受到影響。然而,確實有一些縮放方法能夠增加影象的資訊,從而使得縮放後的影象質量超過原圖質量的。

      下采樣原理:對於一幅影象I尺寸為M*N,對其進行s倍下采樣,即得到(M/s)*(N/s)尺寸的得解析度影象,當然s應該是M和N的公約數才行,如果考慮的是矩陣形式的影象,就是把原始影象s*s視窗內的影象變成一個畫素,這個畫素點的值就是視窗內所有畫素的均值:

     上取樣原理:影象放大幾乎都是採用內插值方法,即在原有影象畫素的基礎上在畫素點之間採用合適的插值演算法插入新的元素。

無論縮放影象(下采樣)還是放大影象(上取樣),取樣方式有很多種。如最近鄰插值,雙線性插值,均值插值,中值插值等方法。在AlexNet中就使用了較合適的插值方法。各種插值方法都有各自的優缺點。

常用的插值方法                                                                                                                                                        

1、最鄰近元法

  這是最簡單的一種插值方法,不需要計算,在待求象素的四鄰象素中,將距離待求象素最近的鄰象素灰度賦給待求象素。設i+u, j+v(i, j為正整數, u, v為大於零小於1的小數,下同)為待求象素座標,則待求象素灰度的值 f(i+u, j+v) 如下圖所示:

如果(i+u, j+v)落在A區,即u<0.5, v<0.5,則將左上角象素的灰度值賦給待求象素,同理,落在B區則賦予右上角的象素灰度值,落在C區則賦予左下角象素的灰度值,落在D區則賦予右下角象素的灰度值。

最鄰近元法計算量較小,但可能會造成插值生成的影象灰度上的不連續,在灰度變化的地方可能出現明顯的鋸齒狀。

2、雙線性內插法

雙線性內插法是利用待求象素四個鄰象素的灰度在兩個方向上作線性內插,如下圖所示:

對於 (i, j+v),f(i, j) 到 f(i, j+1) 的灰度變化為線性關係,則有:

      f(i, j+v) = [f(i, j+1) - f(i, j)] * v + f(i, j)

同理對於 (i+1, j+v) 則有:

                  f(i+1, j+v) = [f(i+1, j+1) - f(i+1, j)] * v + f(i+1, j)

從f(i, j+v) 到 f(i+1, j+v) 的灰度變化也為線性關係,由此可推匯出待求象素灰度的計算式如下:

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

雙線性內插法的計算比最鄰近點法複雜,計算量較大,但沒有灰度不連續的缺點,結果基本令人滿意。它具有低通濾波性質,使高頻分量受損,影象輪廓可能會有一點模糊。

3、三次內插法

該方法利用三次多項式S(x)求逼近理論上最佳插值函式sin(x)/x, 其數學表示式為:

待求畫素(x, y)的灰度值由其周圍16個灰度值加權內插得到,如下圖:

待求畫素的灰度計算式如下:

f(x, y) = f(i+u, j+v) = ABC

其中: 

 

三次曲線插值方法計算量較大,但插值後的影象效果最好。

插值方法總結:                                                                                                                                                       

“Inverse Distance to a Power(反距離加權插值法)”、 “Kriging(克里金插值法)”、 “Minimum Curvature(最小曲率)”、 “Modified Shepard's Method(改進謝別德法)”、 “Natural Neighbor(自然鄰點插值法)”、 “Nearest Neighbor(最近鄰點插值法)”、 “Polynomial Regression(多元迴歸法)”、 “Radial Basis Function(徑向基函式法)”、 “Triangulation with Linear Interpolation(線性插值三角網法)”、 “Moving Average(移動平均法)”、 “Local Polynomial(區域性多項式法)” 1、距離倒數乘方法 距離倒數乘方格網化方法是一個加權平均插值法,可以進行確切的或者圓滑的方式插值。方次引數控制著權係數如何隨著離開一個格網結點距離的增加而下降。對於一個較大的方次,較近的資料點被給定一個較高的權重份額,對於一個較小的方次,權重比較均勻地分配給各資料點。 計算一個格網結點時給予一個特定資料點的權值與指定方次的從結點到觀測點的該結點被賦予距離倒數成比例。當計算一個格網結點時,配給的權重是一個分數,所 有權重的總和等於1.0。當一個觀測點與一個格網結點重合時,該觀測點被給予一個實際為 1.0 的權重,所有其它觀測點被給予一個幾乎為 0.0 的權重。換言之,該結點被賦給與觀測點一致的值。這就是一個準確插值。 距離倒數法的特徵之一是要在格網區域內產生圍繞觀測點位置的"牛眼"。用距離倒數格網化時可以指定一個圓滑引數。大於零的圓滑引數保證,對於一個特定的結 點,沒有哪個觀測點被賦予全部的權值,即使觀測點與該結點重合也是如此。圓滑引數通過修勻已被插值的格網來降低"牛眼"影響。 2、克里金法 克里金法是一種在許多領域都很有用的地質統計格網化方法。克里金法試圖那樣表示隱含在你的資料中的趨勢,例如,高點會是沿一個脊連線,而不是被牛眼形等值線所孤立。 克里金法中包含了幾個因子:變化圖模型,漂移型別 和礦塊效應。 3、最小曲率法 最小曲率法廣泛用於地球科學。用最小曲率法生成的插值面類似於一個通過各個資料值的,具有最小彎曲量的長條形薄彈性片。最小曲率法,試圖在儘可能嚴格地尊重資料的同時,生成儘可能圓滑的曲面。 使用最小曲率法時要涉及到兩個引數:最大殘差引數和最大迴圈次數引數來控制最小曲率的收斂標準。 4、多元迴歸法 多元迴歸被用來確定你的資料的大規模的趨勢和圖案。你可以用幾個選項來確定你需要的趨勢面型別。多元迴歸實際上不是插值器,因為它並不試圖預測未知的 Z 值。它實際上是一個趨勢面分析作圖程式。 使用多元迴歸法時要涉及到曲面定義和指定XY的最高方次設定,曲面定義是選擇採用的資料的多項式型別,這些型別分別是簡單平面、雙線性鞍、二次曲面、三次曲面和使用者定義的多項式。引數設定是指定多項式方程中 X 和 Y組元的最高方次 。 5、徑向基本函式法 徑向基本函式法是多個數據插值方法的組合。根據適應你的資料和生成一個圓滑曲面的能力,其中的復二次函式被許多人認為是最好的方法。所有徑向基本函式法都 是準確的插值器,它們都要為尊重你的資料而努力。為了試圖生成一個更圓滑的曲面,對所有這些方法你都可以引入一個圓滑係數。你可以指定的函式類似於克里金 中的變化圖。當對一個格網結點插值時,這些個函式給資料點規定了一套最佳權重。 6、謝別德法 謝別德法使用距離倒數加權的最小二乘方的方法。因此,它與距離倒數乘方插值器相似,但它利用了局部最小二乘方來消除或減少所生成等值線的"牛眼"外觀。謝別德法可以是一個準確或圓滑插值器。 在用謝別德法作為格網化方法時要涉及到圓滑引數的設定。圓滑引數是使謝別德法能夠象一個圓滑插值器那樣工作。當你增加圓滑引數的值時,圓滑的效果越好。 7、三角網/線形插值法 三角網插值器是一種嚴密的插值器,它的工作路線與手工繪製等值線相近。這種方法是通過在資料點之間連線以建立起若干個三角形來工作的。原始資料點的連結方法是這樣:所有三角形的邊都不能與另外的三角形相交。其結果構成了一張覆蓋格網範圍的,由三角形拼接起來的網。 每一個三角形定義了一個覆蓋該三角形內格網結點的面。三角形的傾斜和標高由定義這個三角形的三個原始資料點確定。給定三角形內的全部結點都要受到該三角形的表面的限制。因為原始資料點被用來定義各個三角形,所以你的資料是很受到尊重的。 8.自然鄰點插值法 自然鄰點插值法(NaturalNeighbor)是Surfer7.0才有的網格化新方法。自然鄰點插值法廣泛應用於一些研究領域中。其基本原理是對於 一組泰森(Thiessen)多邊形,當在資料集中加入一個新的資料點(目標)時,就會修改這些泰森多邊形,而使用鄰點的權重平均值將決定待插點的權重, 待插點的權重和目標泰森多邊形成比例。實際上,在這些多邊形中,有一些多邊形的尺寸將縮小,並且沒有一個多邊形的大小會增加。同時,自然鄰點插值法 在資料點凸起的位置並不外推等值線(如泰森多邊形的輪廓線)。 9.最近鄰點插值法 最近鄰點插值法(NearestNeighbor)又稱泰森多邊形方法,泰森多邊形(Thiesen,又叫Dirichlet或Voronoi多邊形)分 析法是荷蘭氣象學家A.H.Thiessen提出的一種分析方法。最初用於從離散分佈氣象站的降雨量資料中計算平均降雨量,現在GIS和地理分析中經常採 用泰森多邊形進行快速的賦值。實際上,最近鄰點插值的一個隱含的假設條件是任一網格點p(x,y)的屬性值都使用距它最近的位置點的屬性值,用每一 個網格節點的最鄰點值作為待的節點值。當資料已經是均勻間隔分佈,要先將資料轉換為SURFER的網格檔案,可以應用最近鄰點插值法;或者在一個文 件中,資料緊密完整,只有少數點沒有取值,可用最近鄰點插值法來填充無值的資料點。有時需要排除網格檔案中的無值資料的區域,在搜尋橢圓 (SearchEllipse)設定一個值,對無資料區域賦予該網格檔案裡的空白值。設定的搜尋半徑的大小要小於該網格檔案資料值之間的距離,所有的無數 據網格節點都被賦予空白值。在使用最近鄰點插值網格化法,將一個規則間隔的XYZ資料轉換為一個網格檔案時,可設定網格間隔和XYZ資料的資料點之間的間 距相等。最近鄰點插值網格化法沒有選項,它是均質且無變化的,對均勻間隔的資料進行插值很有用,同時,它對填充無值資料的區域很有效。