使用 python 和 PIL 模块导入 PPM 图像

新手上路,请多包涵

我需要一种方法来读取行并将像素信息提取到某种结构中,以便我可以使用 putpixel 函数创建基于 ppm p3 文件的图像。

我正在使用 Python 图像库 (PIL),我想打开 PPM 图像并将其作为图像显示在屏幕上。

我怎样才能只使用 PIL 来做到这一点?

这是我的 ppm 图像。这只是我创建的 7x1 图像。

 P3
# size 7x1
7 1
255
0
0
0
201
24
24
24
201
45
24
54
201
201
24
182
24
201
178
104
59
14

原文由 andrepcg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 682
2 个回答

编辑: 修改问题并允许只阅读这些行后,请检查下面的链接。它解释了如何编写加载文件的包装器。我要自己测试这个,它应该工作……


您目前 (112010) 无法使用 PIL 打开纯 PPM 图像。这里的 plain 表示 ascii。但是二进制版本有效。主要原因是 ascii 文件的每个像素位数不固定。这就是 PIL 中的图像加载器所假定的。我有一个相关的问题:

如何为普通 pgm 格式编写 PIL 图像过滤器?

我打算为普通 PPM 编写一个 PIL 过滤器,但我的时间不够。如果您有兴趣提供帮助,请告诉我。

br,

朱哈

原文由 Juha 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您喜欢使用 np.array 对象,只需执行以下操作:

 >>> from scipy.misc import imread
>>> img = imread(path_to_ppm_file)
>>> img.shape
>>> (234, 555, 3)

原文由 EricP 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题