PGM文件格式

 
用C语言读取.pgm文件,请链接博客http://blog.csdn.net/a350203223/article/details/13102513
PGM文件格式

PGM----Portable Graymap Format.
pgm格式是灰度文件格式的最低标准.

PGM文件的格式定义如下:
一个PGM文件由一个或多个PGM图象组成. 在多副图象之间,之前或之后没有任何数据存在. 每一个PGM 图像由以下部分组成:

- 一个"magic number",它是用来标定文件格式的. pgm的magic number是"P5".
- 空白区域(空格,TAB,回车,换行)
- 图象宽, 十进制ASCII码
- 空白区域
- 图象高, 十进制ASCII码
- 空白区域
- 最大灰度值(Maxval), 十进制ASCII码.必须小于65536
- 新一行或另一个空白区域符
- 空栅化的一副宽*高的灰度值图象. 每个灰度值取值是从0到Maxval, 0表示黑,而Maxval表示白.每个灰度值用1-2个字节表示.如果
     Maxval小于256,那行就是一个字节,否则为两个字节.最大字节(most significant byte)开始
- 每个灰度值是表示当前象素值在CIE Rec.709伽马校正之后的密度值. 
- 一个很普遍的PGM格式替代格式就是线性灰度值(不经过伽马校正), pnmgamma以这样的一个pgm文件为输入,输出一个标准的pgm文件
- #符号之后的一行为注释行,会被省略.
- 每个象素的光栅值表示为一个十进制ASCII码值.
- 每个象素的光栅值前后各有一个空格. 这样两个象素之间将有大于等于1个空格.
- 每行不超过70个字.

PGM文件示例:

P5
24 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    3    3    3    3    0    0    7    7    7    7    0    0   11   11   11   11    0    0   15   15   15   15    0
0    3    0    0    0    0    0    7    0    0    0    0    0   11    0    0    0    0    0   15    0    0   15    0
0    3    3    3    0    0    0    7    7    7    0    0    0   11   11   11    0    0    0   15   15   15   15    0
0    3    0    0    0    0    0    7    0    0    0    0    0   11    0    0    0    0    0   15    0    0    0    0
0    3    0    0    0    0    0    7    7    7    7    0    0   11   11   11   11    0    0   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    0    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、付费专栏及课程。

余额充值