In MATLAB, an RGB image is basically a 3-D Image array ( M*N*3 ) of color pixel, where each color pixel is associated with three values which correspond to red, blue and green color component of RGB image at a specified spatial location.
In complement of colors an RGB image, Each color in RGB image is replaced with their complementary color.
red color ( 255, 0, 0) is replaced with cyan color ( 0, 255, 255 ).
blue color ( 0, 0, 255 ) is replaced with yellow color ( 255, 255, 0).
here, cyan is complementary color for red and yellow are complementary color for blue.
Dark areas become lighter and light areas become darker in RGB image as result of complement.
Complementing colors of an RGB Image Using MATLAB Library Function :
Complementing colors of an RGB Image Without Using Library functions:
Complement an RGB image by subtracting each pixel value from the maximum pixel value supported by the class of RGB image and the difference is used as the pixel value in the complemented RGB image.
If RGB image belongs to class ‘uint8’, each pixel will have values between [ 0 – 255]. So, for ‘uint8’ class type maximum value a pixel can have is 255. If an RGB image belongs to class ‘uint16’, each pixel will have values between [ 0 – 65535]. So, for ‘uint16’ class type maximum value a pixel can have is 65535. Similarly, Maximum possible pixel value In ‘double’ class type RGB image is 1.0.
For example, let an RGB image of ‘uint8’ class
If a image pixel have value 127 then, in complemented RGB image same pixel will have value ( 255 – 127 ) = 128.
If RGB image pixel have value 255 then, in complemented RGB image same pixel will have value ( 255 – 255 ) = 0.
Below is the Implementation of above idea.
In MATLAB, Arrays are basic data structure. They can be manipulated very easily. For example
Array = 255 - Array ;
The above code will subtract each element of the array from 255. Array can have any number of dimensions. So, Instead of using three loop to subtract 255 to each pixel of RGB image. We can directly write it as
comp=255 - img
Here ‘img’ is a 3-D array representing our RGB image.
Below code will also complement an RGB Image: