dwww Home | Manual pages | Find package

Pambackgro...User Manual(1) General Commands Manual Pambackgro...User Manual(1)

NAME
       pambackground - create a mask of the background area of an image

SYNOPSIS
       pambackground

       [netpbmfile]

       [-verbose]

       Minimum  unique  abbreviations  of  options are acceptable.  You may use
       double hyphens instead of single hyphen to denote options.  You may  use
       white  space in place of the equals sign to separate an option name from
       its value.

DESCRIPTION
       This program is part of Netpbm(1).

       pambackground reads a PNM or PAM image as input.  It generates as output
       a PAM image that identifies the background area of the image (a mask).

       To identify the background, pambackground assumes the image is  a  fore-
       ground  image,  smaller than the total image size, placed over a single-
       color background.  It assumes that foreground image is solid -- it  does
       not  have  holes  through  which the background can be seen.  So in spe-
       cific, pambackground first identifies the background color,  then  finds
       all  contiguous pixels of that color in regions touching any edge of the
       image.  Think of it as starting at each of the four edges and moving in-
       ward and spreading out as far as possible until it hits  pixels  of  an-
       other color (the foreground image).

       pambackground  identifies the background color as follows: If any 3 cor-
       ners of the image are the same color, that's the background  color.   If
       not, but 2 corners are the same color, the background color is the color
       of  a  pair  of identically colored corners in this priority order: top,
       right, left, bottom.  If no two corners have the same color,  the  back-
       ground color is the color of the upper left corner.

       In a typical photograph, the area that you would consider the background
       is many shades of a color, so to pambackground it is multiple colors and
       pambackground  will not meaningfully identify the background of your im-
       age.  To use pambackground in this case,  you  might  use  ppmchange  to
       change  all  similar  colors to a single one first.  For example, if the
       photograph is a building against a blue sky, where nothing remotely sky-
       blue appears in the building, you could use ppmchange to change all pix-
       els within 20% of "SkyBlue" to SkyBlue, then run pambackground on it.

       You might even extract the argument for  ppmchange  from  the  image  in
       question,  using  pamgetcolor.   In  the  foregoing example, we knew the
       background was approximately SkyBlue, but if we didn't we could just get
       the color of the top left pixel, in a form suitable for the color  argu-
       ments of ppmchange like this:

           $ color=$(pamgetcolor 0,0 -infile=/tmp/bodyskl|cut --fields=2 -delim=' ')

       A  more  convenient means of dealing with a multi-shade background is to
       use pnmquant to produce a version of the image with a very small  number
       of colors.  The background would likely then be all one color.

       If  the  pnmquant  and ppmchange methods above do not adequately distin-
       guish foreground colors from background colors, you can try a more elab-
       orate method using pnmremap.  If you can manually create a palette  with
       one color to which all the background pixels are similar, and other col-
       ors  to which the foreground pixels are similar, you can use it as input
       to pnmremap to create a smarter version of what you  get  with  the  pn-
       mquant  or  ppmchange  methods,  so that pambackground is more likely to
       separate background from foreground as your eye does.

       The PAM that pambackground creates has a single plane, with a maxval  of
       1.   The  sample value 1 means background; 0 means foreground.  There is
       no tuple type.  Some older programs (but none that are part  of  Netpbm)
       don't know what a PAM is and expect a mask to be in the form of a PGM or
       PBM  image.  To convert pambackground's output to PBM, use pamtopnm -as-
       sume.  To convert to PGM, use pgmtopgm.

       netpbmfile is the file specification of the input file, or - to indicate
       Standard Input.  The default is Standard Input.

       A common use for a background mask is with pamcomp.  You  could  replace
       the entire background (or foreground) of your image with something else.

       Another  common  use is to make an image with the background transparent
       (in some image format that has a concept of transparency) so that  image
       can  be overlaid onto another image later.  Netpbm's converters to image
       formats that have transparency (e.g. PNG) let you use the mask that pam-
       background generates to identify the transparent areas for  the  output.
       You can create a PAM image with transparency with pamstack.

       To simply make a mask of all the areas of a specified color, use ppmcol-
       ormask.   If  you have a unique background color (one that doesn't occur
       in the foreground) and know what it is, this  can  create  a  background
       mask  in  cases  that  pambackground cannot: where there are see-through
       holes in the foreground image.

OPTIONS
       In addition to the options common to all  programs  based  on  libnetpbm
       (most  notably  -quiet,  see ]8;;index.html#commonoptions\ Common Options]8;;\ ), pambackground recognizes
       the following command line option:

       -verbose
              Tell interesting facts about the process.

EXAMPLES
           $ pambackground test.ppm | pnminvert >/tmp/bgmask.pgm
           $ pamcomp -alpha=bgmask.pgm test.ppm wallpaper.ppm >output.ppm

           $ pnmquant 5 test.pgm | pambackground test.ppm >/tmp/bgmask.pam

SEE ALSO
       ppmcolormask(1),  pamcomp(1),  ppmchange(1),  pnmquant(1),  pnmremap(1),
       pamtopnm(1),   pgmtopgm(1),  pamstack(1),  pamgetcolor(1),  pbmmaskd(1),
       pnm(1), pam(1),

HISTORY
       pambackground was new in Netpbm 10.37 (December 2006).

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/pambackground.html

netpbm documentation            24 November 2014    Pambackgro...User Manual(1)

Generated by dwww version 1.16 on Tue Dec 16 05:02:56 CET 2025.