最近鄰插值

2022-08-14 01:39:13 字數 2181 閱讀 6791

使用最近鄰插值:

源(simg)=目標(dimg)*縮放係數(k),

縮放係數k = 源尺寸/目標

由上,對分x、y軸 :sx = dx*k sy = dy *k

思路:初始化目標size的,然後根據位置計算目標對應於原的位置索引,索引結果四捨五入

也就是說目標的每個畫素都是根據目標的畫素索引*縮放係數後求得目標對應其在源上的索引位置,索引結果四捨五入

最近鄰插值也就是目標的每個畫素依賴於源的畫素值通過縮放係數計算得到的索引,並索引源的畫素值來填充

1

import

matplotlib.pyplot as plt

2import

numpy as np

34 img = plt.imread('

source.bmp')

56defnearest_interploat(img,dsize):

7"""

8對單通道的進行縮放處理910

1112

也就是說目標的每個畫素都是根據目標的畫素索引*縮放係數後求得目標對應其在源上的索引位置,索引結果四捨五入

13最近鄰插值也就是目標的每個畫素依賴於源的畫素值通過縮放係數計算得到的索引,並索引源的畫素值來填充

14:param img: 源

15:param dsize: 目標尺寸

16:return: 目標

17"""

1819 dimg = np.zeros((dsize),dtype=int) #

初始化目標

20 ssize_x,ssize_y =img.shape

21plt.imshow(dimg)

22plt.show()23#

下面將dsize分開處理為x的縮放係數與y的縮放係數是因為影象的高寬可能不一致

24 xk = (ssize_x/dsize[0])

25 yk = (ssize_y/dsize[1])

2627

#np.argwhere(dimg!=none)返回目標的畫素索引 shape=(dsize_x*disze_y,2)因為每個畫素點都有x,y兩個索引

28 pixel_index=np.argwhere(dimg!=none) #

返回的索引每個畫素點[行,列]畫素點從行到列

2930

31 d_ssize_x = pixel_index[:,0]*xk

3233 d_ssize_y = pixel_index[:,1] *xk

3435

36 d_ssize_x = np.around(d_ssize_x) #

四捨五入

37 d_ssize_y =np.around(d_ssize_y)

3839

40 d_ssize_x=d_ssize_x.astype('

int'

)41 d_ssize_y=d_ssize_y.astype('

int')42

43 d_ssize_x[np.nonzero(d_ssize_x==ssize_x)[0]] = ssize_x-1 #

索引不得超過size-1

44 d_ssize_y[np.nonzero(d_ssize_y==ssize_y)[0]] = ssize_y-1

4546

print(d_ssize_x[np.nonzero(d_ssize_x>ssize_x)[0]])

47 dimg =img[d_ssize_x,d_ssize_y]

48 dimg =np.resize(dimg,dsize)

49print

(img.shape)

50plt.imshow(img)

51plt.show()

5253

plt.imshow(dimg)

54plt.show()

5556

5758

5960

if__name__ == '

__main__':

61 c =50

62 nearest_interploat(img[:,:,2],(176*c,197*c))

63 a = np.random.rand(2,3)

最近鄰插值 雙線性插值

最近鄰插值 公式如下 最近鄰插值 輸入 src 輸入源圖 dst rows 目標圖的行數 dst cols 目標圖的列數 輸出 目標圖 mat neargest neighbor mat src,int dst rows,int dst cols return dst 雙線性插值 公式如下 雙線性插...

最近相鄰插值

使用最近鄰插值 源 simg 目標 dimg 縮放係數 k 縮放係數k 源尺寸 目標 由上,對分x y軸 sx dx k sy dy k 思路 初始化目標size的,然後根據位置計算目標對應於原的位置索引,索引結果四捨五入 也就是說目標的每個畫素都是根據目標的畫素索引 縮放係數後求得目標對應其在源上...

快速最近鄰匹配

這是乙個完整的利用suft快速近鄰匹配的程式 include include include include include include include include include include include using namespace std using namespace cv ...