man pages for mogrify

ImageMagick Last change: 1 May 1994
NAME
     mogrify - transform an image or sequence of images

SYNOPSIS
     mogrify [ options ...] file [ [ options ...] file ...]

DESCRIPTION
     mogrify transforms an image or a sequence of images.  These
     transforms include image scaling, image rotation, color
     reduction, and others.  The transmogrified image overwrites
     the original image.

EXAMPLES
     To convert all the TIFF files in a particular directory to
     JPEG, use:

         mogrify -format jpeg *.tiff

     To scale an image of a cockatoo to exactly 640 pixels in
     width and 480 pixels in height, use:

         mogrify -geometry 640x480! cockatoo.miff

OPTIONS
     -antialias
          remove pixel aliasing.

     -blur x
          blur the image with a Gaussian operator of the given
          radius and standard deviation (sigma).

     -border x
          surround the image with a border of color.  See X(1)
          for details about the geometry specification.

     -bordercolor color
          the border color.

     -box color
          set the color of the annotation bounding box.  See
          -draw or for further details.

          See X(1) for details about the color specification.

     -cache threshold
          megabytes of memory available to the pixel cache.

          Image pixels are stored in memory until 80 megabytes of
          memory have been consumed.  Subsequent pixel operations
          are cached on disk.  Operations to memory are
          significantly faster but if your computer does not have
          a sufficient amount of free memory you may want to

          adjust this threshold value.

     -charcoal radius
          simulate a charcoal drawing.

     -colorize value
          colorize the image with the fill color.

          Specify the amount of colorization as a percentage.
          You can apply separate colorization values to the red,
          green, and blue channels of the image with a
          colorization value list delineated with slashes (e.g.
          0/0/50).

     -colors value
          preferred number of colors in the image.

          The actual number of colors in the image may be less
          than your request, but never more.  Note, this is a
          color reduction option.  Images with less unique colors
          than specified with this option will have any duplicate
          or unused colors removed.  Refer to quantize(9) for
          more details.

          If more than one image is specified on the command
          line, a single colormap is created and saved with each
          image.

          Note, options -colormap, -dither, -colorspace, and
          -treedepth affect the color reduction algorithm.

     -colorspace value
          the type of colorspace: GRAY, OHTA, RGB, Transparent,
          XYZ, YCbCr, YIQ, YPbPr, YUV, or CMYK.

          Color reduction, by default, takes place in the RGB
          color space.  Empirical evidence suggests that
          distances in color spaces such as YUV or YIQ correspond
          to perceptual color differences more closely than do
          distances in RGB space.  These color spaces may give
          better results when color reducing an image.  Refer to
          quantize(9) for more details.

          The Transparent color space behaves uniquely in that it
          preserves the matte channel of the image if it exists.

          The -colors or -monochrome option is required for this
          option to take effect.

     -comment string
          annotate an image with a comment.

          Use this option to assign a specific comment to the
          image.  You can include the image filename, type,
          width, height, or other image attributes by embedding
          special format characters:

              %b   file size
              %d   directory
              %e   filename extention
              %f   filename
              %h   height
              %i   input filename
              %l   label
              %m   magick
              %n   number of scenes
              %o   output filename
              %p   page number
              %q   quantum depth
              %s   scene number
              %t   top of filename
              %u   unique temporary filename
              %w   width
              %x   x resolution
              %y   y resolution
              \n   newline
              \r   carriage return

          For example,

               -comment "%m:%f %wx%h"

          produces an image comment of MIFF:bird.miff 512x480 for
          an image titled bird.miff and whose width is 512 and
          height is 480.

          If the first character of string is @, the image
          comment is read from a file titled by the remaining
          characters in the string.

     -compress type
          the type of image compression: None, BZip, Fax, Group4,
          JPEG, LZW, RunlengthEncoded, or Zip.

          Specify +compress to store the binary image in an
          uncompressed format.  The default is the compression
          type of the specified image file.

     -contrast
          enhance or reduce the image contrast.

          This option enhances the intensity differences between
          the lighter and darker elements of the image.  Use
          -contrast to enhance the image or +contrast to reduce

          the image contrast.

     -crop x{+-}{+-}{%}
          preferred size and location of the cropped image.  See
          X(1) for details about the geometry specification.

          To specify a percentage width or height instead, append
          %.  For example to crop the image by ten percent on all
          sides of the image, use -crop 10%.

          Use cropping to apply image processing options, or
          transmogrify, only a particular area of an image.

          Omit the x and y offset to generate one or more
          subimages of a uniform size.

          Use cropping to crop a particular area of an image.
          Use -crop 0x0 to trim edges that are the background
          color.  Add an x and y offset to leave a portion of the
          trimmed edges with the image.

     -cycle amount
          displace image colormap by amount.

          Amount defines the number of positions each colormap
          entry is shifted.

     -delay <1/100ths of a second>
          display the next image after pausing.

          This option is useful for regulating the animation of a
          sequence of GIF images within Netscape.  1/100ths of a
          second must expire before the redisplay of the image
          sequence.  The default is no delay between each showing
          of the image sequence.  The maximum delay is 65535.

     -density x
          vertical and horizontal resolution in pixels of the
          image.

          This option specifies an image density when decoding a
          Postscript or Portable Document page.  The default is
          72 pixels per inch in the horizontal and vertical
          direction.  This option is used in concert with -page.

     -depth value
          depth of the image.  This is the number of bits in a
          pixel.  The only acceptable values are 8 or 16.

     -despeckle
          reduce the speckles within an image.

     -display host:display[.screen]
          specifies the X server to contact; see X(1).

     -dispose method
          GIF disposal method.

          Here are the valid methods:

               0     No disposal specified.
               1     Do not dispose between frames.
               2     Overwrite frame with background color from header.
               3     Overwrite with previous frame.

     -dither
          apply Floyd/Steinberg error diffusion to the image.

          The basic strategy of dithering is to trade intensity
          resolution for spatial resolution by averaging the
          intensities of several neighboring pixels.  Images
          which suffer from severe contouring when reducing
          colors can be improved with this option.

          The -colors or -monochrome option is required for this
          option to take effect.

          Use +dither to render Postscript without text or
          graphic aliasing.

     -draw string
          annotate an image with one or more graphic primitives.

          Use this option to annotate an image with one or more
          graphic primitives.  The primitives include

               point
               line
               rectangle
               roundRectangle
               arc
               ellipse
               circle
               polyline
               polygon
               bezier
               path
               color
               matte
               text
               image

          Point, line, color, matte, text, and image each require
          a single coordinate.  Line requires a start and end

          coordinate, while rectangle expects an upper left and
          lower right coordinate.  Circle has a center coordinate
          and a coordinate on the outer edge.  Use Arc to
          circumscribe an arc within a rectangle.  Arcs require a
          start and end point as well as the degree of rotation
          (e.g. 130,30 200,100 45,90). Use Ellipse to draw a
          partial ellipse centered at the given point, specified
          width and height, and start and end of arc in degrees
          (e.g. 100,100 100,150 0,360).  Finally, polyline and
          polygon require three or more coordinates to define its
          boundaries.  Coordinates are integers separated by an
          optional comma.  For example, to define a circle
          centered at 100,100 that extends to 150,150 use:

               -draw 'circle 100,100 150,150'

          Paths represent an outline of an object which is
          defined in terms of moveto (set a new current point),
          lineto (draw a straight line), curveto (draw a curve
          using a cubic bezier), arc (elliptical or circular arc)
          and closepath (close the current shape by drawing a
          line to the last moveto) elements. Compound paths
          (i.e., a path with subpaths, each consisting of a
          single moveto followed by one or more line or curve
          operations) are possible to allow effects such as
          "donut holes" in objects.

          Use color to change the color of a pixel.  Follow the
          pixel coordinate with a method:

               point
               replace
               floodfill
               filltoborder
               reset

          Consider the target pixel as that specified by your
          coordinate.  The point method recolors the target
          pixel.  The replace method recolors any pixel that
          matches the color of the target pixel.  Floodfill
          recolors any pixel that matches the color of the target
          pixel and is a neighbor,  whereas filltoborder recolors
          any neighbor pixel that is not the border color.
          Finally, reset recolors all pixels.

          Use matte to the change the pixel matte value to
          transparent.  Follow the pixel coordinate with a method
          (see the color primitive for a description of methods).
          The point method changes the matte value of the target
          pixel.  The replace method changes the matte value of
          any pixel that matches the color of the target pixel.
          Floodfill changes the matte value of any pixel that

          matches the color of the target pixel and is a
          neighbor, whereas filltoborder changes the matte value
          of any neighbor pixel that is not the border color (-
          bordercolor). Finally reset changes the matte value of
          all pixels.

          Use text to annotate an image with text.  Follow the
          text coordinates with a string.  If the string has
          embedded spaces, enclose it in double quotes.
          Optionally you can include the image filename, type,
          width, height, or other image attributes by embedding
          special format characters.  See -comment for details.

          For example,

               -draw 'text 100,100 "%m:%f %wx%h"'

          annotates the image with MIFF:bird.miff 512x480 for an
          image titled bird.miff and whose width is 512 and
          height is 480.  To generate a Unicode character
          (TrueType fonts only), embed the code as an escaped hex
          string (e.g. \0x30a3).

          Use image to composite an image with another image.
          Follow the image coordinates with the image size and
          filename:

               -draw 'image 100,100 225,225 image.jpg'

          If the first character of string is @, the text is read
          from a file titled by the remaining characters in the
          string.

          You can set the primitive color, font color, and font
          bounding box color with -fill, -font, and -box
          respectively.  Options are processed in command line
          order so be sure to use -fill before the -draw option.

     -edge 
          enhance the edges of the image with a convolution
          filter of the given radius.

     -emboss x
          emboss the image with a convolution kernel of the given
          radius and standard deviation (sigma).

     -enhance
          apply a digital filter to enhance a noisy image.

     -equalize
          perform histogram equalization to the image.

     -fill color
          color to use when filling a graphic primitive.  See
          -draw for further details.

     -filter value
          use this type of filter when resizing an image.

          Use this option to affect the resizing operation of an
          image (see -geometry).  Choose from these filters:

               Point
               Box
               Triangle
               Hermite
               Hanning
               Hamming
               Blackman
               Gaussian
               Quadratic
               Cubic
               Catrom
               Mitchell
               Lanczos
               Bessel
               Sinc

          The default filter is Lanczos.

     -flip
          create a "mirror image" by reflecting the image
          scanlines in the vertical direction.

     -flop
          create a "mirror image" by reflecting the image
          scanlines in the horizontal direction.

     -format type
          the image format type.

          This option will convert any image to the image format
          you specify.  See convert(1) for a list of image format
          types supported by ImageMagick.

          By default the file is written to its original name.
          However, if the filename extension matches a supported
          format, the extension is replaced with the image format
          type specified with -format.  For example, if you
          specify tiff as the format type and the input image
          filename is image.gif, the output image filename
          becomes image.tiff.

     -font name
          use this font when annotating the image with text.

          If the font is a fully qualified X server font name,
          the font is obtained from an X server (e.g. -*-
          helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-*).  To use
          a TrueType font, precede the TrueType filename with a @
          (e.g.  @times.ttf).  Otherwise, specify a Postscript
          font (e.g. helvetica).

     -
          frame x++
          surround the image with an ornamental border.  See X(1)
          for details about the geometry specification.

          The color of the border is specified with the
          -mattecolor command line option.

     -fuzz distance
          colors within this distance are considered equal.

          A number of algorithms search for a target color.  By
          default the color must be exact.  Use this option to
          match colors that are close to the target color in RGB
          space.  For example, if you want to automatically trim
          the edges of an image with -crop 0x0 but the image was
          scanned.  The target background color may differ by a
          small amount.  This option can account for these
          differences.

     -gamma value
          level of gamma correction.

          The same color image displayed on two different
          workstations may look different due to differences in
          the display monitor.  Use gamma correction to adjust
          for this color difference.  Reasonable values extend
          from 0.8 to 2.3.

          You can apply separate gamma values to the red, green,
          and blue channels of the image with a gamma value list
          delineated with slashes (i.e. 1.7/2.3/1.2).

          Use +gamma to set the image gamma level without
          actually adjusting the image pixels.  This option is
          useful if the image is of a known gamma but not set as
          an image attribute (e.g. PNG images).

     -gaussian x
          blur the image with a Gaussian operator of the given
          width and standard deviation (sigma).

