MATLAB | Colores complementarios en una imagen en escala de grises

En MATLAB, una imagen en escala de grises es una array de imágenes en 2D (M*N) de píxeles de color. Cuando complementamos colores en una imagen en escala de grises, cada píxel de color en la imagen en escala de grises se reemplaza con su píxel de color complementario.

Las áreas oscuras se vuelven más claras y las áreas claras se vuelven más oscuras en la imagen en escala de grises como resultado del complemento.

Complementación de colores de una imagen en escala de grises utilizando la función de biblioteca MATLAB:

% read a Grayscale Image in MATLAB Environment
img=imread('apple.jpg');
  
% complement colors of a Grayscale image 
% using imcomplement() function
comp=imcomplement(img);
  
% Display Complemented grayscale Image 
imshow(comp);

Complementación de colores de una imagen en escala de grises sin utilizar la función de biblioteca de MATLAB:

Las imágenes en escala de grises tienen su valor de píxel en el rango de 0 a 255. Podemos complementar una imagen en escala de grises restando cada valor de píxel del valor de píxel máximo posible que puede tener un píxel de imagen en escala de grises (es decir, 255), y la diferencia se usa como el valor de píxel en la imagen en escala de grises complementada.

Significa que si un píxel de imagen tiene un valor de 100, entonces, en una imagen en escala de grises complementada, el mismo píxel tendrá un valor (255 – 100) = 155.
Y si un píxel de una imagen en escala de grises tiene un valor 0, en una imagen en escala de grises complementada, el mismo píxel tendrá un valor (255 – 100). 0) = 255.
Del mismo modo, si el píxel de la imagen en escala de grises tiene un valor de 255, en la imagen en escala de grises complementada, el mismo píxel tendrá un valor (255 – 255) = 0.

A continuación se muestra la implementación de la idea anterior:

% This function will take a Grayscale image as input
% and will complement the colors in it.
  
function [complement] = complementGray(img)
       
    % Determine the number of rows and columns
    % in the Grayscale image array
   
    [x, y]=size(img);
     
    % create a array of same number rows and
    % columns as original Grayscale image array
    complement=zeros(x, y);
      
    % loop to subtract 255 to each pixel.
    for i=1:x
        for j=1:y
              complement(i, j) = 255-img(i, j);
        end
   end
end
  
% Driver Code
  
% read a Grayscale Image in MATLAB Environment
img=imread('apple.jpg');
  
% call complementGray() function to
% complement colors in the Grayscale Image
comp=complementGray(img);
  
% Display complemented Grayscale image
imshow(comp);

Alternativamente –

En lugar de usar dos bucles para restar 255 a cada píxel de la imagen en escala de grises. Podemos escribirlo directamente como comp = 255-image. El código anterior restará cada valor de la array de imágenes de 255.

El siguiente código también complementará una imagen en escala de grises:

% read a Grayscale Image in MATLAB Environment
img=imread('apple.jpg');
  
% complement each pixel by subtracting it from 255.
comp=255-img;
  
% Display Complemented Grayscale Image 
imshow(comp);

Aporte:
Complemented Grayscale image

Producción:
Grayscale Image

Publicación traducida automáticamente

Artículo escrito por ihritik y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *