# mmsubm
Subtraction of two images, with saturation.

## Synopsis

y = mmsubm( f1, f2 )

Implemented in Python.

### Input

f1 | Image Unsigned gray-scale (uint8 or uint16), signed (int32) or binary image.
f2 | Image Unsigned gray-scale (uint8 or uint16), signed (int32) or binary image. Or constant.

### Output

y | Image Unsigned gray-scale (uint8 or uint16), signed (int32) or binary image.

## Description

mmsubm creates the image `y` by pixelwise subtraction of the image `f2` from the image `f1`. When the subtraction of the values of two pixels is negative, 0 is taken as the result of the subtraction. When `f1` and `f2` are binary images, `y` represents the set subtraction of `f2` from `f1`.

## Examples

    >>> f = uint8([255,   255,    0,   10,   20,   10,    0,   255,  255])

    >>> g = uint8([10,     20,   30,   40,   50,   40,   30,    20,    10])

    >>> print mmsubm(f, g)

    [245 235   0   0   0   0   0 235 245]

    >>> print mmsubm(f, 100)

    Warning: Converting input image from int32 to uint8.
    [155 155   0   0   0   0   0 155 155]

    >>> print mmsubm(100, f)

    Warning: Converting input image from uint8 to int32.
    [-155 -155  100   90   80   90  100 -155 -155]

Gray scale image:

    >>> a = mmreadgray('boxdrill-C.tif')

    >>> b = mmreadgray('boxdrill-B.tif')

    >>> c = mmsubm(a,b)

    >>> mmshow(a)

    >>> mmshow(b)

    >>> mmshow(c)

a | b | c |

## Equation

## Source Code

    def mmsubm(f1, f2):
        from Numeric import array, minimum, maximum
        if type(f2) is array:
            assert f1.typecode() == f2.typecode(), 'Cannot have different datatypes:'
        y = minimum(maximum(f1.astype('d')-f2, mmlimits(f1)[0]), mmlimits(f1)[1])
        y = y.astype(f1.typecode())
        return y

## See also

mmfreedom | Control automatic data type conversion.
mmaddm | Addition of two images, with saturation.

## See also

mmfreedom | Control automatic data type conversion.
mmaddm | Addition of two images, with saturation.
mmlimits | Get the possible minimum and maximum of an image.

[`mmintersec`] [Up] [`mmsymdif`] |
Copyright (c) 2003, Roberto A. Lotufo, UNICAMP-University of Campinas; Rubens C. Machado, CenPRA-Renato Archer Research Center.