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)
解决方案
推荐阅读
- java - 如何在 API 级别低于 26 的 Android 中使用后台任务
- flutter - 如何在 onWillPop 方法中使用 pushReplacement
- firebase - 无论如何都缺少 dSYM
- javascript - 使用插件 WPDataTables 添加 Highcharts 数据函数
- javascript - 打字时如何获取键盘光标位置?
- javascript - 浏览器硬刷新时未重新获取嵌入式 appendChild JS 文件
- php - 如果 id 存在于另一个表中并且列在该表上具有特定值,则 Laravel 选择所有行
- javascript - 动态创建元素并希望在纯javascript中使用对话框(如果在对话框外单击则关闭事件)打开它
- solr - Solr 的多词同义词
- ios - 关于 iOS 应用开发的协作和工具的基本问题