ROS PGM格式文件详解 | 九七的ROS

ROS PGM格式文件详解

一、定义介绍

  PGM,portable graymap file format,译为便携式灰度图像文件格式。由两部分组成,文件头部分和数据部分。此外,PGM还分为P2和P5两种不同的格式。

文件头包括如下信息:

1.PGM文件的格式类型;

2.图像的宽度;

3.图像的高度;

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

  文件头的这四部分信息都是以ASCII码形式存储的,所以可以直接将PGM格式的文件在记事本中打开看到文件头的信息。如图所示:
ROS PGM格式文件详解 | 九七的ROS_第1张图片

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

P5格式

  P5格式的文件,每个像素用二进制表示,且没有行列的标识和区分,从开始第一个像素到最后一个像素都直接依次连续存储,中间没有空格,行与行直之间也没有空格。假设有一幅P5格式图像,灰度值可能的最大值为255,因此该图像每个像素使用一个字节表示即可。比如它的第一行第一列像素值为100,第一行第二列像素值为200,依次后面排即可。如下面所示的这样。

100200200100111222333001...

  如果一副图灰度值可能的最大值是65535,因为表示到65535需要两个字节,因此,不管如何,哪怕你的灰度值是1,每一个像素的像素值都规定为两个字节表示。此外,因为是以二进制表示,所以数据部分在记事本中打开后看到的将会是乱码。

P2格式

  P2格式的文件,每个像素使用字符串来表示。比如一副P2格式图像,灰度值可能的最大值为255,它的第一行第一列像素值为100,那么该图像图像每个像素使用3个ASCII字符表示。第一行第一列数据为ASII表示的”100”,即100的每一个数据位由一个字节表示,百位1用一个字节,十位0用一个字节,各位0用一个字节。如下面所示。

100
00101101	00101100	00101100
//ASCII中00101100表示0,00101101表示1

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

100 200 100 200
100 100 200 100
200 100 100 200

二、使用方法

1.使用hexdump编辑PGM文件

  在VSCode中下载hexdump插件,右击文件打开即可进行编辑,如图所示
ROS PGM格式文件详解 | 九七的ROS_第2张图片

2.使用GIMP进行编辑

  GIMP是一款类似PS的软件,可以对图片进行处理,PGM本身就是图片,是可以使用这个软件进行编辑的。这是GIMP软件的下载链接:https://www.gimp.org/downloads/
来自:九七的ROS(转载请注明出处)
参考:https://blog.csdn.net/colourful_sky/article/details/70244485

你可能感兴趣的:(九七的ROS,ros,pgm)