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:
Producción: