0% found this document useful (0 votes)
66 views

Image Data Format

The document discusses the PBMPLUS image format and the xv utility for displaying digital images. It covers the different PBMPLUS image data types including bilevel, monochrome, and RGB color. It provides examples of encoding images in the PBM, PGM, and PPM ASCII and RAW formats. It also discusses using vi to create and edit image files, and utilities like rawtopbm and pnmtotiff for converting between formats.

Uploaded by

dr mbalu
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views

Image Data Format

The document discusses the PBMPLUS image format and the xv utility for displaying digital images. It covers the different PBMPLUS image data types including bilevel, monochrome, and RGB color. It provides examples of encoding images in the PBM, PGM, and PPM ASCII and RAW formats. It also discusses using vi to create and edit image files, and utilities like rawtopbm and pnmtotiff for converting between formats.

Uploaded by

dr mbalu
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 56

Image Data and Display

RolandoV.Raqueo

Wednesday,August26,2015

For Class Consistency


% source ~rvrpci/.simg726.rc

RolandoV.Raqueo

Wednesday,August26,2015

Quiz #2 Topics
mkdir
chmod
cd
grep
ci and co

RolandoV.Raqueo

Wednesday,August26,2015

PBMPLUS FORMAT and xv


Digital image format concepts

PBMPLUS image interchange format.

Displaying digital image


xv image display

RolandoV.Raqueo

Wednesday,August26,2015

PBMPLUS Image Data Types


Bilevel Image Data Type
Black and White

Monochrome Image Data Type


Greyscale

RGB Color Image Data Type


Color

RolandoV.Raqueo

Wednesday,August26,2015

Two PBMPLUS
Representations
All PBMPLUS data formats have the
following representations
ASCII Format

(for Human Consumption)

RAW Format

(for Computer Consumption)

RolandoV.Raqueo

Wednesday,August26,2015

Displaying Images
Use xv utility for display and documentation purposes.
Note that xv is an X client

Should NEVER be used for image processing


USE ONLY FOR DISPLAY PURPOSES

To invoke xv

% xv &
% xv filename.pgm &

RolandoV.Raqueo

Wednesday,August26,2015

Portable Bit Map (PBM)


Bilevel Image Data Type
(Black and White)

Used to represent printed black and white


imagery such as documents and faxes.
Uses 0s (zeroes) to represent white
(no ink deposited on paper)

Uses 1s (ones) to represent black


(ink deposited on paper)

RolandoV.Raqueo

Wednesday,August26,2015

Let us digress
The vi Problem
vi practice and creation of a bilevel image.
7x10 graph paper divided into 10 squares per inch.
Cell not covered by ink
value of zero (0).

Cell fully or partially covered by ink


value of one (1).

You will have a total of 700 pixels to enter.

RolandoV.Raqueo

Wednesday,August26,2015

Problem #1 Solution
vi - Brute Force Solution

1. Is the current pixel 0 (zero) or 1 (one)?


2. Type the appropriate character
3. Repeat steps 1 and 2 until done

RolandoV.Raqueo

10

Wednesday,August26,2015

Problem #1 Solution
vi Smart Solution

1. Type the vi command 70i0


seventy, i - for insert, 0 (zero)
2. Hit the ESCAPE key to get you out of insert mode.
3. Type the vi command o to open a new line
4. Hit the ESCAPE key to get you out of insert mode.
5. Move back up to the line of zeroes and use the yy
(yank command) to make a copy of the line of 70
zeroes.

RolandoV.Raqueo

11

Wednesday,August26,2015

Problem #1 Solution
vi Smart Solution

6. Type the vi command p10 times


7. Move back up to the top line of zeroes and use
the 10yy (yank command) to make a copy of
10 lines of 70 zeroes per line.
8. Type the vi command p10 times
9.You will now have a page of 700 zeroes.

RolandoV.Raqueo

12

Wednesday,August26,2015

Problem #1 Solution
vi Smart Solution

10. You can navigate to the areas that need to be


changed to 1 and use the R command to
replace contiguous set of characters.
11. Hit the ESCAPE key to get you out of insert mode.
12. Navigate to next section and repeat steps 10 -12
until done.
13. Save the file out and exit vi
:wq signature.dat
RolandoV.Raqueo

