Ppmhist User Manual(1) General Commands Manual Ppmhist User Manual(1)
NAME
ppmhist - print a histogram of the colors in a PPM image
SYNOPSIS
ppmhist [-map | -nomap] [-hexcolor | -float | -colorname] [-noheader]
[-sort={frequency,rgb}] [-forensic] [ppmfile]
DESCRIPTION
This program is part of Netpbm(1).
ppmhist reads a PPM image as input and generates a histogram of the col-
ors in the image, i.e. a list of all the colors and how many pixels of
each color are in the image.
Output Format
The output is in one of two basic formats: a report for humans and a
PPM image for use by programs. The PPM image is actually quite readable
by humans too.
Human Report
You get this format by specifying (or defaulting to) the -nomap option.
The format is one line for each color in the input image.
By default, there are two lines of column header and a summary at the
top. Use the -noheader option to suppress those lines.
The summary tells you whether black or white are present and how many
shades of gray and color are present. The summary was new in Netpbm
10.82 (March 2018).
In each line, ppmhist identifies the color by red, green, and blue com-
ponents. By default, it lists each of these in decimal, using the exact
values that are in the PPM input. So if the image has a maxval of 255,
the numbers in the listing range from 0 to 255. With the -hexcolor op-
tion, you can change these numbers to hexadecimal. With the -float op-
tion, the numbers are fractional, adjusted to a maxval of 1.
Each line lists the luminosity of the color. It is in decimal on the
same scale as the rgb values (see above).
Each line lists the number of pixels in the image that have the color.
This is in decimal.
PPM Output
You get this format with the -map option.
The output file is a genuine PPM image, but it is PPM Plain format and
contains comments so that it is not a lot different from the human re-
port described above.
As a PPM image, it can be useful as input to other programs that need
some kind of palette. The image is a single row with one column for
each distinct color in the image.
The function of PPM output is essentially the same as the output of pnm-
colormap all. ppmhist is much older than pnmcolormap.
OPTIONS
In addition to the options common to all programs based on libnetpbm
(most notably -quiet, see ]8;;index.html#commonoptions\ Common Options]8;;\ ), ppmhist recognizes the fol-
lowing command line options:
-sort={frequency,rgb}
The -sort option determines the order in which the colors are
listed in the output. rgb means to sort them first by the inten-
sity of the red component of the color, then of the green, then
of the blue, with the least intense first. frequency means to
list them in order of how many pixels in the input image have the
color, with the most represented colors first. Among colors with
the same frequency, the order is the same as with rgb.
The default is frequency.
Before Netpbm 10.88 (September 2019), with -sort=frequency, the
order of colors that have the same frequency is arbitrary.
-hexcolor
Print the color components in hexadecimal. See ]8;;#output\output format]8;;\ .
You may not specify this option along with -float or map.
-float Print the color components and the luminosity as floating point
numbers in the range [0,1]. See ]8;;#output\output format]8;;\ .
You may not specify this option along with -hexcolor or map.
This option was added in Netpbm 10.19 (November 2003).
-map Generates a PPM file of the colormap for the image, with the
color histogram as comments. See ]8;;#output\output format]8;;\ .
You may not specify this option along with -float or hexcolor.
-nomap Generates the histogram for human reading. This is the default.
-colorname
Add the color name to the output. This is the name from the ]8;;libppm.html#dictionary\sys-
tem color dictionary]8;;\ . If the exact color is not in the color
dictionary, it is an asterisk followed by the name of the closest
color that is in the dictionary. If you don't have a system
color dictionary, the program fails.
This option was added in Netpbm 10.10 (October 2002).
-noheader
Do not print the column headings.
-forensic
With this option, ppmhist works on images that contain invalid
sample values. Normally, like most Netpbm programs, ppmhist
fails if it encounters a sample value greater than the maxval
that the image declares. The presence of such a value means the
image is invalid, so the pixels have no meaning. But with
-forensic, ppmhist produces a histogram of the actual sample val-
ues without regard to maxval. It issues messages summarizing the
invalid pixels if there are any.
One use for this is to diagnose the problem that caused the in-
valid Netpbm image to exist.
There is a small exception to the ability of ppmhist to process
invalid pixels even with -forensic: it can never process a sample
value greater than 65535. Note that in the rarely used Plain PPM
format, it is possible for a number greater than that to appear
where a sample value belongs.
This option was new in Netpbm 10.66 (March 2014). But Netpbm
older than 10.66 does not properly reject invalid sample values,
so the effect is very similar to -forensic.
SEE ALSO
ppm(1), pgmhist(1), pnmcolormap(1), pnmhistmap(1), ppmchange(1)
AUTHOR
Copyright (C) 1989 by Jef Poskanzer.
DOCUMENT SOURCE
This manual page was generated by the Netpbm tool 'makeman' from HTML
source. The master documentation is at
http://netpbm.sourceforge.net/doc/ppmhist.html
netpbm documentation 24 August 2019 Ppmhist User Manual(1)
Generated by dwww version 1.16 on Tue Dec 16 04:11:54 CET 2025.