当使用Python中的skimage.io模块读取灰度图像时,它按预期工作。但是,对保存值的 numpy 数组执行任何操作都会导致它们更改为浮点数,从而使比例成为颜色渐变而不是灰度。
这对我来说是一个问题,因为我需要将数组的每个条目除以 255,这会自动将每个值转换为浮点数。 我确信有办法解决这个问题,但我更好奇为什么会发生这种情况。
我首先测试了一下这是否只是一般情况下除以值的问题,但我通过采用数组和:
-将其乘以一,得到预期的灰度图像 -将其除以一,得到颜色渐变图像
按预期工作的代码 -
from skimage import io
import numpy as np
a=io.imread("audrey_lnoise.png",as_gray=True)
io.imshow(a)
输出 - 预期图像
更改代码 -
from skimage import io
import numpy as np
a=io.imread("audrey_lnoise.png",as_gray=True)/1 #division by one to turn into float array
io.imshow(a)
输出 - 意外图像
尝试一下
io.imshow(a, cmap='gray', vmin=0, vmax=255)