我写了一个应用双线性插值的代码。我在插值后打印颜色值,但颜色值为负值,浮点值大于255。我如何解决这个问题,请帮助我
(我使用了24位rgb图像)
打印的颜色值的一部分:
[14 12 15]
[14 12 15]
[14 12 15]
[14 12 15]
[4010.54455662 4008.54455662 4011.54455662]
[3022.8009096 3020.8009096 3023.8009096]
[2035.05726258 2033.05726258 2036.05726258]
[1047.31361557 1045.31361557 1048.31361557]
[59.56996855 57.56996855 60.56996855]
[ 487.08683923 14. -925.17367847]
[ 980.95866274 14. -1912.91732549]
[ 1474.83048625 14. -2900.6609725 ]
[ 1968.70230976 14. -3888.40461952]
for i in range(w * h):
inp = np.dot(params_inverse, out) #Each output pixel multiplying transform params.
k, j = inp[1][0], inp[2][0]
if k < 0:
k = 0
if j < 0:
j = 0
if j >= h-1:
j = h-1
if k >= w-1:
k = w-1
neighbor = [m.floor(j), m.ceil(j), m.floor(k), m.ceil(k)]
c1 = np.array(pixsel[neighbor[2], neighbor[0]])
c2 = np.array(pixsel[neighbor[2], neighbor[1]]) - np.array(pixsel[neighbor[2], neighbor[0]])
c3 = np.array(pixsel[neighbor[3], neighbor[0]]) - np.array(pixsel[neighbor[2], neighbor[0]])
c4 = np.array(pixsel[neighbor[2], neighbor[0]]) - np.array(pixsel[neighbor[2], neighbor[1]]) - np.array(pixsel[neighbor[3], neighbor[0]]) + np.array(pixsel[neighbor[3], neighbor[1]])
new_int = c1 + c2 * k * (1-j) + c3 * j * (1-k) + c4 * (k*j)
print(new_int)
目前没有回答
相关问题 更多 >
编程相关推荐