You are here: Start » AVL.NET » Function Reference » Image » Image Combinators » AVL.MultiplyImages

AVL.MultiplyImages

Multiplies two images pixel by pixel.

Namespace:AvlNet
Assembly:AVL.NET.dll

Syntax

C++
C#
 
public static void MultiplyImages
(
	AvlNet.Image inImage1,
	AvlNet.Image inImage2,
	NullableRef<AvlNet.Region> inRoi,
	float inScale,
	AvlNet.Image outImage
)

Parameters

Name Type Range Default Description
inImage1AvlNet.ImageFirst input image.
inImage2AvlNet.ImageSecond input image.
inRoiAvlNet.NullableRef<AvlNet.Region>Range of pixels to be processed. Default value: atl::NIL.
inScalefloat1.0fOutput image scaling factor. Default value: 1.0f.
outImageAvlNet.ImageOutput image.

Description

The operation computes the product of two images. Each outImage pixel is equal to the product of the corresponding pixels of the input images.

The result of the operation is multiplied by inScale factor, which may be used to avoid clipping when the produced values exceed the range of correct pixel values. However it should be noted that when the value of inScale is other than 1.0, the filter uses a slower, not SSE-optimized implementation.

Whenever the resulting value exceeds the range of pixel values, it is clipped to the nearest proper value. In multichannel (color) images each pixel channel is processed separately.

The operation requires that the images being processed have equal format and dimensions, otherwise an error with appropriate description occurs. To obtain an image of desired dimensions one can use ResizeImage or CropImage filter. To alter the pixel type of an image one can use ConvertPixelType filter. ConvertToMultichannel and AverageChannels filters allow to alter the number of image channels.

Hardware Acceleration

This operation is optimized for SSE2 technology for pixels of types: UINT8, SINT16, REAL, SINT8(for inScale=1).

This operation is optimized for SSE41 technology for pixels of type: UINT16.

This operation is optimized for AVX2 technology for pixels of types: UINT8, UINT16, SINT16, REAL, SINT8(for inScale=1).

This operation supports automatic parallelization for multicore and multiprocessor systems.

Hardware acceleration settings may be manipulated with Settings class.

Errors

List of possible exceptions:

Error type Description
DomainError Image formats are not the same in MultiplyImages.
DomainError Image sizes are not equal in MultiplyImages.
DomainError Region exceeds an input image in MultiplyImages.

Function Overrides

See also