pgm格式文件

PGM是Portable Gray Map的缩写,它是灰度图像格式中一种最简单的格式标准。PGM文件的后缀名为”.pgm”,PGM由两部分数据组成,分别是文件头部分和像素数据部分。

PGM文件可以用记事本打开,图像可以用ACDSee、PS等软件查看。

文件头部分

文件头包括的信息依次是:

1.PGM文件的格式类型(是P2还是P5);

2.图像的宽度;

3.图像的高度;

4.图像灰度值可能的最大值;

文件头的这四部分信息都是以ASCII码形式存储的,所以可以直接在将P2或P5格式的PGM文件在记事本中打开看到文件头的信息。

PGM文件头的4个信息之间用分割符分开,PGM的合法分隔符包括:空格,TAB,回车符,换行符。PGM文件头的信息应该由合法分割符号分开。

PGM格式图像格式分为两类:P2和P5类型,会在文件头的第一个数据区分, P2是可读的,可以用记事本打开,P5是二进制格式。

数据部分
数据部分记录图像每个像素的灰度值,按照图像从上到下,从左到右的顺序依次存储每个像素的灰度值.对于像素灰度值的表示P2格式和P5格式有所不同。

P5格式

P5格式的文件,每个像素用可以用二进制表示。每个像素数据之间没有间隔的连续存储,图像一行信息结束后从下一行第一列继续,两行图像数据之间也没有间隔的连续存储,直到将图像的所有信息表示完。因为是以二进制表示,所以数据部分在记事本中打开后看到的将会是乱码。

P2格式

P2格式的文件,每个像素使用字符串来表示,不同于P5格式,每个像素数据之间需要用一个空格符分开存储,在图像的每一行数据结束时需要换行。还有一点需要注意,P2格式文件数据部分当数据超过70个字节的时候,会自动换行。也就是说图像的每一行数据末尾,或者存储时超过70个字节时,需要进行换行。

一个P2格式文件示例:

P2 # 表明文件类型
# 可以加注释,这张图就是现实 "KAMU"四个字母
25 7 # 宽度和高度
15 # 色彩范围
# 下面是图像的像素,每个数字是一个像素
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  9  0  0  9  0  0  0  7  7  0  0  0 11 11 11 11 11  0  0 15  0  0 15  0
0  9  0  9  0  0  0  7  0  0  7  0  0 11  0 11  0 11  0  0 15  0  0 15  0
0  9  9  0  0  0  0  7  7  7  7  0  0 11  0 11  0 11  0  0 15  0  0 15  0
0  9  0  9  0  0  0  7  0  0  7  0  0 11  0 11  0 11  0  0 15  0  0 15  0
0  9  0  0  9  0  0  7  0  0  7  0  0 11  0 11  0 11  0  0 15 15 15 15  0
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

简述:

PGM格式是一种灰度图像的存储格式。它的文件的后缀名为.pgm,PGM文件可以用记事本查看数据,也可以用ACDSee、Photoshop等软件查看图像。,PGM文件可以用记事本查看数据,也可以用ACDSee、Photoshop等软件查看图像。
PGM又可以分成两种格式,P2和P5,它规定了文件的像素数据部分的存储形式。
PGM文件由两部分数据组成,分别是文件头部分和像素数据部分。
文件头数据依次是:1.PGM文件的格式类型(P2 或 P5)2.图像的宽度 3.图像的高度 4.图像灰度可能的最大值。
文件头的4个信息之间用分割符分开,可以用 空格,TAB,回车符,换行符。
文件头数据都是以ASCII码形式存储的,可读。
像素数据部分存储图像的信息,存储形式为:
P2格式,每个像素用字符串表示,每个像素之间要用空格分开,图像每一行结束时要换行。当数据超过70个字节,会自动换行。是可读的。
P5格式,每个像素用二进制表示,每个像素之间没有空格,两行数据之间也没有间隔的存储。用记事本打开会乱码。
 

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要读取pgm文件数据,可以使用以下方法之一: 方法一:使用Pillow库 1. 导入必要的库:from PIL import Image 2. 使用Image.open()函数打开pgm文件:im = Image.open(filepath) 3. 查看图片格式:print(im.mode) 4. 查看图片尺寸:print(im.size) 5. 可以使用im对象的其他方法来操作和处理pgm文件数据。例如,可以使用im.show()来显示图片。 方法二:使用numpy和matplotlib库 1. 导入必要的库:import numpy as np, matplotlib.pyplot as plt 2. 定义一个函数来读取pgm文件数据: def read_pgm(pgmf): assert pgmf.readline() == 'P5\n' (width, height) = [int(i) for i in pgmf.readline().split()] depth = int(pgmf.readline()) assert depth <= 255 raster = [] for y in range(height): row = [] for x in range(width): row.append(ord(pgmf.read(1))) raster.append(row) return raster 3. 调用read_pgm函数并传入pgm文件路径来读取数据:data = read_pgm(filepath) 4. 可以使用numpy和matplotlib绘图库来显示pgm文件数据。例如,使用plt.imshow(np.array(data))来显示数据。 请注意,根据不同的pgm文件格式,你可能需要根据具体情况调整代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [.pgm图片简介以及Python读取.pgm图片的方法](https://blog.csdn.net/quiet_girl/article/details/80904471)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [在python中读取.pgm格式图像](https://blog.csdn.net/l_z_z_z/article/details/120800683)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值