offset>{%}{!}{<}{>}
     -geometry x{+-}{+-} to change the dimensions of the image only if its
          size exceeds the geometry specification.  < resizes the
          image only if its dimensions is less than the geometry
          specification.  For example, if you specify 640x480>
          and the image size is 512x512, the image size does not
          change.  However, if the image is 1024x1024, it is
          resized to 640x480.

     -gravity type
          direction text gravitates to when annotating the image:
          NorthWest, North, NorthEast, West, Center, East,
          SouthWest, South, SouthEast.  See X(1) for details
          about the gravity specification.

          The direction you choose specifies where to position
          the text when annotating the image.  For example Center
          gravity forces the text to be centered within the
          image.  By default, the text gravity is NorthWest.

     -implode factor
          implode image pixels about the center. Specify factor
          as the percent implosion (0 - 99.9 %) or explosion (-
          99.9 - 0)

     -interlace type
          the type of interlacing scheme: None, Line, Plane, or
          Partition.  The default is None.

          This option is used to specify the type of interlacing
          scheme for raw image formats such as RGB or YUV.  No

          means do not interlace (RGBRGBRGBRGBRGBRGB...), Line
          uses scanline interlacing
          (RRR...GGG...BBB...RRR...GGG...BBB...), and Plane uses
          plane interlacing (RRRRRR...GGGGGG...BBBBBB...).
          Partition is like plane except the different planes are
          saved to individual files (e.g.  image.R, image.G, and
          image.B).

          Use Line, or Plane to create an interlaced GIF or
          progressive JPEG image.  -label name assign a label to
          an image.

          Use this option to assign a specific label to the
          image.  Optionally you can include the image filename,
          type, width, height, or scene number in the label by
          embedding special format characters.  Optionally you
          can include the image filename, type, width, height, or
          other image attributes by embedding special format
          characters.  See -comment for details.

          For example,

               -label "%m:%f %wx%h"

          produces an image label of MIFF:bird.miff 512x480 for
          an image titled bird.miff and whose width is 512 and
          height is 480.

          If the first character of string is @, the image label
          is read from a file titled by the remaining characters
          in the string.

          When converting to Postscript, use this option to
          specify a header string to print above the image.
          Specify the label font with -font.

     -layer type
          the type of layer: Red, Green, Blue, or Matte.

          Use this option to extract a particular layer from the
          image.  Matte, for example, is useful for extracting
          the opacity values from an image.

     -linewidth value
          set the width of a line.  See -draw for further
          details.

     -loop iterations
          add Netscape loop extension to your GIF animation.

          A value other than zero forces the animation to repeat
          itself up to iterations times.

     -map filename
          choose a particular set of colors from this image.

          By default, color reduction chooses an optimal set of
          colors that best represent the original image.
          Alternatively, you can choose a particular set of
          colors from an image file with this option.    Use +map
          to reduce all images in an image sequence to a single
          optimal set of colors that best represent all the
          images.

     -matte
          store matte channel if the image has one otherwise
          create an opaque one.

     -median radius
          apply a median filter to the image.

     -modulate value
          vary the brightness, saturation, and hue of an image.

          Specify the percent change in brightness, the color
          saturation, and the hue separated by commas.  For
          example, to increase the color brightness by 20% and
          decrease the color saturation by 10% and leave the hue
          unchanged, use: -modulate 120,90.

     -monochrome
          transform the image to black and white.

     -negate
          replace every pixel with its complementary color (white
          becomes black, yellow becomes blue, etc.).

          The red, green, and blue intensities of an image are
          negated.    Use +negate to only negate the grayscale
          pixels of the image.

     -noise value
          add or reduce noise in an image.

          The principal function of noise peak elimination filter
          is to smooth the objects within an image without losing
          edge information and without creating undesired
          structures.  The central idea of the algorithm is to
          replace a pixel with its next neighbor in value within
          a pixel window, if this pixel has been found to be
          noise.  A pixel is defined as noise if and only if this
          pixel is a maximum or minimum within the pixel window.
          Use radius to specify the width of the neighborhood.

          Use +noise followed by a noise type to add noise to an

          image.  Choose from these noise types:

              Uniform
              Gaussian
              Multiplicative
              Impulse
              Laplacian
              Poisson

     -normalize
          transform image to span the full range of color values.

          This is a contrast enhancement technique.

     -opaque color
          change this color to the fill color within the image.
          See -fill for more details.

     -page x{+-}{+-
          }{%}{!}{<}{>}
          preferred size and location of an image canvas.

          Use this option to specify the dimensions of the
          Postscript page in dots per inch or a TEXT page in
          pixels.  The choices for a Postscript page are:

                 11x17         792  1224
                 Ledger       1224   792
                 Legal         612  1008
                 Letter        612   792
                 LetterSmall   612   792
                 ArchE        2592  3456
                 ArchD        1728  2592
                 ArchC        1296  1728
                 ArchB         864  1296
                 ArchA         648   864
                 A0           2380  3368
                 A1           1684  2380
                 A2           1190  1684
                 A3            842  1190
                 A4            595   842
                 A4Small       595   842
                 A5            421   595
                 A6            297   421
                 A7            210   297
                 A8            148   210
                 A9            105   148
                 A10            74   105
                 B0           2836  4008
                 B1           2004  2836
                 B2           1418  2004
                 B3           1002  1418

                 B4            709  1002
                 B5            501   709
                 C0           2600  3677
                 C1           1837  2600
                 C2           1298  1837
                 C3            918  1298
                 C4            649   918
                 C5            459   649
                 C6            323   459
                 Flsa          612   936
                 Flse          612   936
                 HalfLetter    396   612

          For convenience you can specify the page size by media
          (e.g.  A4, Ledger, etc.).  Otherwise, -page behaves
          much like -geometry (e.g. -page letter+43+43>).

          To position a GIF image, use -page {+-}{+-} (e.g. -page +100+200).

          For a Postscript page, the image is sized as in
          -geometry and positioned relative to the lower left
          hand corner of the page by {+-}{+-}.  Use -page 612x792>, for example, to center
          the image within the page.  If the image size exceeds
          the Postscript page, it is reduced to fit the page.

          The default page dimensions for a TEXT image is
          612x792.

          This option is used in concert with -density.

     -paint radius
          simulate an oil painting.

          Each pixel is replaced by the most frequent color in a
          circular neighborhood whose width is specified with
          radius.

     -pointsize value
          pointsize of the Postscript font.

     -quality value
          JPEG/MIFF/PNG compression level.

          For the JPEG image format, quality is 0 (worst) to 100
          (best).  The default quality is 75.

          Quality for the MIFF and PNG image format sets the
          amount of image compression (quality / 10) and filter-
          type (quality % 10).  Compression quality values range
          from 0 (worst) to 100 (best).  If filter-type is 4 or

          less, the specified filter-type is used for all
          scanlines:

              0: none
              1: sub
              2: up
              3: average
              4: Paeth

          If filter-type is 5, adaptive filtering is used when
          quality is greater than 50 and the image does not have
          a color map, otherwise no filtering is used.

          If filter-type is 6 or more, adaptive filtering with
          minimum-sum-of-absolute-values is used.

          The default is quality is 75.  Which means nearly the
          best compression with adaptive filtering.

          For further information, see the PNG specification (RFC
          2083), .

     -raise x
          lighten or darken image edges to create a 3-D effect.
          See X(1) for details about the geometry specification.

          Use -raise to create a raised effect, otherwise use
          +raise.

     -region x{+-}{+-}
          apply options to a portion of the image.

          By default, any command line options are applied to the
          entire image.  Use -region to restrict operations to a
          particular area of the image.

     -roll {+-}{+-}
          roll an image vertically or horizontally.  See X(1) for
          details about the geometry specification.

          A negative x offset rolls the image left-to-right.  A
          negative y offset rolls the image top-to-bottom.

     -rotate degrees{<}{>}
          apply Paeth image rotation to the image.

          Use > to rotate the image only if its width exceeds the
          height.  < rotates the image only if its width is less
          than the height.  For example, if you specify -90> and
          the image size is 480x640, the image is not rotated by
          the specified angle.  However, if the image is 640x480,
          it is rotated by -90 degrees.

          Empty triangles left over from rotating the image are
          filled with the color defined as bordercolor (class
          borderColor).

     -sample geometry
          scale image with pixel sampling.

     -scene value
          image scene number.

     -seed value
          pseudo-random number generator seed value.

     -segment x
          segment an image by analyzing the histograms of the
          color components and identifying units that are
          homogeneous with the fuzzy c-means technique.

          Specify cluster threshold as the number of pixels in
          each cluster must exceed the the cluster threshold to
          be considered valid.  Smoothing threshold eliminates
          noise in the second derivative of the histogram.  As
          the value is increased, you can expect a smoother
          second derivative.  The default is 1.5.  See IMAGE
          SEGMENTATION for details.

     -shade x
          shade the image using a distant light source.

          Specify azimuth and elevation as the position of the
          light source.  Use +shade to return the shading results
          as a grayscale image.

     -sharpen x
          sharpen the image with a Laplacian operator of the
          given radius and standard deviation (sigma).

     -shear x
          shear the image along the X or Y axis by a positive or
          negative shear angle.

          Shearing slides one edge of an image along the X or Y
          axis, creating a parallelogram.  An X direction shear
          slides an edge along the X axis, while a Y direction
          shear slides an edge along the Y axis.  The amount of
          the shear is controlled by a shear angle.  For X
          direction shears, x degrees> is measured relative to
          the Y axis, and similarly, for Y direction shears y
          degrees is measured relative to the X axis.

          Empty triangles left over from shearing the image are
          filled with the color defined as bordercolor (class

          borderColor).  See X(1) for details.

     -size x+
          width and height of the image.

          Use this option to specify the width and height of raw
          images whose dimensions are unknown such as GRAY, RGB,
          or CMYK.  In addition to width and height, use -size to
          skip any header information in the image or tell the
          number of colors in a MAP image file, (e.g. -size
          640x512+256).

          For Photo CD images, choose from these sizes:

                192x128
                384x256
                768x512
               1536x1024
               3072x2048

          Finally, use this option to choose a particular
          resolution layer of a JBIG or JPEG image (e.g. -size
          1024x768).

     -solarize threshold
          negate all pixels above the threshold level.    Specify
          factor as the percent threshold of the intensity (0 -
          99.9%).

          This option produces a solarization effect seen when
          exposing a photographic film to light during the
          development process.

     -spread amount
          displace image pixels by a random amount.

          Amount defines the size of the neighborhood around each
          pixel to choose a candidate pixel to swap.

     -stroke color
          color to use when stroking a graphic primitive.  See
          -draw for further details.

     -swirl degrees
          swirl image pixels about the center.

          Degrees defines the tightness of the swirl.

     -texture filename
          name of texture to tile onto the image background.

     -threshold value

          threshold the image.

          Create a bi-level image such that any pixel intensity
          that is equal or exceeds the threshold is reassigned
          the maximum intensity otherwise the minimum intensity.

     -tile filename
          tile image when filling a graphic primitive.

     -transparency color
          make this color transparent within the image.

     -treedepth value
          Normally, this integer value is zero or one.  A zero or
          one tells mogrify to choose a optimal tree depth for
          the color reduction algorithm.

          An optimal depth generally allows the best
          representation of the source image with the fastest
          computational speed and the least amount of memory.
          However, the default depth is inappropriate for some
          images.  To assure the best representation, try values
          between 2 and 8 for this parameter.  Refer to
          quantize(9) for more details.

          The -colors or -monochrome option is required for this
          option to take effect.

     -units type
          the type of image resolution: Undefined, PixelsPerInch,
          or PixelsPerCentimeter.  The default is Undefined.

     -verbose
          print detailed information about the image.

          This information is printed: image scene number;  image
          name;  image size; the image class (DirectClass or
          PseudoClass); the total number of unique colors (if
          known);  and the number of seconds to read and
          transform the image.  Refer to miff(5) for a
          description of the image class.

          If -colors is also specified, the total unique colors
          in the image and color reduction error values are
          printed.  Refer to quantize(9) for a description of
          these values.

     -view string
          FlashPix viewing parameters.

     -wave x
          alter an image along a sine wave.

          Specify amplitude and wavelength to effect the
          characteristics of the wave.

     Options are processed in command line order.  Any option you
     specify on the command line remains in effect until it is
     explicitly changed by specifying the option again with a
     different effect.  For example, to mogrify two images, the
     first with 32 colors and the second with only 16 colors,
     use:

          mogrify -colors 32 cockatoo.miff -colors 16 macaw.miff

     By default, the image format is determined by its magic
     number. To specify a particular image format, precede the
     filename with an image format name and a colon (i.e.
     ps:image) or specify the image type as the filename suffix
     (i.e. image.ps).  See convert(1) for a list of valid image
     formats.

     Specify file as - for standard input and output.  If file
     has the extension .Z or .gz, the file is uncompressed with
     uncompress or gunzip respectively and subsequently
     compressed using with compress or gzip.  Finally, precede
     the image file name with | to pipe to or from a system
     command.

     Use an optional index enclosed in brackets after a file name
     to specify a desired subimage of a multi-resolution image
     format like Photo CD (e.g. img0001.pcd[4]) or a range for
     MPEG images (e.g. video.mpg[50-75]).  A subimage
     specification can be disjoint (e.g. image.tiff[2,7,4]).  For
     raw images, specify a subimage with a geometry (e.g.  -size
     640x512 image.rgb[320x256+50+50]).

     Prepend an at sign (@) to a filename to read a list of image
     filenames from that file.  This is convenient in the event
     you have too many image filenames to fit on the command
     line.

