summaryrefslogtreecommitdiffstats
path: root/upstream/opensuse-tumbleweed/man1/pnmhisteq.1
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--upstream/opensuse-tumbleweed/man1/pnmhisteq.1221
1 files changed, 221 insertions, 0 deletions
diff --git a/upstream/opensuse-tumbleweed/man1/pnmhisteq.1 b/upstream/opensuse-tumbleweed/man1/pnmhisteq.1
new file mode 100644
index 00000000..86475a80
--- /dev/null
+++ b/upstream/opensuse-tumbleweed/man1/pnmhisteq.1
@@ -0,0 +1,221 @@
+\
+.\" This man page was generated by the Netpbm tool 'makeman' from HTML source.
+.\" Do not hand-hack it! If you have bug fixes or improvements, please find
+.\" the corresponding HTML page on the Netpbm website, generate a patch
+.\" against that, and send it to the Netpbm maintainer.
+.TH "Pnmhisteq User Manual" 0 "22 March 2015" "netpbm documentation"
+
+.SH NAME
+
+pnmhisteq - histogram equalize a PNM image
+
+.UN synopsis
+.SH SYNOPSIS
+
+\fBpnmhisteq\fP
+
+[\fB-gray\fP]
+
+[\fB-noblack\fP]
+[\fB-nowhite\fP]
+
+[\fB-rmap\fP \fIpgmfile\fP]
+
+[\fB-wmap\fP \fIpgmfile\fP]
+
+[\fB-verbose\fP]
+
+[\fIpnmfile\fP]
+
+
+.UN description
+.SH DESCRIPTION
+.PP
+This program is part of
+.BR "Netpbm" (1)\c
+\&.
+.PP
+\fBpnmhisteq\fP increases the contrast of a PGM or PPM image
+through the technique of "histogram equalization."[1]
+.PP
+\fBpnmhisteq\fP computes a histogram of the luminosity of the
+pixels in the image. It then calculates a mapping between each
+luminosity and a new luminosity such that it spreads out intensity
+levels around histogram peaks and compresses them at troughs. I.e.
+it moves pixels around in the histogram so as to make it flat. It
+applies that mapping to the input image to produce the output image.
+The effect of this is that the image has equal numbers of pixels at each
+possible intensity level, which means it uses the available levels of
+intensity more efficiently and thereby has more visible detail.
+.PP
+Mathematically, the luminosity mapping is this: Assume the pixels
+are sorted by luminosity into \fIB\fP buckets numbered from 0 (lowest
+luminosity) to \fIB\fP-1. \fIN[i]\fP is the number of pixels in
+bucket \fIi\fP. \fIT\fP is the total number of pixels (sum of
+\fIN[i]\fP over all \fIi\fP). \fIW\fP is the luminosity of white.
+.PP
+\fBpnmhisteq\fP replaces an input pixel whose luminosity falls into
+bucket \fIj\fP with one whose luminosity is:
+
+.nf
+
+ j
+ ---
+ \e
+ > (N[i] / T) * W
+ /
+ ---
+ i=0
+
+.fi
+.PP
+Considering a grayscale image for simplicity, this means that
+pixels in the most luminous bucket become white. Pixels in the 10th
+per centile of luminosity become 10% of white.
+.PP
+\fBpnmhisteq\fP maps a single luminosity in the input to a single
+luminosity in the output. That means if pixels A and B both have luminosity
+\&.2 in the input, and pixel A has luminosity .4 in the output, pixel B also has
+luminosity .4 in the output. And since the luminosities in the input are not
+continuous, the luminosities in the output aren't either and \fBpnmhisteq\fP
+doesn't meet the ideal of having exactly the same number of pixels of each
+luminosity in the output.
+.PP
+If you're processing a related set of images, for example frames of
+an animation, it's generally best to apply the same luminosity mapping
+to every frame, since otherwise you'll get distracting frame-to-frame
+changes in the brightness of objects. \fBpnmhisteq\fP's \fB-wmap\fP
+option allows you to save, as a PGM image, the luminosity map it
+computes from an image. The \fB-rmap\fP option causes \fBpnmisteq\fP
+to use such an image as its luminosity map.
+.PP
+So you can run \fBpnmhisteq\fP with \fB-wmap\fP on a composite you
+created with \fBpamcat\fP of the images you intend to process. Then, you can
+run \fBpnmisteq\fP with \fB-rmap\fP on each of the individual images, using
+the luminosity map you generated from the composite.
+.PP
+Use \fBpnmhistmap\fP to see the result. Run a color image through
+\fBppmtopgm\fP first so that you see a histogram of the luminosity instead of
+histograms of the three color components. It should generally show a flat
+histogram. But because of the quantization effects described above, you might
+see high bars interleaved with low bars, with the local average being flat.
+To see local averages, use the \fB-width\fP option of \fBpnmhistmap\fP.
+
+
+.UN options
+.SH OPTIONS
+.PP
+In addition to the options common to all programs based on libnetpbm
+(most notably \fB-quiet\fP, see
+.UR index.html#commonoptions
+ Common Options
+.UE
+\&), \fBpnmhisteq\fP recognizes the following
+command line options:
+.PP
+You can abbreviate any option to its shortest unique prefix.
+
+
+.TP
+\fB-gray\fP
+When processing a color image, only gray pixels (those with identical
+red, green, and blue values) are included in the histogram and
+modified in the output image. This is a special purpose option
+intended for images where the actual data are gray scale, with color
+annotations you don't want modified. Weather satellite images that
+show continent outlines in color are best processed using this option.
+The option has no effect when the input is a graymap.
+
+.TP
+\fB-noblack\fP
+Do not include black pixels in the equalization. The black pixels in the
+output are exactly the black pixels in the input and the number of black
+pixels does not affect the color of any other pixels.
+.sp
+Sometimes, black isn't as much a color as a background or annotation for
+the real colors, so you want to treat it specially this way. Think of a
+picture of stars, which is nearly all black, but with lots of stars of
+different brightness. You want to change the brightnesses of the stars to
+maximize contrast between them, but if you considered the blackness to be
+significant, all the stars would end up close to full white.
+.sp
+This option was new in Netpbm 10.70 (March 2015).
+
+.TP
+\fB-nowhite\fP
+.sp
+Same as \fB-noblack\fP, but for the white pixels.
+.sp
+This option was new in Netpbm 10.70 (March 2015).
+
+.TP
+\fB-rmap\fP \fImapfile\fP
+Process the image using the luminosity map specified by the PGM
+file \fImapfile\fP.
+
+The PGM image, usually created by an earlier run of \fBpnmhisteq\fP
+with the \fB-wmap\fP option, contains a single row with number of
+columns equal to the maxval (greatest intensity value) of the image
+plus one. Each pixel in the image is transformed by looking up its
+luminosity in the corresponding column in the map file (column number
+= luminosity) and changing it to the value given by that column.
+
+.TP
+\fB-wmap\fP \fImapfile\fP
+Creates a PGM file \fImapfile\fP, containing the luminosity map
+computed from the histogram of the input image. This map file can be
+read on subsequent runs of \fBpnmhisteq\fP with the \fB-rmap\fP
+option, allowing a group of images to be processed with an identical
+map.
+
+.TP
+\fB-verbose\fP
+Prints the histogram and luminosity map on Standard Error.
+
+
+
+.UN limitations
+.SH LIMITATIONS
+.PP
+Histogram equalization is effective for increasing the visible
+detail in scientific imagery and in some continuous-tone pictures. It
+is often too drastic, however, for scanned halftone images, where it
+does an excellent job of making halftone artifacts apparent. You
+might want to experiment with \fBpnmnorm\fP and \fBpnmgamma\fP for
+more subtle contrast enhancement.
+.PP
+The luminosity map file supplied by the \fB-rmap\fP option must
+have the same maxval as the input image. This is always the case when
+the map file was created by the \fB-wmap\fP option of
+\fBpnmhisteq\fP. If this restriction causes a problem, simply adjust
+the maxval of the map with \fBpamdepth\fP to agree with the input
+image.
+.PP
+If the input is a PBM file (on which histogram equalization is an
+identity operation), the only effect of passing the file through
+\fBpnmhisteq\fP will be the passage of time.
+
+.UN seealso
+.SH SEE ALSO
+.BR "pnmnorm" (1)\c
+\&,
+.BR "pamcat" (1)\c
+\&,
+.BR "pamdepth" (1)\c
+\&,
+.BR "pnmgamma" (1)\c
+\&,
+.BR "pnm" (5)\c
+\&,
+
+
+.TP
+[1]
+Russ, John C. The Image Processing Handbook. Boca Raton: CRC
+Press, 1992. Pages 105-110.
+.SH DOCUMENT SOURCE
+This manual page was generated by the Netpbm tool 'makeman' from HTML
+source. The master documentation is at
+.IP
+.B http://netpbm.sourceforge.net/doc/pnmhisteq.html
+.PP \ No newline at end of file