[mmtoggle] [Up] [mmintersec] Operations

mmaddm
Addition of two images, with saturation.

Synopsis

y = mmaddm( 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

mmaddm creates the image y by pixelwise addition of images f1 and f2. When the addition of the values of two pixels saturates the image data type considered, the greatest value of this type is taken as the result of the addition.

Examples

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

              
>>> g = uint8([ 0,    40,   80,   140,  250,    10,    30])

              
>>> y1 = mmaddm(f,g)

              
>>> print y1
[255 255  80 150 250 255 255]
>>> y2 = mmaddm(g, 100)
Warning: Converting input image from int32 to uint8.
>>> print y2
[100 140 180 240 255 110 130]
>>> a = mmreadgray('keyb.tif')

              
>>> b = mmaddm(a,128)
Warning: Converting input image from int32 to uint8.
>>> mmshow(a)

              
>>> mmshow(b)

            
a b

Equation

Source Code

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

See also

mmfreedom Control automatic data type conversion.
mmsubm Subtraction of two images, with saturation.
mmlimits Get the possible minimum and maximum of an image.
[mmtoggle] [Up] [mmintersec] Python