gpt4 book ai didi

python - 如何在 Python 中读取 PGM P2 图像

转载 作者:太空宇宙 更新时间:2023-11-03 15:50:48 25 4
gpt4 key购买 nike

首先,我在 AI 的大学小组中执行一项任务。我有一个 PGM P2(ASCII) 格式的多面数据集。在开始神经网络处理之前,我需要从图像中提取像素数组,但我找不到用 Python 读取这些图像的方法。

我已经尝试过 PIL,但它不适用于 PGM P2。

我可以在 Python 中执行此操作吗?任何帮助将不胜感激。

最佳答案

我知道现在回答有点晚了,但我遇到了同样的问题,我认为发布我的解决方案可能会有用。似乎不存在在 Python 上读取基于 ASCII 的 PGM (P2) 的库。

这是我的函数,它接受文件名并返回一个元组,其中包含:(1) 一个包含数据的 1xn numpy 数组,(2) 一个包含长度和宽度的元组,(3)灰色阴影。

import numpy as np
import matplotlib.pyplot as plt

def readpgm(name):
with open(name) as f:
lines = f.readlines()

# Ignores commented lines
for l in list(lines):
if l[0] == '#':
lines.remove(l)

# Makes sure it is ASCII format (P2)
assert lines[0].strip() == 'P2'

# Converts data to a list of integers
data = []
for line in lines[1:]:
data.extend([int(c) for c in line.split()])

return (np.array(data[3:]),(data[1],data[0]),data[2])

data = readpgm('/location/of/file.pgm')

plt.imshow(np.reshape(data[0],data[1])) # Usage example

关于python - 如何在 Python 中读取 PGM P2 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46944048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com