PGM 是便攜式灰度圖像格式(portable graymap file format),在黑白超聲圖像系統中經常使用PGM格式的圖像.文件的后綴名為".pgm".
PGM格式圖像格式分為兩類:P2和P5類型.不管是P2還是P5類型的PGM文件,都由兩部分組成,文件頭部分和數據部分.
文件頭部:(2+1+sizeof(width)+1+sizeof(height)+1+3+1=9+sizeof(width)+sizeof(height)=headlenght)
- 格式類型(P2/P5)---2字節
- \n---1字節
- 圖像寬度---xW字節,如:1280每個數字占一個字節,即4個字節
- 空格(0x20)---1字節
- 圖像高度---xH字節, 如: 720每個數字占一個字節,即3個字節
- \n---1個字節
- 圖像灰度值的最大值---xV字節,如: 255占3個字節
- \n---1個字節
文件頭部的1、3、5、7這四部分信息都是以ASCII碼形式存儲的,所以可以直接將P2或P5格式的PGM文件在記事本中打開看到文件頭的信息.
在P2或P5類型的PGM文件頭的4個信息(1、3、5、7)之間用分隔符分開,PGM的合法分隔符包括:空格,TAB,回車符,換行符.
PGM文件頭的信息應該由合法分隔符號分開,如上圖所展示.文件頭的第7個信息,圖像灰度值可能的最大值標明了文件數據部分可能出現的像素灰度值的最大值.上圖指定的255,所以在數據區的像素數據取值范圍在0到255.
數據部分:
數據部分記錄圖像每個像素的灰度值,按照圖像從上到下,從左到右的順序依次存儲每個像素的灰度值.對於像素灰度值的表示P2格式和P5格式有所不同.
P5格式:
P5格式的文件,每個像素用可以
用二進制表示.比如有一幅P5格式圖像,灰度值可能的最大值為255,它的第一行第一列
像素值為100,那么該圖像每個像素使用一個字節表示;第一行第一列為數值為100的二進制一個字節表示.如果這副圖灰度值可能的最大值是65535,那么它的第一行第一列為數值為100的二進制兩個字節表示(因為表示到65535需要兩個字節).
每個像素數據之間沒有間隔的連續存儲,圖像一行信息結束后從下一行第一列繼續,
兩行圖像數據之間也沒有間隔的連續存儲,直到將圖像的所有信息表示完.因為是以二進制表示,所以數據部分在記事本中打開后看到的將會是亂碼.
P2格式:
P2格式的文件,每個像素使
用字符串來表示,比如一幅P2格式圖像,灰度值可能的最大值為255,它的第一行第一列像素值為100,那么該圖像每個像素使用3個ASCII字符表示,第一行第一列數據為ASII表示的"100".不同於P5格式,每個像素數據之間需要用一個空格符分開存儲,在圖像的每一行數據結束時需要換行.還有一點需要注意,P2格式文件數據部分當數據超過70個字節的時候,會自動換行.也就是說圖像的每一行數據末尾,或者存儲時超過70個字節時,需要進行換行.
ppm文件是一種圖像文件,有其自己的文件格式。ppm文件由兩個部分組成:第一個部分是三行ASCII碼,這個部分決定了圖像的存儲格式以及圖像的特征;第二個部分就是圖像的數據部分,圖像就是由這個部分組成的。
文件頭部:
- 格式類型(P3/P6)---2字節
- \n---1字節
- 圖像寬度---xW字節,如:1280每個數字占一個字節,即4個字節
- 空格(0x20)---1字節
- 圖像高度---xH字節, 如: 720每個數字占一個字節,即3個字節
- \n---1個字節
- 圖像灰度值的最大值---xV字節,如: 255占3個字節,表示每一個像素的一個分量用幾個比特表示