Skip to content

bit_xorBitXorBitXorbit_xorbit_xorπŸ”—

Short descriptionπŸ”—

bit_xorBitXorBitXorbit_xorbit_xor β€” Bit-by-bit XOR of all pixels of the input images.

SignatureπŸ”—

bit_xor( image Image1, image Image2, out image ImageXor )void BitXor( const HObject& Image1, const HObject& Image2, HObject* ImageXor )static void HOperatorSet.BitXor( HObject image1, HObject image2, out HObject imageXor )def bit_xor( image_1: HObject, image_2: HObject ) -> HObject

Herror bit_xor( const Hobject Image1, const Hobject Image2, Hobject* ImageXor )

Herror T_bit_xor( const Hobject Image1, const Hobject Image2, Hobject* ImageXor )

HImage HImage::BitXor( const HImage& Image2 ) const

HImage HImage.BitXor( HImage image2 )

DescriptionπŸ”—

The operator bit_xorBitXor calculates the β€œxor” of all pixels of the input images bit by bit. The semantics of the β€œxor” operation corresponds to that of C for the respective types (signed char, unsigned char, short, unsigned short, int/long). The images must have the same size and pixel type. The pixels within the definition range of the image in the first parameter are processed.

* Several images can be processed in one call. In this case both input parameters contain the same number of images which are then processed in pairs. An output image is generated for every pair.

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 domain level.

ParametersπŸ”—

Image1image1image_1 (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) 1.

Image2image2image_2 (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) 2.

ImageXorimageXorimage_xor (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 XOR-operation.

ExampleπŸ”—

(HDevelop)

read_image(Image1,'fabrik')
dev_display (Image1)
read_image(Image2,'monkey')
dev_display (Image2)
bit_xor(Image1,Image2,ImageBitXor)
dev_display (ImageBitXor)
(C)
read_image(&Image0,"monkey")\;
disp_image(Image0,WindowHandle)\;
read_image(&Image1,"fabrik")\;
disp_image(Image1,WindowHandle)\;
bit_xor(Image0,Image1,&ImageBitX)\;
disp_image(ImageBitX,WindowHandle)\;

ResultπŸ”—

If the parameter values are correct the operator bit_xorBitXor returns the value 2 (H_MSG_TRUE). The behavior in case of empty input (no input images available) can be determined by the operator set_system(::'no_object_result',<Result>:) If necessary an exception is raised.

Combinations with other operatorsπŸ”—

Combinations

Alternatives

bit_orBitOr, bit_andBitAnd, add_imageAddImage

See also

bit_orBitOr, bit_andBitAnd

ModuleπŸ”—

Foundation