【问题标题】:python mahotas.imread reads a 2d image as 3dpython mahotas.imread 将 2d 图像读取为 3d
【发布时间】:2012-07-01 23:33:55
【问题描述】:

我有一张由我的另一个代码保存的图像。图像是一个普通的 JPG 文件。我用imsave保存了它。

现在当我在另一个代码中阅读它时,它似乎是 3d :S

图片是here

一个简单的阅读代码是这样的:

import mahotas

img = mahotas.imread('d:/normal.jpg')
print img.shape, img.dtype

【问题讨论】:

  • 3d 是指 x*y*3 吗?在这种情况下,它被读取为彩色图像,您只需将其转换为灰度。

标签: python image-processing mahotas


【解决方案1】:

尝试像这样将 jpg 读取为灰度:

mahotas.imread('d:/normal.jpg', as_grey = True)

【讨论】:

  • 谢谢。这样可行。但是我可以以某种方式将其保存为灰度吗?
  • @Kiarash:我认为没有灰度 JPG 这样的东西。如果要将图像编码为灰度,请选择其他图像格式,例如 GIF、PNG、TIF。
【解决方案2】:

(这里是mahotas的作者)。

Junuxx 的建议是正确的:

mahotas.imread('file.jpg', as_grey=True)

这会读取 RGB 文件并通过分量的加权平均值将其转换为灰度(它们的权重不同,但使用试图在感知上更准确的典型系数)。

替代方案(我更喜欢)是:

im = mahotas.imread('file.jpg')
im = im[:,:,0]

我假设所有通道都具有相同的值,并且只使用第一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2012-12-03
    相关资源
    最近更新 更多