bit_slicebit_sliceBitSliceBitSlice (Operator)

Name

bit_slicebit_sliceBitSliceBitSlice — 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)

Description

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

Parameters

ImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4)

Input image(s).

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

Result image(s) by extraction.

BitBitBitBitbit (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Bit to be selected.

Default value: 8

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

Typical range of values: 1 ≤ Bit Bit Bit Bit bit ≤ 32

Minimum increment: 1

Recommended increment: 1

Restriction: Bit >= 1 && Bit <= 32

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

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_sliceBitSliceBitSliceBitSlice 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>)SetSystem("no_object_result",<Result>) If necessary an exception is raised.

Possible Successors

thresholdthresholdThresholdThresholdThreshold, bit_orbit_orBitOrBitOrBitOr

Alternatives

bit_maskbit_maskBitMaskBitMaskBitMask

See also

bit_andbit_andBitAndBitAndBitAnd, bit_lshiftbit_lshiftBitLshiftBitLshiftBitLshift

Module

Foundation