Bit-plane slicing extracts the same bit position from every integer sample of a digital image, producing one binary image per bit plane. For an unsigned -bit sample and ,Equivalently, bitwise AND with the mask isolates that position, and a bit shift or nonzero test converts it to zero or one. Linux's frame-buffer API describes the underlying bit-plane storage convention as plane carrying bit of every sample.[ref]
For an original four-bit sample , the binary digits are : the planes have . Their contributions reconstruct . Displaying each plane as a black-and-white image makes its pattern visible, but does not give every plane equal numerical significance.
An original four-bit image, two extracted bit planes and reconstruction from the two most significant planes
. Every grid entry shows its integer value. The binary panels map zero to black and one to white; the input and reconstruction use the common zero-to15 grayscale. The alternating row pattern is visible in the least significant plane. Details.Keeping only planes three and two gives . The discarded remainder satisfies , by integer division. A one-unit change from seven to eight nevertheless flips every one of the four bits, so the binary patterns need not vary smoothly as intensity codes change. Nor is a low bit plane automatically noise: it can encode a deliberately structured pattern, as the example shows.
Slicing is an operation on the stated integer encoding. Applying it to a floating-point number's stored bit pattern examines sign, exponent and fraction fields rather than the same unsigned intensity significance. The sample type and pixel format therefore belong in the definition of the operation.
New to topics? Read the docs here!
