gpt4 book ai didi

python - scipy.ndimage.imread 和 matplotlib.pyplot.imread 有什么区别?

转载 作者:行者123 更新时间:2023-11-30 22:25:31 26 4
gpt4 key购买 nike

scipy.ndimage.imread 刚刚在 scipy 中被弃用,所以我直接将代码切换为使用 pyplot - 但结果并不相同。我正在为 keras 中内置的学习算法导入图像 - 我以为这将是 1 对 1 的更改 - 但事实并非如此 - 我训练得很好,切换后我的系统无法训练。有没有 python 专家可以解释其中的区别?

Scipy 返回:

img_array : ndarray The different colour bands/channels are stored in the third dimension, such that a grey-image is MxN, an RGB-image MxNx3 and an RGBA-image MxNx4. scipy documentation

Matplotlib 返回:

Return value is a numpy.array. For grayscale images, the return array is MxN. For RGB images, the return value is MxNx3. For RGBA images the return value is MxNx4. matplotlib documentation

MWE:

from scipy import ndimage
import_image = (ndimage.imread("img.png").astype(float) -
255.0 / 2) / 255.0
print import_image[0]

import matplotlib.pyplot as plt
import_image = (plt.imread("img.png").astype(float) -
255.0 / 2) / 255.0

print import_image[0]

最佳答案

这将是一个真正的 mcve:

import matplotlib.pyplot as plt
import numpy as np
import scipy.ndimage

im = np.random.rand(20,20)
plt.imsave("img.png",im)

### Scipy
i2 = scipy.ndimage.imread("img.png")
print i2.shape, i2.min(), i2.max(), i2.dtype
# (20L, 20L, 4L) 1 255 uint8

### Matplotlib
i3 = plt.imread("img.png").astype(float)
print i3.shape, i3.min(), i3.max(), i3.dtype
# (20L, 20L, 4L) 0.00392156885937 1.0 float64

可以看出

  • scipy.ndimage.imread 创建一个 int 类型的 numpy 数组,范围为 0..255 while
  • pyplot.imread 创建一个从 0 开始的 float 类型的 numpy 数组。 .. 1..

关于python - scipy.ndimage.imread 和 matplotlib.pyplot.imread 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47514063/

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