Horus Doc || Global Function Guide || General documentation   | Function documentation  

HxMul

Synopsis

HxImageRep HxMul(HxImageRep im1, HxImageRep im2)

Input

HxImageRep im1
The first input image

HxImageRep im2
The second input image

Return value

HxImageRep
The (Hadamard) product of the input images

Description

The function HxMul multiplies two images on a pixel-by-pixel basis. Vector pixel types of the same dimension are multiplied component wise. Pixel types of different dimensions can be multiplied, as long as the pixel dimensionality of one of the input images is 1. The image with pixel dimensionality 1 is then treated as an image with the same pixel dimensionality as the other image (with equal values per pixel).

Remarks

Valid input images
The two input images should have the same dimensionality, the same pixel dimensionality (or the pixel dimensionality of one of the pixels should be 1) and the same size.

Overflow error
The function HxMul can result in an overflow error.

Examples

Multiplying two images

#include "HxImageRepGlobalFuncs.h"
#include "HxImageRep.h"

HxImageRep HxMulExample1(HxImageRep im1, HxImageRep im2) {
   im1 = HxImageAsDouble(im1);
   im2 = HxImageAsDouble(im2);
   im1 = HxMul(im1, im2);
   im1 = HxContrastStretch(im1, 255.0);
   im1 = HxImageAsByte(im1);

   return im1;
}

int main(int argc, char* argv[])
{
    HxImageRep im1 = HxMakeFromFile(argv[1]);
    HxImageRep im2 = HxMakeFromFile(argv[2]);
    im1 = HxMulExample1(im1, im2);
    HxWriteFile(im1, argv[3]);

    return 0;
}

exampleImage1.gif

First input image for the HxMul example.

exampleImage2.gif

First input image for the HxMul example.

HxMulResult1.gif

Output image of the HxMul example.

In this example we multiply two (scalar) images. After multiplying the images, we stretch the result for visualization purposes.

See also

HxDiv, HxAdd,

Keywords

Binary, Arithmetic,


Generated on Mon Jan 27 15:45:01 2003 for GlobalFunctionGuide by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001