Skip to content

bit_sliceBitSliceBitSlicebit_slicebit_sliceπŸ”—

Short descriptionπŸ”—

bit_sliceBitSliceBitSlicebit_slicebit_slice β€” Extract a bit from the pixels.

SignatureπŸ”—

bit_slice( image Image, out image ImageSlice, integer Bit )void BitSlice( const HObject& Image, HObject* ImageSlice, const HTuple& Bit )static void HOperatorSet.BitSlice( HObject image, out HObject imageSlice, HTuple bit )def bit_slice( image: HObject, bit: int ) -> HObject

Herror bit_slice( const Hobject Image, Hobject* ImageSlice, const Hlong Bit )

Herror T_bit_slice( const Hobject Image, Hobject* ImageSlice, const Htuple Bit )

HImage HImage::BitSlice( Hlong Bit ) const

HImage HImage.BitSlice( int bit )

DescriptionπŸ”—

The operator bit_sliceBitSlice extracts a bit level from the input image. The semantics of the β€œand” operation corresponds to that of C for the respective types (signed char, unsigned char, short, unsigned short, int/long). 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).

ImageSliceimageSliceimage_slice (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 extraction.

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

Bit to be selected.

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

ExampleπŸ”—

(HDevelop)

read_image(Image,'fabrik')
for I:= 1 to 8 by 1
    bit_slice (Image, ImageSlice, I)
    threshold (ImageSlice, Region, 1, 255)
    dev_display (Region)
endfor
(C)
read_image(&ByteImage,"fabrik")\;
for (bit=1\; bit<=8\; i++)
{
  bit_slice(ByteImage,&Slice,bit)\;
  threshold(Slice,&Region,1,255)\;
  disp_region(Region,WindowHandle)\;
  clear(bit_slice)\; clear(Slice)\; clear(Region)\;
}

ResultπŸ”—

If the images are correct (type) and Bitbitbit has a valid value, the operator bit_sliceBitSlice 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

Possible successors

thresholdThreshold, bit_orBitOr

Alternatives

bit_maskBitMask

See also

bit_andBitAnd, bit_lshiftBitLshift

ModuleπŸ”—

Foundation