%!PS-Adobe-2.0 %%Version: 0.1 %%DocumentFonts: (atend) %%Pages: (atend) %%EndComments % % Version 3.3.2 prologue for troff files. % /#copies 1 store /aspectratio 1 def /formsperpage 1 def /landscape false def /linewidth .3 def /magnification 1 def /margin 0 def /orientation 0 def /resolution 720 def /rotation 1 def /xoffset 0 def /yoffset 0 def /roundpage true def /useclippath true def /pagebbox [0 0 612 792] def /R /Times-Roman def /I /Times-Italic def /B /Times-Bold def /BI /Times-BoldItalic def /H /Helvetica def /HI /Helvetica-Oblique def /HB /Helvetica-Bold def /HX /Helvetica-BoldOblique def /CW /Courier def /CO /Courier def /CI /Courier-Oblique def /CB /Courier-Bold def /CX /Courier-BoldOblique def /PA /Palatino-Roman def /PI /Palatino-Italic def /PB /Palatino-Bold def /PX /Palatino-BoldItalic def /Hr /Helvetica-Narrow def /Hi /Helvetica-Narrow-Oblique def /Hb /Helvetica-Narrow-Bold def /Hx /Helvetica-Narrow-BoldOblique def /KR /Bookman-Light def /KI /Bookman-LightItalic def /KB /Bookman-Demi def /KX /Bookman-DemiItalic def /AR /AvantGarde-Book def /AI /AvantGarde-BookOblique def /AB /AvantGarde-Demi def /AX /AvantGarde-DemiOblique def /NR /NewCenturySchlbk-Roman def /NI /NewCenturySchlbk-Italic def /NB /NewCenturySchlbk-Bold def /NX /NewCenturySchlbk-BoldItalic def /ZD /ZapfDingbats def /ZI /ZapfChancery-MediumItalic def /S /S def /S1 /S1 def /GR /Symbol def /inch {72 mul} bind def /min {2 copy gt {exch} if pop} bind def /setup { counttomark 2 idiv {def} repeat pop landscape {/orientation 90 orientation add def} if /scaling 72 resolution div def linewidth setlinewidth 1 setlinecap pagedimensions xcenter ycenter translate orientation rotation mul rotate width 2 div neg height 2 div translate xoffset inch yoffset inch neg translate margin 2 div dup neg translate magnification dup aspectratio mul scale scaling scaling scale addmetrics 0 0 moveto } def /pagedimensions { useclippath userdict /gotpagebbox known not and { /pagebbox [clippath pathbbox newpath] def roundpage currentdict /roundpagebbox known and {roundpagebbox} if } if pagebbox aload pop 4 -1 roll exch 4 1 roll 4 copy landscape {4 2 roll} if sub /width exch def sub /height exch def add 2 div /xcenter exch def add 2 div /ycenter exch def userdict /gotpagebbox true put } def /addmetrics { /Symbol /S null Sdefs cf /Times-Roman /S1 StandardEncoding dup length array copy S1defs cf } def /pagesetup { /page exch def currentdict /pagedict known currentdict page known and { page load pagedict exch get cvx exec } if } def /decodingdefs [ {counttomark 2 idiv {y moveto show} repeat} {neg /y exch def counttomark 2 idiv {y moveto show} repeat} {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} {counttomark 2 idiv {y moveto show} repeat} {neg setfunnytext} ] def /setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def /w {neg moveto show} bind def /m {neg dup /y exch def moveto} bind def /done {/lastpage where {pop lastpage} if} def /f { dup /font exch def findfont exch dup /ptsize exch def scaling div dup /size exch def scalefont setfont linewidth ptsize mul scaling 10 mul div setlinewidth /spacewidth ( ) stringwidth pop def } bind def /changefont { /fontheight exch def /fontslant exch def currentfont [ 1 0 fontheight ptsize div fontslant sin mul fontslant cos div fontheight ptsize div 0 0 ] makefont setfont } bind def /sf {f} bind def /cf { dup length 2 idiv /entries exch def /chtab exch def /newencoding exch def /newfont exch def findfont dup length 1 add dict /newdict exch def {1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall newencoding type /arraytype eq {newdict /Encoding newencoding put} if newdict /Metrics entries dict put newdict /Metrics get begin chtab aload pop 1 1 entries {pop def} for newfont newdict definefont pop end } bind def % % A few arrays used to adjust reference points and character widths in some % of the printer resident fonts. If square roots are too high try changing % the lines describing /radical and /radicalex to, % % /radical [0 -75 550 0] % /radicalex [-50 -75 500 0] % % Move braceleftbt a bit - default PostScript character is off a bit. % /Sdefs [ /bracketlefttp [201 500] /bracketleftbt [201 500] /bracketrighttp [-81 380] /bracketrightbt [-83 380] /braceleftbt [203 490] /bracketrightex [220 -125 500 0] /radical [0 0 550 0] /radicalex [-50 0 500 0] /parenleftex [-20 -170 0 0] /integral [100 -50 500 0] /infinity [10 -75 730 0] ] def /S1defs [ /underscore [0 80 500 0] /endash [7 90 650 0] ] def % % Tries to round clipping path dimensions, as stored in array pagebbox, so they % match one of the known sizes in the papersizes array. Lower left coordinates % are always set to 0. % /roundpagebbox { 7 dict begin /papersizes [8.5 inch 11 inch 14 inch 17 inch] def /mappapersize { /val exch def /slop .5 inch def /diff slop def /j 0 def 0 1 papersizes length 1 sub { /i exch def papersizes i get val sub abs dup diff le {/diff exch def /j i def} {pop} ifelse } for diff slop lt {papersizes j get} {val} ifelse } def pagebbox 0 0 put pagebbox 1 0 put pagebbox dup 2 get mappapersize 2 exch put pagebbox dup 3 get mappapersize 3 exch put end } bind def %%EndProlog %%BeginSetup mark % % Encoding vector and redefinition of findfont for the ISO Latin1 standard. % The 18 characters missing from ROM based fonts on older printers are noted % below. % /ISOLatin1Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar % missing /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree % missing /plusminus % missing /twosuperior % missing /threesuperior % missing /acute /mu % missing /paragraph /periodcentered /cedilla /onesuperior % missing /ordmasculine /guillemotright /onequarter % missing /onehalf % missing /threequarters % missing /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth % missing /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply % missing /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute % missing /Thorn % missing /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth % missing /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide % missing /oslash /ugrave /uacute /ucircumflex /udieresis /yacute % missing /thorn % missing /ydieresis ] def /NewFontDirectory FontDirectory maxlength dict def % % Apparently no guarantee findfont is defined in systemdict so the obvious % % systemdict /findfont get exec % % can generate an error. So far the only exception is a VT600 (version 48.0). % userdict /@RealFindfont known not { userdict begin /@RealFindfont systemdict begin /findfont load end def end } if /findfont { dup NewFontDirectory exch known not { dup %dup systemdict /findfont get exec % not always in systemdict dup userdict /@RealFindfont get exec dup /Encoding get StandardEncoding eq { dup length dict begin {1 index /FID ne {def}{pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /DummyFontName exch definefont } if NewFontDirectory 3 1 roll put } if NewFontDirectory exch get } bind def setup %%EndSetup %%Page: 1 1 /saveobj save def mark 1 pagesetup 12 /Times-Bold f (Pgmdeshadow User) 2160 1230 w (Manual) 3199 1230 w 10 /Times-Bold f (pgmdeshadow) 720 1920 w 10 /Times-Roman f (Updated: 06 July 2006) 720 2076 w (Table Of Contents) 720 2232 w 10 /Times-Bold f (NAME) 720 2472 w 10 /Times-Roman f (pgmdeshadow \255 Deshadow a PGM image) 720 2628 w 10 /Times-Bold f (SYNOPSIS) 720 2868 w (pgmdeshadow) 720 3024 w 10 /Times-Roman f ([) 1357 3024 w 10 /Times-Italic f (pnmfile) 1390 3024 w 10 /Times-Roman f (]) 1690 3024 w 10 /Times-Bold f (DESCRIPTION) 720 3264 w 10 /Times-Roman f (This program is part of Netpbm.) 720 3456 w 10 /Times-Bold f (pgmdeshadow) 720 3612 w 10 /Times-Roman f (removes) 1360 3612 w (gray) 1726 3612 w (shadows) 1931 3612 w (from) 2304 3612 w (an) 2527 3612 w (image.) 2650 3612 w (This) 2973 3612 w (is) 3180 3612 w (useful) 3276 3612 w (for) 3549 3612 w (an) 3694 3612 w (image) 3817 3612 w (containing) 4090 3612 w (text,) 4541 3612 w (such) 4745 3612 w (as) 4957 3612 w (a) 720 3732 w (scanned) 790 3732 w (book) 1137 3732 w (pages,) 1363 3732 w (where) 1641 3732 w (a) 1910 3732 w (shadow) 1980 3732 w (typically) 2311 3732 w (appears near the book crease or near one side of the image.) 2687 3732 w 10 /Times-Bold f (pgmdeshadow) 720 3852 w 10 /Times-Roman f (recognizes) 1368 3852 w (a) 1830 3852 w (gray) 1910 3852 w (shadow) 2123 3852 w (as) 2464 3852 w (an) 2583 3852 w (area) 2713 3852 w (of) 2914 3852 w (smoothly) 3033 3852 w (changing) 3442 3852 w (color,) 3844 3852 w (starting) 4110 3852 w (from) 4446 3852 w (the) 4676 3852 w (outer) 4835 3852 w (edges) 720 3972 w (of) 976 3972 w (the) 1088 3972 w (image.) 1239 3972 w (The) 1562 3972 w (program) 1746 3972 w (uses) 2113 3972 w (a) 2314 3972 w (simple) 2386 3972 w (image) 2681 3972 w (reconstruction) 2953 3972 w (algorithm) 3552 3972 w (to) 3969 3972 w (determine) 4075 3972 w (the) 4502 3972 w (local) 4652 3972 w (sha\255) 4874 3972 w (dow gray level, then divides each pixel's gray level by the local shadow gray level.) 720 4092 w (The) 720 4248 w (algorithm) 904 4248 w (is) 1322 4248 w (the) 1418 4248 w ("fast) 1569 4248 w (hybrid) 1783 4248 w (grayscale) 2073 4248 w (reruction") 2478 4248 w (algorithm) 2908 4248 w (from) 3326 4248 w (Luc) 3549 4248 w (Vincent,) 3733 4248 w ("Morphological) 4104 4248 w (Grays\255) 4769 4248 w (cale Reruction in Image Analysis: Applications and Efficient Algorithms.) 720 4368 w 10 /Times-Bold f (OPTIONS) 720 4608 w 10 /Times-Roman f (None.) 720 4800 w 10 /Times-Bold f (REFERENCES) 720 5040 w 10 /LucidaSansUnicode22 f (\031) 720 5232 w 10 /Times-Roman f (Luc) 970 5232 w (Vincent,) 1168 5232 w ("Morphological) 1552 5232 w (Grayscale) 2231 5232 w (Reruction) 2673 5232 w (in) 3111 5232 w (Image) 3233 5232 w (Analysis:) 3526 5232 w (Applications) 3948 5232 w (and) 4503 5232 w (Efficient) 4691 5232 w (Algorithms," IEEE Transactions on Image Processing, vol. 2, no. 2, April 1993, pp. 176\255201.) 970 5352 w 10 /Times-Bold f (SEE ALSO) 720 5628 w 10 /Times-Roman f (ppmshadow, pgm) 720 5784 w 10 /Times-Bold f (HISTORY) 720 6024 w (pgmdeshadow) 720 6216 w 10 /Times-Roman f (was added to Netpbm in Version 10.35 \(August 2006\).) 1357 6216 w 10 /S1 f (________________________________________________________________________) 720 6336 w 10 /Times-Bold f (Table Of Contents) 720 6576 w 10 /LucidaSansUnicode22 f (\031) 720 6768 w 10 /Times-Roman f (SYNOPSIS) 970 6768 w 10 /LucidaSansUnicode22 f (\031) 720 6924 w 10 /Times-Roman f (DESCRIPTION) 970 6924 w 10 /LucidaSansUnicode22 f (\031) 720 7080 w 10 /Times-Roman f (OPTIONS) 970 7080 w 10 /LucidaSansUnicode22 f (\031) 720 7236 w 10 /Times-Roman f (REFERENCES) 970 7236 w cleartomark showpage saveobj restore %%EndPage: 1 1 %%Page: 2 2 /saveobj save def mark 2 pagesetup 10 /Times-Roman f (\255 2 \255) 2797 480 w 10 /LucidaSansUnicode22 f (\031) 720 840 w 10 /Times-Roman f (SEE ALSO) 970 840 w 10 /LucidaSansUnicode22 f (\031) 720 996 w 10 /Times-Roman f (HISTORY) 970 996 w cleartomark showpage saveobj restore %%EndPage: 2 2 %%Trailer done %%DocumentFonts: Times-Roman LucidaSansUnicode22 Times-Italic Times-Bold S1 %%Pages: 2