IMAGE SEGMENTATION
     Use -segment to segment an image by analyzing the histograms
     of the color components and identifying units that are
     homogeneous with the fuzzy c-means technique.  The scale-
     space filter analyzes the histograms of the three color
     components of the image and identifies a set of classes.
     The extents of each class is used to coarsely segment the
     image with thresholding.  The color associated with each
     class is determined by the mean color of all pixels within
     the extents of a particular class.  Finally, any
     unclassified pixels are assigned to the closest class with
     the fuzzy c-means technique.

     The fuzzy c-Means algorithm can be summarized as follows:

          o Build a histogram, one for each color component of
          the image.

          o For each histogram, successively apply the scale-
          space filter and build an interval tree of zero
          crossings in the second derivative at each scale.
          Analyze this scale-space ``fingerprint'' to determine
          which peaks or valleys in the histogram are most
          predominant.

          o The fingerprint defines intervals on the axis of the
          histogram.  Each interval contains either a minima or a
          maxima in the original signal.  If each color component
          lies within the maxima interval, that pixel is
          considered ``classified'' and is assigned an unique
          class number.

          o Any pixel that fails to be classified in the above
          thresholding pass is classified using the fuzzy c-Means
          technique.  It is assigned to one of the classes
          discovered in the histogram analysis phase.

     The fuzzy c-Means technique attempts to cluster a pixel by
     finding the local minima of the generalized within group sum
     of squared error objective function.  A pixel is assigned to
     the closest class of which the fuzzy membership has a
     maximum value.

     For additional information see

          Young Won Lim, Sang Uk Lee, "On The Color Image
          Segmentation Algorithm Based on the Thresholding and
          the Fuzzy c-Means Techniques", Pattern Recognition,
          Volume 23, Number 9, pages 935-952, 1990.

