超分辨率基礎_插值算法簡介
1.插值算法
數學的數值分析領域中,內插或稱插值(英語:interpolation)是一種通過已知的、離散的數據點,在範圍內推求新數據點的過程或方法。常見的三種插值算法爲最近鄰插值、雙線性插值和雙三次插值。
一組離散數據點在一個外延的插值。曲線中實際已知數據點是紅色的;連接它們的藍色曲線即爲插值。
2.最近鄰插值算法
最鄰插值算法(Nearest Neighbor interpolation)是最簡單的一種插值算法,當圖片放大時,缺少的像素通過直接使用與之最近原有像素生成,原理就是選取距離插入的像素點(x+u, y+v)【注:x,y爲整數, u,v爲小數】最近的一個像素點,用它的像素點的灰度值代替插入的像素點。
i+u, j+v爲待求像素座標,如果 i+u, j+v落在A區,即 u<0.5,v<0.5,則將左上角像素的灰度值賦給待求像素,同理落在B區則賦予右上角的像素灰度值,落在C區則賦予左下角像素的灰度值,落在D區則賦予右下角像素的灰度值。
最近鄰插值法計算量較小,但可能會造成生的圖像灰度上的不連續,在變化地方可能出現明顯鋸齒狀。
3.雙線性插值算法
在數學上,雙線性插值是有兩個變量的插值函數的線形插值擴展,其核心思想是在兩個方向分別進行一次線性插值。
以上是一維的,接下來看看二維中的雙線性插值
首先在x方向上面線性插值,得到R2、R1
然後以R2,R1在y方向上面再次線性插值
如果選擇一個座標系統使得 f 的四個已知點座標分別爲 (0, 0)、(0, 1)、(1, 0) 和 (1, 1),那麼插值公式就可以化簡爲
用矩陣表示
雙線性內插法的計算比最鄰近點法複雜,計算量較大但沒有灰度不連續的缺點,結果基本令人滿意。它具有低通濾波性質,使高頻分量受損,圖像輪廓可能會有一點模糊。
4.雙三次插值算法(bicubic interpolation)
在數值分析這個數學分支中,雙三次插值(英語:Bicubic interpolation)是二維空間中最常用的插值方法。在這種方法中,函數 f 在點 (x, y) 的值可以通過矩形網格中最近的十六個採樣點的加權平均得到,在這裏需要使用兩個多項式插值三次函數,每個方向使用一個
雙三次插值計算公式
即
那麼這個a(i, j)便是介紹裏面所說的加權係數了,所以關鍵是要把它求解出來。
求解加權係數的公式如下
相關論文
有適當的邊界條件(boundary condition)和約束插值內核(constrains on the interpolation kernel)的時候,立方卷積是更好方式,並給出了這個式子:
當a=-0.5時比較合適
keys說rifman和bernstein給了他用這個模型的勇氣,
bernstein說是riffman提出用sinx/x近似,啊哈就算這是源頭吧。。但是還差個pi
keys又說hou那他得到了啓發,嗯,搜了一下果然。。難道說這個歐米茄就是pi?
額,它不是。那大概認爲大家都覺得乘上pi比較合適吧。
效果是這樣的。
雙三次曲線插值方法計算量較大,但後的圖像效果最好。
5.代碼實現
opencv
import cv2 as cv
img = cv.imread('automobile.png')
# 放大圖像,雙三次插值
enlarge = cv.resize(img, (0, 0), fx=4, fy=4, interpolation=cv.INTER_CUBIC)
cv.imshow("Image", enlarge)
cv.waitKey (0)
cv.destroyAllWindows()
matlab
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('yosemeti.jpg',0)
plt.imshow(img,cmap='gray', interpolation='bicubic')
plt.show()
6.區別
opencv和matlab的bicubic算法有什麼區別?
來自Matlab的文檔:
'bicubic':雙立方插值(默認值);輸出像素值是最近的4乘4鄰域中像素的加權平均值。
來自OpenCV的文檔:
INTER_CUBIC - 4x4像素鄰域的雙三次插值。
所以對此的唯一解釋是他們使用不同的加權策略來獲得平均值。
來自Matlab imresize.m source,您可以找到內核常量A (請參閱維基百科上的雙立方插值)設置爲 -0.5 ,而在OpenCV中設置爲 -0.75 (請參閱imgproc/src/imgwarp.cpp,函數interpolateCubic()在github上)。這爲卷積提供了不同的內核形狀,因此最終插值圖像的結果會略有不同。
參考
https://blog.csdn.net/nandina179/article/details/85330552