''

def __init__(self, image1, image2=None, image3=None, Q=8, pedestal=None):

    if ((image2 is None) or (image3 is None)):
        if (not ((image2 is None) and (image3 is None))):
            raise ValueError(u'please    specify    either    a    single    image    or    three    images.')
        image = [image1]
    else:
        image = [image1, image2, image3]
    if (pedestal is not None):
        try:
            len(pedestal)
        except TypeError:
            pedestal = (3 * [pedestal])
        if (len(pedestal) != 3):
            raise ValueError(u'please    provide    1    or    3    pedestals.')
        image = list(image)
        for (i, im) in enumerate(image):
            if (pedestal[i] != 0.0):
                image[i] = (im - pedestal[i])
    else:
        pedestal = (len(image) * [0.0])
    image = compute_intensity(*image)
    zscale_limits = ZScaleInterval().get_limits(image)
    zscale = LinearMapping(image=image, *zscale_limits)
    stretch = (zscale.maximum - zscale.minimum[0])
    minimum = zscale.minimum
    for (i, level) in enumerate(pedestal):
        minimum[i] += level
    AsinhMapping.__init__(self, minimum, stretch, Q)
    self._image = image
