首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用Python读取PGM P2图像

如何用Python读取PGM P2图像
EN

Stack Overflow用户
提问于 2017-10-26 00:35:52
回答 1查看 3K关注 0票数 3

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

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

我能用Python做这个吗?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-01 02:36:59

我知道现在回答起来有点晚了,但我遇到了同样的问题,我认为张贴我的解决方案可能是有用的。似乎没有一个库可以读取基于P2的PGM ( ASCII )。

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

代码语言:javascript
运行
复制
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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46944048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档