双线性插值负颜色值

2024-06-28 11:23:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个应用双线性插值的代码。我在插值后打印颜色值,但颜色值为负值,浮点值大于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)

Tags: newif颜色npparamsarrayinpc2