13

Wednesday,August26,2015

Yet another vi Digression


To show line number in vi, execute the
following command
:set number
To disable line numbers in vi, execute
the following command
:set nonumber

RolandoV.Raqueo

14

Wednesday,August26,2015

Viewing current vi settings


:set all
noautoindent
autoprint
noautowrite
nobeautify
directory=/var/tmp
noedcompatible
noerrorbells
noexrc
flash
hardtabs=8
noignorecase
nolisp
nolist
magic
mesg

RolandoV.Raqueo

nomodelines
noshowmode
nonumber
noslowopen
nonovice
tabstop=8
nooptimize
taglength=0
paragraphs=IPLPPPQPP LIpplpipnpbtags=tags /usr/lib/tags
prompt
tagstack
noreadonly
term=vt220
redraw
noterse
remap
timeout
report=5
ttytype=vt220
scroll=11
warn
sections=NHSHH HUuhsh+c
window=23
shell=/bin/csh
wrapscan
shiftwidth=8
wrapmargin=0
noshowmatch
nowriteany

15

Wednesday,August26,2015

Saving vi Preferences
Preferences such as :set number
can be saved in the file .exrc in your
home directory (~)

RolandoV.Raqueo

16

Wednesday,August26,2015

A vi Command to Always
Remember
To replace all occurrences or a string in
a file with new string.
:%s/string1/string2/g
OR

:%s/string1/string2/gc
(Willaskyouforconfirmation)
RolandoV.Raqueo

17

Wednesday,August26,2015

The Super-smart Solution


In UNIX
% repeat 70 echo -n 0 >>
one_line; echo >> one_line;
repeat 100 cat one_line >>
signature.dat

RolandoV.Raqueo

18

Wednesday,August26,2015

Lets Create another image


Put the signature.dat away for the
time being and create a simpler image
Call it bilevel.pbm

RolandoV.Raqueo

19

Wednesday,August26,2015

Portable Bit Map (PBM)


Bilevel Image Data Type

For the ASCII file format, the file header is given by P1


width and height of the image.
Comments are indicated by the # character

P1
# This is a 16 column x 3 row
# PBM ASCII image
# Created by using vi
16 3
001010100011010000111110
010010000101001001011100

RolandoV.Raqueo

20

Wednesday,August26,2015

Portable Bit Map (PBM)


Make a copy of bilevel.pbm and edit the copy to look like
the following,
P1
#This is a 16 column x 3 row PBM ASCII
#image
#
16 3
0010101000110100
0011111001001000
0101001001011100

RolandoV.Raqueo

21

Wednesday,August26,2015

Portable Bit Map (PBM)


When displayed looks like
P1
# This is a 16 column x 3 row PBM ASCII
# image
#
16 3
0010101000110100
0011111001001000
0101001001011100

RolandoV.Raqueo

22

Wednesday,August26,2015

How to Add a PBMPLUS


Header to an Image File
If its an ASCII file you can use vi
Use the cat command to concatenate a
header from a file or the keyboard
(standard input - stdio)

RolandoV.Raqueo

23

Wednesday,August26,2015

Put a header on signature.dat


and display in xv
Method #1

Using a text editor, input the appropriate


header values.

RolandoV.Raqueo

24

Wednesday,August26,2015

Put a header on signature.dat


and display in xv
Method #2

Edit a file called header.dat containing


the header information
Concatenate the header file at the
beginning of signature.dat using the
cat command
% cat header.dat signature.dat >
signature.pbm

RolandoV.Raqueo

25

Wednesday,August26,2015

Put a header on signature.dat


and display in xv
Method #3

Concatenate the header data from the keyboard


directly to the beginning of signature.dat
using the cat command
% cat - signature.dat > signature.pbm
P1
70 100
^D
RolandoV.Raqueo

26

Wednesday,August26,2015

Portable Bit Map (PBM)


There is also a binary version of the PBM
image type which uses a P4 header such
as the one below
P4
# This is a 16 column x 3 row PBM RAW
# image
16 3
*4>HR\

RolandoV.Raqueo

27

Wednesday,August26,2015

Portable Grey Map (PGM)


