PPM/PGM/PBM 图象文件(thinkvd 开发日志)

原创 2011年02月28日 09:27:00

文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/6_system/linux/Linuxjs/2008727/133901.html
PPM->Portable PixMap
PGM->Portable GreyMap
PBM->Portable BitMap

PBM支持单色图(1个像素位)
PGM支持灰度图形,能够读PBM图形和PGM图形,输出PGM图形
PPM支持真彩色图形,可以读上面所有格式,输出PPM图形

PPM图形文件格式:
包括两个部分,头部分和图象数据部分。头部分由三部分组成,这三部分由回车或换行分割,但PPM的
标准中是要求空格。第一行通常是P3或P6,说明是PPM格式;第二行是图象的宽度和高度,用ASCII
来表示;最后一部分是描述像素的最大颜色组成,这里允许描述超过一个字节(0-255)的颜色值。
另外可以在上面个部分的后面用#来追加注释,注释行是从#到该行末。
下面是PPM头的例子:
例子1:
P6 1024 778 255
例子2:
P6
1024 778
255
例子3:
P6#PPM文件格式
1024 778#宽度和高度
# 注释
255

PPM图象数据的格式依赖于PPM自身的表示,如果是P3格式,数据将以ASCII文本来表示,每个像素
的值从0到前面的最大值,每行不应该长于70个字符,如下:
例子4:
P3
# example from the man page
4 4
15
 0  0  0    0  0  0    0  0  0   15  0 15
 0  0  0    0 15  7    0  0  0    0  0  0
 0  0  0    0  0  0    0 15  7    0  0  0
15  0 15    0  0  0    0  0  0    0  0  0

如果是P6格式,图象数据以字节格式存储,每个色彩成分(r,g,b)一个字节。仅仅在头部的最后一
个字段的前面才能有注释,在头部的最后一个字段后面通常是一个回车或换行。P6图象文件比P3文件
小,读起来更快。注意,P6文件仅仅用作但字节彩色。

但并没有按照格式规约的要求来,通常的习惯,图象从上到下,从左到右被存储。每个像素以一个字
节来存储,0表示黑色,255表示白色。色彩成分按照通常的红-绿-蓝顺序爱存储。

PGM
该格式文件存储灰度图形,也就是这里每个像素使用一个值来表示而不是3个(R,G,B)。同PPM唯
一不同的是头部用P2和P5,分别表示用ASCII和字节码来表示数据。
例如:
P2
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

PBM
使用ASCII的0或1方式来表示数据,0表示白色,1表示黑色。与PPM、PGM不同的头部是少了第三
行,因为第三行的最大色彩值在这个模式下已经没有意义了;如下:
P1
# PBM example
24 7
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 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0
0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 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

/****************************************************/
PPM图像格式

2008-05-05 16:00

今天得知Minolta 3D scans(Konica的一款三维扫描仪)的数据是两部分,一是反映Shape的后缀为.abs文件,另一个是反映Texture的后缀为.ppm的文件。下面就是ppm文件格式的简介。
PPM灰度文件:
文件头由3行文本组成,可由fgets读出
1)第一行为“P2",表示文件类型
2)第二行为图像的宽度和高度
3)第三行为最大的象素值255
接下来是图像数据块。按行顺序存储。每个象素占4个字节,灰度通道为4字节ASCII码表示的整数,
高字节在前。左上角为坐标原点。
16位PPM文件:(至少适用于读取由DCRAW生成的PPM文件)
文件头由3行文本组成,可由fgets读出
1)第一行为“P6",表示文件类型
2)第二行为图像的宽度和高度
3)第三行为最大的象素值
接下来是图像数据块。按行顺序存储。每个象素占6个字节,依次为红绿蓝通道,每个通道为2字节整
数,高字节在前。

PPM彩色文件:
文件头由3行文本组成,可由fgets读出
1)第一行为“P3",表示文件类型
2)第二行为图像的宽度和高度
3)第三行为最大的象素值255

