从.pgm图像中提取颜色位的最快方法?

3 投票
2 回答
1250 浏览
提问于 2025-04-16 04:05

我有一百个128 x 128的.pgm文件,上面有一些形状。我觉得它们的颜色范围是255(不过我不太确定,所以如果解决方案能考虑到这一点就更好了)。我需要提取这些颜色来处理这些图像。最终我想得到的是一个128 x 128的矩阵,每个元素的值在0到255之间,假设有256种颜色。

至于编程语言,Python、Java和C#都可以,最好是按这个顺序来。我可以使用Windows或Linux,所以不需要担心特定的库。

2 个回答

0

P 可移植 M 图格式 非常简单,我认为自己用任何你需要的编程语言写一个解析 pgm 文件的程序是一种荣誉。每个从 PGM 文件中读取的值都对应一个 RGB

255*Value/Max_Value
字节。

祝你好运。

1

关于Python的解决方案,我认为PIL支持.pgm文件。如果你使用numpy作为数组容器,这部分是可选的:

(编辑:重新读了你的问题,意识到你特别想要灰度图,而不是RGB... 其实从.pgm格式我就应该想到这一点...)

import Image
import numpy as np

im = Image.open('test.pgm')

# Convert to grayscale (single 8-bit band), if it's not already...
im = im.convert('L')

# "data" is a uint8 (0-255) numpy array...
data = np.asarray(im)

撰写回答