Monochrome Image Data Type
(Greyscale)
Displayed greyscale imagery
Grey values brightness.
Convention opposite that of the PBM
format

RolandoV.Raqueo

28

Wednesday,August26,2015

Portable Grey Map (PGM)


Monochrome Image Data Type (Greyscale)
EXAMPLE,

P2
# This is a 3 column x 2 row PGM ASCII image
# With a possible maximum grey value of 255
3 2
255
42 52 62
72 82 92
RolandoV.Raqueo

29

Wednesday,August26,2015

Portable Grey Map (PGM)


When displayed, the image is shown below
P2
# This is a 3 column x 2 row PGM ASCII image
# With a possible maximum grey value of 255
3 2
255
42 52 62
72 82 92

RolandoV.Raqueo

30

Wednesday,August26,2015

Portable Grey Map (PGM)


There is also a binary version of the PGM image type
which uses a P5 header such as the one below
P5
# This is a 3 column x 2 row PGM Raw
# image
3 2
255
*4>HR\
RolandoV.Raqueo

31

Wednesday,August26,2015

Portable Pixel Map (PPM)


RGB Color Image Data Type (Color)
Red, Green, and Blue bands
Arranged in pixel-interleaved format or
band interleaved by pixel (BIP)

RolandoV.Raqueo

32

Wednesday,August26,2015

Portable Pixel Map (PPM)


RGB Color Image Data Type (Color)
For the ASCII file format,

P3
width, height
maximum grey level possible of the image

The pixel values are given as a triple


representing the red, green, and blue
components .

RolandoV.Raqueo

33

Wednesday,August26,2015

Portable Pixel Map (PPM)


RGB Color Image Data Type (Color)
EXAMPLE,
P3
3 3
255
255 0 0
128 0 0
0
0 0

RolandoV.Raqueo

0
255 0
0
128 0
128 128 128

34

0
0
255
0
0
128
255 255 255

Wednesday,August26,2015

PPM QUESTION
So what does the data

*4>HR\

look like as a
Raw PPM Image?

RolandoV.Raqueo

35

Wednesday,August26,2015

Conversion of Raw Files to


PBMPLUS Format
Alternative to manually prepending a
header file using cat command
rawtopbm, rawtopgm, or rawtoppm

% rawtopgm 256 256


~rvrpci/pub/MyCat_P5.raw >
MyCat.pgm

RolandoV.Raqueo

36

Wednesday,August26,2015

Usage Note About PBMPLUS


Commands
PBMPLUS commands heavily use the
UNIX redirection and piping
To get help use -h option.
% rawtopgm -h
usage: rawtopgm [-headerskip N] [rowskip N] [-tb|-topbottom] [<width>
<height>][rawfile]

RolandoV.Raqueo

37

Wednesday,August26,2015

Converting PNM Image File


to Another Format
PNM is a generic designator for all PBM, PGM, and PPM
Convert a PBMPLUS format file into a TIFF
e.g., signature.pbm to signature.tiff.

Use the following command

% pnmtotiff -none signature.pbm > signature.tiff


-noneoption means not invoke LZW image compression.

RolandoV.Raqueo

38

Wednesday,August26,2015

Rudimentary Image Processing


Using the PBMPLUS Utilities
Requires that all input be in some form of
PBM, PGM, PPM image
Supposed we wanted to enlarge a tiff file
( e.g., signature.tiff) by a scale factor
of 2x and then convert it to a SUN raster
file.
TIFF
FILE

RolandoV.Raqueo

PNM
FILE

2X
Scale

39

PNM
FILE

RAST
FILE

Wednesday,August26,2015

Rudimentary Image Processing


Using the PBMPLUS Utilities
The previous process can actually be
executed in one UNIX command
% tifftopnm signature.tiff | pnmscale 2.0 |
pnmtorast > signature.rast

In fact you can pipe the information directly


to xv before writing it out to another format
% tifftopnm signature.tiff | pnmscale 2.0 |
pnmtorast | xv RolandoV.Raqueo

40

Wednesday,August26,2015

PBMPLUS File Information


Supposed you wanted to know what the
characteristics are of a particular
PBMPLUS file you can give the
following command
% pnmfile MyCat.pgm
MyCat.pgm: PGM raw, 256 by 256

