Title: Image Data and Display
1Image Data and Display
2For Class Consistency
- source rvrpci/.simg726.rc
3Quiz 2 Topics
- mkdir
- chmod
- cd
- grep
- ci and co
4PBMPLUS FORMAT and xv
- Digital image format concepts
- PBMPLUS image interchange format.
- Displaying digital image
- xv image display
5PBMPLUS Image Data Types
- Bilevel Image Data Type
- Black and White
- Monochrome Image Data Type
- Greyscale
- RGB Color Image Data Type
- Color
6Two PBMPLUS Representations
- All PBMPLUS data formats have the following
representations - ASCII Format
- (for Human Consumption)
- RAW Format
- (for Computer Consumption)
7Displaying 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
-
8Portable 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)
9Let 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.
10Problem 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
11Problem 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.
12Problem 1 Solution
- vi- Smart Solution
- 6. Type the vi command p 10 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 p 10 times
- 9.You will now have a page of 700 zeroes.
13Problem 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
14Yet 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
15Viewing current vi settings
- set all
- noautoindent nomodelines
noshowmode - autoprint nonumber
noslowopen - noautowrite nonovice
tabstop8 - nobeautify nooptimize
taglength0 - directory/var/tmp paragraphsIPLPPPQPP
LIpplpipnpbtagstags /usr/lib/tags - noedcompatible prompt
tagstack - noerrorbells noreadonly
termvt220 - noexrc redraw
noterse - flash remap
timeout - hardtabs8 report5
ttytypevt220 - noignorecase scroll11
warn - nolisp sectionsNHSHH HUuhshc
window23 - nolist shell/bin/csh
wrapscan - magic shiftwidth8
wrapmargin0 - mesg noshowmatch
nowriteany
16Saving vi Preferences
- Preferences such as set number can be saved in
the file .exrc in your home directory ()
17A 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
- (Will ask you for confirmation)
18The Super-smart Solution
- In UNIX
- repeat 70 echo -n 0 gtgt one_line echo gtgt
one_line repeat 100 cat one_line gtgt
signature.dat
19Lets Create another image
- Put the signature.dat away for the time being and
create a simpler image - Call it bilevel.pbm
20Portable 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
21Portable 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
22Portable Bit Map (PBM)
- When displayed looks like
- P1
- This is a 16 column x 3 row PBM ASCII
- image
-
- 16 3
- 0010101000110100
- 0011111001001000
- 0101001001011100
23How 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)
24Put a header on signature.dat and display in xv
- Method 1
- Using a text editor, input the appropriate header
values.
25Put 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 gt signature.pbm
26Put 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 gt signature.pbm
- P1
- 70 100
- D
27Portable 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
- 4gtHR\
28Portable Grey Map (PGM)
- Monochrome Image Data Type (Greyscale)
- Displayed greyscale imagery
- Grey values µ brightness.
- Convention opposite that of the PBM format
29Portable 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
30Portable 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
31Portable 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
- 4gtHR\
32Portable 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)
33Portable 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 .
34Portable Pixel Map (PPM)
- RGB Color Image Data Type (Color)
- EXAMPLE,
- P3
- 3 3
- 255
- 255 0 0 0 255 0 0 0 255
- 128 0 0 0 128 0 0 0 128
- 0 0 0 128 128 128 255 255 255
35PPM QUESTION
- So what does the data4gtHR\ look like as a Raw
PPM Image?
36Conversion 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 gt
MyCat.pgm
37Usage 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 ltwidthgt ltheightgtrawfile
38Converting 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 gt signature.tiff
- -none option means not invoke LZW image
compression. -
39Rudimentary 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.
40Rudimentary Image Processing Using the PBMPLUS
Utilities
- The previous process can actually be executed in
one UNIX command - tifftopnm signature.tiff pnmscale 2.0
pnmtorast gt 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 -
41PBMPLUS 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 maxval 255
42PBMPLUS Histogram Utilities
- Greyscale histogram
- pgmhist
- Color histogram
- ppmhist
43Cutting out regions of interest
- pnmcut
- usage pnmcut x y width height pnmfile
- pnmcrop
- usage pnmcrop -white-black -left -right
-top -bottom pnmfile
44Pasting or Arranging Images
- pnmcat
- pnmcat -white-black -leftright-lr
-jtop-jbottom pnmfile pnmfile ... - pnmpaste
- pnmpaste -replace-or-and xor frompnmfile x y
intopnmfile
45You have a bunch of images...
- pnmindex
- pnmindex -size N -across N
- -colors N -black pnmfile ...
46Color Bands Combination and Extraction
- rgb3ppm
- rgb3toppm redpgmfile greenpgmfile bluepgmfile
- ppmtorgb3
- ppmtorgb3 ppmfile
- results in .red .grn .blu
47Spatial Operations
- pnmconvol
- pnmscale
- pnmrotate
- pnmflip
- pnmshear
48Greyscale/Color Operations
- ppmquant
- pnmdepth
- ppmdither
49Really Useful Stuff
- Doing Screen Captures under X
- xwd xwdtopnm pnmdepth 255 pnmtotiff gt
screen.tif - Your cursor will turn into crosshairs
- Click on the window you want to capture
50Screen Capture through xv
- Click on grab button
- Specify a time delay
- Left button grabs window
- Middle button grabs a rectangle
- Right button cancels
51Getting Hardcopy Output
- Determining what type of display device you have
- IDLgt 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)
52Getting Hardcopy Output
- To get a postscript output of your plot
- IDLgt set_plot,ps
- IDLgt device, Filenamenew_plot.ps
- IDLgt plot, my_data,TitleImaging Lab 1
- IDLgt device, /close
- IDLgt lpr -Pdip new_plot.ps
- You then want to return your output device to
whatever display device you had originally - IDLgt set_plot,MAC
53Check Your Postscript File Before Sending to the
Printer
- You can use the ghostview utility to view a
postscript file
54Note 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
55Getting Encapsulated Postscript File (EPS)
- To get a postscript file of your plot that you
can include into another document - IDLgt set_plot,ps
- IDLgt device, /encapsulated, /preview
- IDLgt device, Filenamenew_plot.eps
- IDLgt plot, my_data,TitleImaging Lab 1
- IDLgt device, /close
- The above process creates what is known as an
Encapsulated Postscript File (EPS)
56(No Transcript)