bit_lshift ( Image : ImageLShift : Shift : )

Left shift of all pixels of the image.

The operator bit_lshift calculates a ``left shift'' of all pixels of the input image bit by bit. The semantics of the ``left shift'' operation corresponds to that of C (``<<``) for the respective types (signed char, unsigned char, short, unsigned short, int/long). If an overflow occurs the result is limited to the maximum value of the respective pixel type. Only the pixels within the definition range of the image are processed.

Several images can be processed in one call. An output image is generated for every input image.


Parameters

Image (input_object)
(multichannel-)image(-array) -> object : byte / direction / cyclic / int1 / int2 / uint2 / int4
Input image(s).

ImageLShift (output_object)
(multichannel-)image(-array) -> object : byte / direction / cyclic / int1 / int2 / uint2 / int4
Result image(s) by shift operation.

Shift (input_control)
integer -> integer
Shift value.
Default value: 3
Suggested values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, 24, 30, 31
Typical range of values: 0 <= Shift <= 31
Minimum increment: 1
Recommended increment: 1
Restriction: (Shift >= 1) && (Shift <= 31)


Example
read_image(&ByteImage,"fabrik");
convert_image_type(ByteImage,&Int2Image,"int2");
bit_lshift(Int2Image,&FullInt2Image,8);

Result

If the images are correct (type) and if Shift has a valid value the operator bit_lshift returns the value 2 (H_MSG_TRUE). The behavior in case of empty input (no input images available) is set via the operator set_system(::'no_object_result',<Result>:) If necessary an exception handling is raised.


Parallelization Information

bit_lshift is reentrant and automatically parallelized (on tuple level, channel level, domain level).


Alternatives

scale_image


See also

bit_rshift


Module

Image filters



Copyright © 1996-2005 MVTec Software GmbH