调代码过程中发现的数值溢出情况

今天在调试圆环展开的代码,展开代码中的双线性插值是自己写的,原理很简单,就是计算插值点临近(左上、左下、右上、右下)四个点的均值。在代码中是这样的:

gray_value = (image[p1_y,p1_x,c]+image[p2_y,p2_x,c]+image[p3_y,p3_x,c]+image[p4_y,p4_x,c])/4

在解决了一些广播错误的报错后,算法输出了这样的展开结果:
在这里插入图片描述
这很显然是不对的。我试图输出不使用插值的展开结果,合理的展开图像让我排除了坐标变换公式推导错误的可能性,很显然问题出现在插值代码中,但是我不知道简单的除法运算会出现什么错误。

一开始我认为是坐标映射出现了问题,比如行和列弄反了,仔细核对之后也排除了这个可能性。

我尝试输出一些像素点插值计算的结果:

gray_value = (image[p1_y,p1_x,c]+image[p2_y,p2_x,c]+image[p3_y,p3_x,c]+image[p4_y,p4_x,c])/4
print(image[p1_y,p1_x,c],image[p2_y,p2_x,c],image[p3_y,p3_x,c],image[p4_y,p4_x,c],gray_value)

在这里插入图片描述
很显然,四个三位数的均值不可能是两位数甚至一位数。但我还是不知道问题出在哪里,我又尝试输出四个插值点的和值,像这样:

sum_1 = image[p1_y,p1_x,c]+image[p2_y,p2_x,c]+image[p3_y,p3_x,c]+image[p4_y,p4_x,c]
gray_value = (image[p1_y,p1_x,c]+image[p2_y,p2_x,c]+image[p3_y,p3_x,c]+image[p4_y,p4_x,c])/4
print(image[p1_y,p1_x,c],image[p2_y,p2_x,c],image[p3_y,p3_x,c],image[p4_y,p4_x,c],sum_1)

在这里插入图片描述
看着第五列这些神奇的三位数,我试着做了一些计算,然后突然意识到问题是什么了……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值