SEE ALSO
     display(1), animate(1), import(1), montage(1), convert(1),
     combine(1), xtp(1)

COPYRIGHT
     Copyright (C) 2000 ImageMagick Studio, a non-profit
     organization dedicated to making software imaging solutions
     freely available.

     Permission is hereby granted, free of charge, to any person
     obtaining a copy of this software and associated
     documentation files ("ImageMagick"), to deal in ImageMagick
     without restriction, including without limitation the rights
     to use, copy, modify, merge, publish, distribute,
     sublicense, and/or sell copies of ImageMagick, and to permit

     persons to whom the ImageMagick is furnished to do so,
     subject to the following conditions:

     The above copyright notice and this permission notice shall
     be included in all copies or substantial portions of
     ImageMagick.

     The software is provided "as is", without warranty of any
     kind, express or implied, including but not limited to the
     warranties of merchantability, fitness for a particular
     purpose and noninfringement.  In no event shall ImageMagick
     Studio be liable for any claim, damages or other liability,
     whether in an action of contract, tort or otherwise, arising
     from, out of or in connection with ImageMagick or the use or
     other dealings in ImageMagick.

     Except as contained in this notice, the name of the
     ImageMagick Studio shall not be used in advertising or
     otherwise to promote the sale, use or other dealings in
     ImageMagick without prior written authorization from the
     ImageMagick Studio.

ACKNOWLEDGEMENTS
     Michael Halle, Spatial Imaging Group at MIT, for the initial
     implementation of Alan Paeth's image rotation algorithm.

     David Pensak, E. I. du Pont de Nemours and Company, for
     providing a computing environment that made this program
     possible.

     Paul Raveling, USC Information Sciences Institute, for the
     original idea of using space subdivision for the color
     reduction algorithm.

AUTHORS
     John Cristy, ImageMagick Studio