Operator Reference

bit_slicebit_sliceBitSliceBitSlicebit_slice (Operator)

bit_slicebit_sliceBitSliceBitSlicebit_slice — Extract a bit from the pixels.

Signature

bit_slice(Image : ImageSlice : Bit : )

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

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

void BitSlice(const HObject& Image, HObject* ImageSlice, const HTuple& Bit)

HImage HImage::BitSlice(Hlong Bit) const

static void HOperatorSet.BitSlice(HObject image, out HObject imageSlice, HTuple bit)

HImage HImage.BitSlice(int bit)

def bit_slice(image: HObject, bit: int) -> HObject

Description

The operator bit_slicebit_sliceBitSliceBitSlicebit_slice 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

  • 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

ImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4)

Input image(s).

ImageSliceImageSliceImageSliceimageSliceimage_slice (output_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject * (byte / direction / cyclic / int1 / int2 / uint2 / int4)

Result image(s) by extraction.

BitBitBitbitbit (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Bit to be selected.

Default: 8

Suggested values: 1, 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

Example (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);
}

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

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

Result

If the images are correct (type) and BitBitBitbitbit has a valid value, the operator bit_slicebit_sliceBitSliceBitSlicebit_slice 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>:)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>) If necessary an exception is raised.

Possible Successors

thresholdthresholdThresholdThresholdthreshold, bit_orbit_orBitOrBitOrbit_or

Alternatives

bit_maskbit_maskBitMaskBitMaskbit_mask

See also

bit_andbit_andBitAndBitAndbit_and, bit_lshiftbit_lshiftBitLshiftBitLshiftbit_lshift

Module

Foundation