接下来是图像数据块。按行顺序存储。每个象素占12个字节,依次为红绿蓝通道,每个通道为4字节
ASCII码表示的整数,高字节在前。左上角为坐标原点。

另转其他:

ppm文件的开始为三行ASCII码文本
第一行是:   P6
第二行是图像的大小,先是列象素数,后是行象素数,中间有一空格,
例如320X240的图像,次行为: 320 240
第三行是一个介于1和65525的整数,当然也是文本的,用来表示
每一个象素的一个分量(如红,绿,蓝)用几个比特表示, 1-255
表示一个分量用地比特表示.
每一行的结尾一换行或回车或两者都用表示.

三行文本之后就是图像的数据流,从左到右,从上到下.

如一个320X240的RGB图象,每分量用8比特表示,
文件如下:
P6
320 240
255

/****************************************************/



不清楚为什么在高、宽及颜色值前面都带3, 可能是它的约定

PPM / PGM / PBM 图像文件格式

 这篇文章介绍了PPM/PBM/PGM图像格式。虽然文章的本意是介绍一个toolkit,但是从中我们还是能很清晰得了解上述三种格式This note describes the format of P...
  • begtostudy
  • begtostudy
  • 2006年10月13日 10:28
  • 6945

PPM、PGM、PBM三种都是图像文件格式

PPM、PGM、PBM三种都是图像文件格式: PPM->Portable PixMap 支持真彩色图形,可以读上面所有格式,输出PPM图形PGM->Portable GreyMap 支持灰度...
  • zrjust1043
  • zrjust1043
  • 2017年03月31日 09:29
  • 388

【数字图像处理】pbm/pgm/ppm图片的读写(Matlab)

Ø  【作业要求】 1. Get your matlab platform ready. Payspecial attention to the image processing toolbox. 2...
  • jsgaobiao
  • jsgaobiao
  • 2016年03月09日 15:47
  • 4521

【图像格式】 PPM/PGM/PBM格式编码详解

PPM(Portable PixMap)是portable像素图片,是由netpbm项目定义的一系列的portable图片格式中的一个。这些图片格式都相对比 较容易处理,跟平台无关,所以称之为port...
  • aoshilang2249
  • aoshilang2249
  • 2014年10月16日 17:27
  • 1655

PPM / PGM / PBM image files

This note describes the format of PPM (Portable PixMap), PGM (Portable GreyMap), PBM (Portable BitMa...
  • fancylea
  • fancylea
  • 2008年04月22日 12:37
  • 1131

PPM / PGM / PBM图像文件

本说明介绍PPM(Portable PixMap),PGM(Portable GreyMap),PBM(Portable BitMap)文件的格式。这些格式是保存图像数据的方便(简单)的方法,它们同样...
  • Anmai_
  • Anmai_
  • 2017年05月02日 16:27
  • 272

PPM/PGM/PBM image formats

转自http://paulbourke.net/dataformats/ppm/ This note describes the format of PPM (Portable PixMap), P...
  • guochunlei1234
  • guochunlei1234
  • 2015年09月24日 21:43
  • 662

pgm格式文件及其在matlab中的读取存储方法(2)

pgm图片格式再matlab里的导入与处理;matlab中imread函数所能处理的图片格式。
  • ds1231h
  • ds1231h
  • 2015年10月19日 15:57
  • 3283

PBM, PGM, PNM, and PPM File Format Summary

 PBM, PGM, PNM, and PPM File Format SummaryAlso Known As: Portable Bitmap Utilities, pbmplus   TypeB...
  • onezeros
  • onezeros
  • 2009年11月21日 12:00
  • 1428

jpg格式的图像与pgm格式的图像互转 matlab代码

批量转换图像格式 % % % jpg2pgm clc; close all; clear all; imgcell_test = dir('.\\test\\*.jpg'); if ~ex...
  • u011509744
  • u011509744
  • 2017年05月10日 20:00
  • 969
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PPM/PGM/PBM 图象文件(thinkvd 开发日志)
举报原因:
原因补充:

(最多只允许输入30个字)