Cuando trabajamos con sistemas de visión, habrá ocasiones en que necesitaremos realizar operaciones lógicas con imágenes, en este artículo les mostraremos cómo realizar las operaciones AND, OR, XOR y NOT con imágenes utilizando el software MATLAB.
Además de las operaciones aritméticas, otras de las operaciones puntuales que se pueden realizar en imágenes son las “Operaciones lógicas”. Las principales operaciones lógicas utilizadas en el procesamiento de imágenes son: AND, OR, NOT y XOR, las cuales se aplican solo a imágenes binarias, es decir, compuestas de 1 y 0, imágenes blanco y negro. La imagen resultante de una operación lógica es la relación de unos y ceros pixel por pixel entre dos imágenes. Por ejemplo, si tenemos dos imágenes de 4 pixeles, con los siguientes valores de pixeles, y se les aplica la operación AND, se mostraría de la siguiente manera:
Recordando que la tabla de verdad para una operación AND es la siguiente:
Si queremos aplicarle una operación lógica a una imagen, primero debemos transformarla a binario (Blanco y negro). Para realizar esto, la sintaxis en MATLAB es la siguiente:
Código:
Imagen_resultado = im2bw(Imagen1); |
---|
La sintaxis para aplicar la operación OR utilizando dos imágenes es la siguiente:
Código:
Imagen_resultado = or(Imagen1,Imagen2); |
---|
La sintaxis para aplicar la operación XOR utilizando dos imágenes es la siguiente:
Código:
Imagen_resultado = xor(Imagen1,Imagen2); |
---|
La sintaxis para aplicar la operación AND utilizando dos imágenes es la siguiente:
Código:
Imagen_resultado = and(Imagen1,Imagen2); |
---|
La sintaxis para aplicar la operación NOT a una imagen es la siguiente:
Código:
Imagen_resultado = not(Imagen1); |
---|
Aplicar distintas operaciones lógicas (OR, XOR, AND, NOT) a una serie de imágenes.
Código:
clear all; close all; clc; I=imread('cameraman.tif'); %Leemos y guardamos la imagen 1 J=im2bw(I); %Convertimos la imagen 1 a blanco y negro Y=imread('rice.png');%Leemos y guardamos la imagen 2 R=im2bw(Y); %Convertimos la imagen 2 a escala de grises %Operación NOT a ambas imagenes NJ=not(J); NR=not(R); %Operación AND A=and(R,J); %Operación OR O=or(R,J); %Operación XOR X=xor(R,J); %Mostramos los resultados subplot(3,3,1), imshow(I), title('Cameraman'); subplot(3,3,2), imshow(J), title('Cameraman BW'); subplot(3,3,3), imshow(NJ), title('Cameraman BW NOT'); subplot(3,3,4), imshow(Y), title('Rice'); subplot(3,3,5), imshow(R), title('Rice BW'); subplot(3,3,6), imshow(NR), title('Rice BW NOT'); subplot(3,3,7), imshow(A), title('Cameraman BW Rice BW AND'); subplot(3,3,8), imshow(O), title('Cameraman BW Rice BW OR'); subplot(3,3,9), imshow(X), title('Cameraman BW Rice BW XOR'); |
---|
Las operaciones lógicas también pueden realizarse en imágenes, habrá proyectos de sistemas de visión que nos obligarán a utilizarlas para resolver un problema, y en este artículo les enseñamos cómo realizar estas operaciones lógicas en imágenes utilizando el software “MATLAB”.