gpt4 book ai didi

python - 运行时警告 : invalid value encountered in power

转载 作者:行者123 更新时间:2023-11-28 23:01:47 24 4
gpt4 key购买 nike

这是我正在处理的代码的一部分。看最后一行。

def xyz2srgb(xyz):
"""Convert from XYZ colorspace to sRGB"""
xyz = xyz.T
srgb = N.zeros_like(xyz)
srgb[0] = 3.241*xyz[0] - 1.5374*xyz[1] - 0.4986*xyz[2]
srgb[1] = -0.9692*xyz[0] + 1.876*xyz[1] + 0.0416*xyz[2]
srgb[2] = 0.0556*xyz[0] - 0.204*xyz[1] + 1.057*xyz[2]

srgb /= float(srgb.max())

a = 0.055
srgb = N.where(srgb <= 0.0031308,
12.92*srgb,
(1+a)*srgb**(1/2.4)-a)

它抛出一个错误:

 ./example.py:29: RuntimeWarning: invalid value encountered in power
(1+a)*srgb**(1/2.4)-a)

这是一些范围限制吗?我在 SO 上发现了一个类似的线程:Numpy error: invalid value encountered in power

有什么线索吗?谢谢。

最佳答案

您应该打印出 srgb 的值.应该不是范围误差,是这里的负系数

srgb[0] = 3.241*xyz[0] - 1.5374*xyz[1] - 0.4986*xyz[2]
srgb[1] = -0.9692*xyz[0] + 1.876*xyz[1] + 0.0416*xyz[2]
srgb[2] = 0.0556*xyz[0] - 0.204*xyz[1] + 1.057*xyz[2]

使 srgb 的元素完全有可能可以是负数,除非你已经在处理复杂的数字,否则你会在获得权力时发出警告:

>>> import numpy
>>> numpy.array([-2.0])
array([-2.])
>>> numpy.array([-2.0])**(1/2.4)
__main__:1: RuntimeWarning: invalid value encountered in power
array([ nan])
>>> numpy.array([-2.0+0j])**(1/2.4)
array([ 0.34548198+1.28935629j])

where 的参数将在通过之前进行评估,因此权力将在 srgb <= 0.0031308 的分支机构之前获得条件划分值,并触发警告。

关于python - 运行时警告 : invalid value encountered in power,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10581390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com