bit_slicebit_sliceBitSliceBitSlicebit_slice (Operator)

Name

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_sliceBitSliceBitSliceBitSlicebit_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

Parameters

ImageImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4)

Input image(s).

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

Result image(s) by extraction.

BitBitBitBitbitbit (input_control)  integer HTupleintHTupleHtuple (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 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 BitBitBitBitbitbit has a valid value, the operator bit_slicebit_sliceBitSliceBitSliceBitSlicebit_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>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>) If necessary an exception is raised.

Possible Successors

thresholdthresholdThresholdThresholdThresholdthreshold, bit_orbit_orBitOrBitOrBitOrbit_or

Alternatives

bit_maskbit_maskBitMaskBitMaskBitMaskbit_mask

See also

bit_andbit_andBitAndBitAndBitAndbit_and, bit_lshiftbit_lshiftBitLshiftBitLshiftBitLshiftbit_lshift

Module

Foundation