skimage:为什么skimage.color中的rgb2gray导致彩色图像?
image-processing
python
6
0

当我尝试使用以下方法将图像转换为灰度时:

from skimage.io import imread
from skimage.color import rgb2gray
mountain_r = rgb2gray(imread(os.getcwd() + '/mountain.jpg'))

#Plot
import matplotlib.pyplot as plt
plt.figure(0)
plt.imshow(mountain_r)
plt.show()

我得到了奇怪的彩色图像,而不是灰度图像。

手动实现该功能也可以得到相同的结果。自定义函数是:

def rgb2grey(rgb):
    if len(rgb.shape) is 3:
        return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])

    else:
        print 'Current image is already in grayscale.'
        return rgb

原版的

彩色图像不是灰度的。 灰色

函数为什么不将图像转换为灰度?

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

生成的图像为灰度。但是,默认情况下, imshow使用一种热图(称为viridis)来显示图像强度。只需指定灰度色图,如下所示:

plt.imshow(mountain_r, cmap="gray")

对于所有可能的颜色图,请查看颜色图参考

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号