MATLAB | Complementar colores en una imagen binaria

La imagen binaria es una imagen digital que tiene solo dos valores posibles para cada píxel: 1 o 0, donde 0 representa el blanco y 1 representa el negro. En el complemento de una imagen binaria, el píxel de imagen que tiene valor cero se convierte en uno y el píxel de imagen que tiene valor uno se convierte en cero; es decir, el color blanco y negro de la imagen se invierte.

Complementando la imagen binaria usando la función de biblioteca MATLAB:

% read a Binary Image in MATLAB Environment
img=imread('geeksforgeeks.jpg');
  
% complement binary image
% using imcomplement() function
comp=imcomplement(img);
  
% Display Complemented Binary Image 
imshow(comp);

Complementando la imagen binaria sin usar la función de biblioteca:

Podemos complementar una imagen binaria restando cada valor de píxel del valor de píxel máximo posible que puede tener un píxel de imagen binaria (es decir, 1), y la diferencia se usa como el valor de píxel en la imagen complementada. Significa que si un píxel de imagen tiene el valor 1, en la imagen binaria complementada, el mismo píxel tendrá el valor (1 – 1) = 0 y si el píxel de la imagen binaria tiene el valor 0, en la imagen binaria complementada, el mismo píxel tendrá el valor (1 – 0). ) = 1.

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

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

 
Forma alternativa:

En MATLAB, las arrays son estructuras de datos básicas. Se pueden manipular con mucha facilidad. Por ejemplo Array = 1 - Array ;
, el código anterior restará cada elemento de la array de 1. Entonces, en lugar de usar dos bucles para restar 1 a cada píxel de la imagen binaria. Podemos escribirlo directamente como –
comp=1-img
Aquí ‘img’ es nuestra array de imágenes binarias.

El siguiente código también complementará una imagen binaria

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

Aporte:
Binary Image

Producción:
Complemented binary Image

Referencias: https://in.mathworks.com/help/images/ref/imcomplement.html

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 *