home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / GRAPHICS / mgif.lzh / GIF / mgif.man < prev    next >
Text File  |  1992-01-13  |  8KB  |  307 lines

  1. .\" @(#) mgif 3.2 91/6/3 rosenkra
  2. .\" by rosenkra@convex.com (Bill Rosenkranz)
  3. .\"
  4. .TH MGIF 1 LOCAL "Version 3.2" "3 June 1991"
  5. .SH NAME
  6. mgif \- display a GIF image in monochrome
  7. .SH SYNOPSIS
  8. .\"    mgif [ -i ] [ -v ] [ -N ] file ...
  9. .B mgif
  10. [
  11. .B \-i
  12. ] [
  13. .B \-v
  14. ] [
  15. .B \-N
  16. ]
  17. .IR file ...
  18. .SH DESCRIPTION
  19. .B Mgif
  20. displays color
  21. .SM GIF
  22. images on a monochrome ST display.
  23. .SM GIF
  24. files carry the extensions \*(lq.gif\*(rq and are compressed using
  25. LZW codes.
  26. It uses Floyd-Steinberg dithering to simulate color.
  27. In addition, this new version implements \*(lqflicker\*(rq palettes to
  28. simulate grayscale on a monochrome screen.
  29. All things considered, it does a decent job.
  30. .PP
  31. .B Mgif
  32. now also contains numerous image processing functions to enhance images.
  33. Included are:
  34. .sp
  35. .nf
  36.     Histogram equalization
  37.     Contrast stretching
  38.     Blurring
  39.     Brightening (or darkening)
  40.     Histogram plot
  41.     Enlarge/reduce
  42.     Inversion (negation with threshold)
  43.     Log scaling
  44.     Thresholding
  45.     Median filtering
  46. .fi
  47. .PP
  48. .B Mgif
  49. allows each image processing function to be cummulative or each
  50. operation can be independent.
  51. .B Mgif
  52. is interactive (not a
  53. .SM GEM
  54. program) and prompts for commands.
  55. It also has online help.
  56. .SH OPTIONS
  57. The following command line options are recognized:
  58. .IP "\fB\-i\fR"
  59. Inquire about the file but do not display it.
  60. Output contains information like image size, number of bits per pixel,
  61. and whether or not the image is interlaced or sequential.
  62. .IP "\fB\-v\fR"
  63. Verbose output.
  64. .IP "\fB\-N\fR"
  65. Use the classic
  66. .SM NTSC
  67. equation for computing luminescense from
  68. .SM RGB
  69. values, that is:
  70. .sp
  71. .RS
  72. lum = 0.299 R + 0.587 G + 0.114 B
  73. .RE
  74. .sp
  75. Otherwise the values are unweighted.
  76. This option only makes sense for files with color maps in which the
  77. entry for each color uses different values for red, green, and blue.
  78. Note that the actual equation used is:
  79. .sp
  80. .RS
  81. lum = 0.30 R + 0.59 G + 0.11 B
  82. .RE
  83. .sp
  84. which is close enough.
  85. Also note that
  86. .SM NTSC
  87. luminescense is a global option and must be set on program entry.
  88. .IP "\fIfile\fR"
  89. One or more
  90. .SM GIF
  91. files.
  92. .SH "INTERACTIVE COMMANDS"
  93. The following commands are available at the prompt:
  94. .IP "\fB?\fR"
  95. help
  96. .sp
  97. Clears the screen and prints a brief summary of commands.
  98. .IP "\fBq\fR"
  99. quit (next image)
  100. .sp
  101. Quit does not exit the program.
  102. It just moves to the next image from the command line.
  103. .IP "\fBESC\fR"
  104. exit program
  105. .sp
  106. Cleans up and exits.
  107. .IP "\fBSPACE\fR"
  108. draw image
  109. .sp
  110. The current image, either original or new, is drawn (or redrawn).
  111. .IP "\fBhi\fR"
  112. histogram
  113. .sp
  114. Plots the histogram of the original or new image.
  115. The histogram is based on intensity only.
  116. Older versions of the program displayed
  117. .SM RGB
  118. histograms as well.
  119. That option was dropped, though it was sometimes useful.
  120. Note that if
  121. .B o
  122. is toggled for original image, you should toggle
  123. .B o
  124. again to plot a histogram of a transformed image, then toggle back
  125. to work on the original.
  126. .IP "\fBo\fR"
  127. original/new image
  128. .sp
  129. This toggles two sorts of behavior: 1) all transformations take place
  130. on the
  131. .I original
  132. image and are not cummulative, 2) all transformations
  133. take place on the
  134. .I new
  135. (last) image and are cummulative.
  136. .IP "\fBn\fR"
  137. noise
  138. .sp
  139. Adds noise not to the image but to the \*(lqflicker\*(rq process itself.
  140. Can help in images which have artificial banding as a result of the
  141. dithering process.
  142. You are asked for a value,
  143. which if 0, turns off noise addition.
  144. Otherwise, it is a percentage (0 to 100).
  145. Each time
  146. .B o
  147. is toggled, noise is reset to 0 (i.e. off).
  148. .IP "\fBg\fR"
  149. Laplace filter
  150. .sp
  151. This, like noise, is not applied to the image itself but rather in
  152. the flicker process.
  153. It helps to define hard edges in images and implements a Laplace filter.
  154. A quantity,
  155. .BR Beta ,
  156. is required.
  157. Use integers (1, 2, etc.) for this value.
  158. A value of 1 corresponds to Beta of 0.25,
  159. a value of 2 corresponds to Beta of 0.50, etc.
  160. A value of 0 turns off Laplace filtering.
  161. Each time
  162. .B o
  163. is toggled, Beta is reset to 0 (i.e. Laplace filtering off).
  164. .IP "\fBe\fR"
  165. enlarge
  166. .sp
  167. Enlarges images by 2x (only).
  168. .IP "\fBs\fR"
  169. shrink
  170. .sp
  171. Reduces images by 2x (only).
  172. Makes them half size in height and width.
  173. .IP "\fBhe\fR"
  174. histogram equalization
  175. .sp
  176. Histogram equalization attempts to smooth out images with skewed or narrow
  177. histograms.
  178. A histogram is a graph showing the relative number of pixels with each
  179. possible intensity value.
  180. The practical use is to make images more uniform in contrast by
  181. making the histogram more uniform and hence representing all intensities
  182. as equally as possible.
  183. .IP "\fBi\fR"
  184. inverse (negation)
  185. .sp
  186. Invert an image, i.e. make low intensity pixels bright and visa versa.
  187. Inversion is implemented here more generally.
  188. A threshold is needed.
  189. If it is 0, the entire image is inverted.
  190. If it is a negative value between 0 and -255, only pixels
  191. .I below
  192. that level are inverted.
  193. If it is a positive value between 0 and 255, only pixels
  194. .I above
  195. that level are inverted.
  196. .IP "\fBl\fR"
  197. log scaling
  198. .sp
  199. Application of log scaling helps some images.
  200. It more often will sort of \*(lqsolarize\*(rq images.
  201. .IP "\fBt\fR"
  202. threshold (black & white)
  203. .sp
  204. This process makes all pixels above a given threshold intensity
  205. white and all below the threshold black.
  206. It is useful in producing line art.
  207. .IP "\fBc\fR"
  208. contrast expansion
  209. .sp
  210. Attempts to expand the contrast of an image to cover the entire range
  211. of 256 allowable grayscales.
  212. Somewhat similar to histogram equalization but it does not redistribute
  213. actual pixels.
  214. You are asked for a threshold which is a pixel count.
  215. This determines the lowest and highest intensities, based on the
  216. histogram, which are to be stretched.
  217. .IP "\fBbr\fR"
  218. brighten (or darken)
  219. .sp
  220. Here a constant intensity is added (or subtracted) from every pixel.
  221. A negative number causes image darkening and a positive number causes
  222. image brightening.
  223. Pixels which would otherwise go less than 0 or greater than 255 are limited
  224. to these values, respectively.
  225. .IP "\fBbl\fR"
  226. blur
  227. .sp
  228. Blurring an image can also help contrast, though at the expense of loss
  229. of detail.
  230. Here a 3x3 neighborhood is used.
  231. Often in practice a 5x5 neighborhood is used, but that tends to take a
  232. relatively long time.
  233. .IP "\fBm\fR"
  234. median filter
  235. .sp
  236. Median filtering can remove noise from an image.
  237. Here a 3x3 neighborhood is used with the median value of each of the 9
  238. pixels replacing the pixel of interest.
  239. This is done in place so that the next pixel examined within the row or the
  240. next row will see pixels already filtered.
  241. .IP "\fBv\fR"
  242. convolution filters 
  243. .sp
  244. Apply one of a number of 3x3 convolutions to an image.
  245. Choose one of the built\-in filters (number greater than 0) or enter 0
  246. for user defined.
  247. In the latter case, you enter the 9 elements of the convolution kernel along
  248. with a flag if there will be a multiplier (or divisor).
  249. Then enter that scaling factor.
  250. All quantities are to be integers.
  251. .SH FILES
  252. .nf
  253. *.gif     GIF image files
  254. .fi
  255. .SH "SEE ALSO"
  256. gif(5)
  257. .br
  258. Gonzalez and Wintz, \fIDigital Image Processing\fR.
  259. .br
  260. Lindley, \fIPractical Image Processing In C\fR.
  261. .br
  262. Burger and Gillies, \fIInteractive Computer Graphics\fR.
  263. .SH DIAGNOSTICS
  264. Various warnings attempting to isolate corrupted files.
  265. The usual messages about errors openning files, etc.
  266. If an error occurs during a processing function, the prompt line
  267. will indicate the error.
  268. .SH NOTES
  269. Source code has standalone versions (i.e. single entry point) for
  270. both reading
  271. .SM GIF
  272. files and displaying grayscale bitmaps with flicker.
  273. .SH BUGS
  274. Handles images up to 400,000 bytes (hardwired) or 640x600 (or any other
  275. combination totaling 400,000).
  276. It needs dynamic memory but I generally stay away from
  277. .SM GEMDOS
  278. .IR Malloc (2),
  279. prefering libc
  280. .IR malloc (3)
  281. (i.e. off stack).
  282. .PP
  283. .SM GIF
  284. decoding is slow and could be faster.
  285. Some of the area processes (blur, etc.) could also be faster.
  286. .PP
  287. Log scaling needs logarithms but I did not want to use floating point
  288. so I get a crude (two significant digit) base 2 log.
  289. .SH TODO
  290. More than I wish to consider, but here is the short list:
  291. .sp
  292. .nf
  293.     \(bu Output file of some sort
  294.  
  295.     \(bu Zoom and pan
  296.  
  297.     \(bu Rotate, mirror, etc.
  298. .fi
  299. .SH AUTHOR
  300. .nf
  301. Bill Rosenkranz (rosenkra@convex.com)
  302. .br
  303. Flicker adopted from code sent to me by Klaus Pedersen (micro@imada.dk)
  304. .fi
  305. .SH VERSION
  306. mgif 3.2 91/6/3 rosenkra
  307.