怎么解决log_i = np.log(i) /media/linux/643A-4CF3/code/SelfDeblur-master/rl.py:11: RuntimeWarning: invalid value encountered in log ret += np.log(img) - np.log(img_blur)
时间: 2023-12-14 12:37:42 浏览: 97
这个错误是由于你的 `img` 或者 `img_blur` 中有一些值为零,导致 `np.log` 函数返回了无穷大或者 NaN(Not a Number)。你可以使用 `np.where` 函数将值为零的位置替换为一个极小的数,比如 `1e-8`,避免出现无穷大或 NaN 的情况。
修改后的代码如下:
```python
ret += np.log(np.where(img==0, 1e-8, img)) - np.log(np.where(img_blur==0, 1e-8, img_blur))
```
相关问题
怎么修改/media/linux/643A-4CF3/code/SelfDeblur-master/rl.py:22: RuntimeWarning: divide by zero encountered in log10 log_i = np.log10(i) /media/linux/643A-4CF3/code/SelfDeblur-master/rl.py:10: RuntimeWarning: divide by zero encountered in log10 ret += np.log10(img) - np.log10(img_blur) /media/linux/643A-4CF3/code/SelfDeblur-master/rl.py:10: RuntimeWarning: invalid value encountered in log10 ret += np.log10(img) - np.log10(img_blur) /home/linux/.conda/envs/opencv/lib/python3.8/site-packages/skimage/color/colorconv.py:364: RuntimeWarning: invalid value encountered in multiply p = arr[..., 2] * (1 - arr[..., 1]) /home/linux/.conda/envs/opencv/lib/python3.8/site-packages/skimage/color/colorconv.py:366: RuntimeWarning: invalid value encountered in multiply t = arr[..., 2] * (1 - (1 - f) * arr[..., 1]) 进程已结束,退出代码0
这些是运行时警告,可以忽略它们,因为它们不会影响程序的运行结果。但如果你想消除这些警告,可以尝试以下方法:
- 在代码中添加警告过滤器,例如:
```
import warnings
warnings.filterwarnings("ignore", category=RuntimeWarning)
```
- 尝试使用其他函数替代np.log10,例如np.log或math.log10
- 检查你的输入数据,可能存在零值或负数,导致出现无穷或非数值,可以尝试先对数据进行处理,例如加上一个很小的值以避免出现零值。
阅读全文