RolandoV.Raqueo

41

maxval 255

Wednesday,August26,2015

PBMPLUS Histogram Utilities


Greyscale histogram
pgmhist

Color histogram
ppmhist

RolandoV.Raqueo

42

Wednesday,August26,2015

Cutting out regions of interest


% pnmcut
usage: pnmcut x y width height
[pnmfile]

% pnmcrop
usage: pnmcrop [-white|-black]
[-left] [-right] [-top] [bottom] [pnmfile]
RolandoV.Raqueo

43

Wednesday,August26,2015

Pasting or Arranging Images


% pnmcat
pnmcat [-white|-black]
-leftright|-lr [-jtop|-jbottom]
pnmfile pnmfile ...

% pnmpaste
pnmpaste [-replace|-or|-and |xor]
frompnmfile x y [intopnmfile]
RolandoV.Raqueo

44

Wednesday,August26,2015

You have a bunch of images...


% pnmindex
pnmindex [-size N] [-across N]
[-colors N] [-black] pnmfile ...

RolandoV.Raqueo

45

Wednesday,August26,2015

Color Bands
Combination and Extraction
% rgb3ppm
rgb3toppm redpgmfile greenpgmfile
bluepgmfile

% ppmtorgb3
ppmtorgb3 [ppmfile]
results in .red .grn .blu

RolandoV.Raqueo

46

Wednesday,August26,2015

Spatial Operations
pnmconvol
pnmscale
pnmrotate
pnmflip
pnmshear

RolandoV.Raqueo

47

Wednesday,August26,2015

Greyscale/Color Operations
ppmquant
pnmdepth
ppmdither

RolandoV.Raqueo

48

Wednesday,August26,2015

Really Useful Stuff


Doing Screen Captures under X
% xwd | xwdtopnm | pnmdepth
255 | pnmtotiff > screen.tif
Your cursor will turn into crosshairs
Click on the window you want to capture

RolandoV.Raqueo

49

Wednesday,August26,2015

Screen Capture through xv


Click on grab button
Specify a time delay
Left button grabs
window
Middle button grabs
a rectangle
Right button cancels

RolandoV.Raqueo

50

Wednesday,August26,2015

Getting Hardcopy Output


Determining what type of display device you have
IDL> help,/device
Available graphics_devices: CGM HP MAC NULL PCL PS Z
Current graphics device: MAC
Macintosh Quickdraw Driver
Screen Resolution: 640x442
Physical Color Map Entries (Used / Total): 220 / 256
Current Window Number: 0, size: (320,240) type: Window.
Graphics Function: 3 (copy)
Current Font: Chicago
Default Backing Store: Pixmap.
Window Status:
0: Window 320x240 (Retained)

RolandoV.Raqueo

51

Wednesday,August26,2015

Getting Hardcopy Output


To get a postscript output of your plot
IDL>
IDL>
IDL>
IDL>
IDL>

set_plot,ps
device, Filename=new_plot.ps
plot, my_data,Title=Imaging Lab 1
device, /close
$lpr -Pdip new_plot.ps

You then want to return your output device to


whatever display device you had originally
IDL> set_plot,MAC

RolandoV.Raqueo

52

Wednesday,August26,2015

Check Your Postscript File


Before Sending to the Printer

You can use the ghostview utility to


view a postscript file

RolandoV.Raqueo

53

Wednesday,August26,2015

Note Well
Always make sure that the printer to which
you will be sending your job is capable of
talking Postscript. If it does not, you will be
killing many trees.
To find out the status of your job
% lpq -P(printer name)

To kill a print job

% lprm -P(printer name) job_number


RolandoV.Raqueo

54

Wednesday,August26,2015

Getting Encapsulated
Postscript File (EPS)
To get a postscript file of your plot that you
can include into another document
IDL>
IDL>
IDL>
IDL>
IDL>

set_plot,ps
device, /encapsulated, /preview
device, Filename=new_plot.eps
plot, my_data,Title=Imaging Lab 1
device, /close

The above process creates what is known


as an Encapsulated Postscript File (EPS)
RolandoV.Raqueo

55

Wednesday,August26,2015

RolandoV.Raqueo

56

Wednesday,August26,2015

You might also like