Extract a bit from the pixels.
The operator ::bit_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, 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.
|
Image (input_object) |
(multichannel-)image(-array) -> Hobject: HImage(Array) ( byte / int1 / int2 / int4 ) |
| Input image(s). | |
|
ImageSlice (output_object) |
(multichannel-)image(-array) -> Hobject * : HImage(Array) ( byte / int1 / int2 / int4 ) |
| Result image(s) by extraction. | |
|
Bit (input_control) |
integer -> HTuple.long |
| 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 <= 32 | |
| Minimum increment: 1 | |
|
Recommended increment: 1 | |
| Restriction: (Bit >= 1) && (Bit <= 32) | |
read_image(&ByteImage,"fabrik");
for (bit=1; bit<=8; i++)
{
bit_slice(ByteImage,&Slice,bit);
threshold(Slice,&Region,0,255);
disp_region(Region,WindowHandle);
clear(bit_slice); clear(Slice); clear(Region);
}
If the images are correct (type) and Bit has a valid value, the operator ::bit_slice returns the value 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 handling is raised.
Image filters