Skip to content

bit_lshiftBitLshiftBitLshiftbit_lshiftbit_lshiftπŸ”—

Short descriptionπŸ”—

bit_lshiftBitLshiftBitLshiftbit_lshiftbit_lshift β€” Left shift of all pixels of the image.

SignatureπŸ”—

bit_lshift( image Image, out image ImageLShift, integer Shift )void BitLshift( const HObject& Image, HObject* ImageLShift, const HTuple& Shift )static void HOperatorSet.BitLshift( HObject image, out HObject imageLShift, HTuple shift )def bit_lshift( image: HObject, shift: int ) -> HObject

Herror bit_lshift( const Hobject Image, Hobject* ImageLShift, const Hlong Shift )

Herror T_bit_lshift( const Hobject Image, Hobject* ImageLShift, const Htuple Shift )

HImage HImage::BitLshift( Hlong Shift ) const

HImage HImage.BitLshift( int shift )

DescriptionπŸ”—

The operator bit_lshiftBitLshift 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.

Execution informationπŸ”—

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Automatically parallelized on tuple level.

  • Automatically parallelized on channel level.

  • Automatically parallelized on domain level.

ParametersπŸ”—

Imageimageimage (input_object) (multichannel-)image(-array) β†’ object (byte / direction / cyclic / int1 / int2 / uint2 / int4)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4)HImage (byte / direction / cyclic / int1 / int2 / uint2 / int4)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4)Hobject (byte / direction / cyclic / int1 / int2 / uint2 / int4)

Input image(s).

ImageLShiftimageLShiftimage_lshift (output_object) (multichannel-)image(-array) β†’ object (byte / direction / cyclic / int1 / int2 / uint2 / int4)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4)HImage (byte / direction / cyclic / int1 / int2 / uint2 / int4)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4)Hobject * (byte / direction / cyclic / int1 / int2 / uint2 / int4)

Result image(s) by shift operation.

Shiftshiftshift (input_control) integer β†’ (integer)HTuple (Hlong)HTuple (int / long)intHtuple (Hlong)

Shift value.

Default: 33
Suggested values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, 24, 30, 311, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, 24, 30, 31
Minimum increment: 1
Recommended increment: 1

ExampleπŸ”—

(C)

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

ResultπŸ”—

If the images are correct (type) and if Shiftshiftshift has a valid value the operator bit_lshiftBitLshift 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 is raised.

Combinations with other operatorsπŸ”—

Combinations

Alternatives

scale_imageScaleImage

See also

bit_rshiftBitRshift

ModuleπŸ”—

Foundation