Está en la página 1de 21

Capitulo 1.

Fundamentos

1.5 Operadores
aritméticos y lógicos
Operadores aritméticos

𝑝𝑎 (𝑂𝑝)

𝑝𝑏
Operador Ecuación
Producto 𝑝𝑛 = min(𝑝𝑎 × 𝑝𝑏 , 255)

División 𝑝𝑛 = m𝑎𝑥(𝑝𝑎 /𝑝𝑏 , 0)

Suma 𝑝𝑛 = min(𝑝𝑎 + 𝑝𝑏 , 255)

Resta 𝑝𝑛 = max(𝑝𝑎 − 𝑝𝑏 , 0)
Diferencia absoluta 𝑝𝑛 = 𝑝𝑎 − 𝑝𝑏
Suma de dos imágenes
Imagen I

K = imadd(I,J);

Imagen J

J = imadd(I,50);
Resta
Imagen I

Ip = imsubtract(I,J);
Imagen J

Iq = imsubtract(I,50);
Complemento

J = imcomplement(I);
Operadores Lógicos
 Negación

 Conjunción
Operadores Lógicos
 Unión

 OR exclusivo
Ejemplos Matlab
Image Processing Toolbox

Operadores
aritméticos y lógicos
% Adición de dos imágenes
% imadd suma dos imágenes y recorta el valor máximo
a 255.
I = imread('rice.png');
J = imread('cameraman.tif');
K = imadd(I,J);
imshow(K)
imshow(K, [])
% Adición de dos imágenes especificando el tipo de
salida
I = imread('rice.png');
J = imread('cameraman.tif');
K = imadd(I,J,'uint16');
imshow(K,[])
Suma de un valor constante
% Adicionando un valor constante a la imagen
I = imread('rice.png');
J = imadd(I,50);
subplot(1,2,1), imshow(I)
subplot(1,2,2), imshow(J)
Estimar y restar el fondo de la imagen
I = imread('rice.png');
imshow(I)
fun = @ (block_struct) uint8(min(block_struct.data));
blocks = blockproc(I,[32 32],fun);
background = imresize(blocks,[256 256],'bilinear');
Ip = imsubtract(I,background);
figure, imshow(Ip,[])
% Restar un valor constante de la imagen
I = imread('rice.png');
Iq = imsubtract(I,50);
imshow(I), title('imagen original')
figure, imshow(Iq,[]), title('imagen resta de un
valor')
Complemento de una imagen
En una imagen binaria el los ceros se vuelven uno y los unos
ceros. En una imagen RGB, a cada valor del pixel se resta del
máximo valor de pixel soportado, las áreas oscuras se vuelven
mas claras y lo mas claro se vuelve oscuro.
Nota: Si la imagen es binaria también se puede utilizar la
expresión ~IM.

I = imread('bag.png');
J = imcomplement(I);
imshow(I), figure, imshow(J)
Multiplicación de imágenes
IMMULTIPLY(X,Y), multiplica cada elemento X por el
correspondiente elemento Y
Si X y Y son tipo doble utilizar la expression X.*Y.
% Ejemplo, producto de dos imágenes uint8 con el resultado
almacenado en una imagen uint16
I = imread('moon.tif');
I16 = uint16(I);
J = immultiply(I16, I16);
imshow(I), figure, imshow(J)
% Multiplicando una imagen por un valor constante
I = imread('moon.tif');
J = immultiply(I,0.5);
subplot(1,2,1), imshow(I)
subplot(1,2,2), imshow(J)
División de imágenes
IMDIVIDE(X,Y) Divide dos imágenes o una imagen por un valor
constante
Divide cada elemento de X por el correspondiente elemento de Y.
% Estimar y dividir por el fondo de la imagen
I = imread('rice.png');
fun = @ (block_struct) uint8(min(block_struct.data));
blocks = blockproc(I,[32 32],fun);
background = imresize(blocks,[256 256],'bilinear');
Ip = imdivide(I,background);
imshow(Ip,[])
% Dividir una imagen por un valor constante
I = imread('rice.png');
J = imdivide(I,2);
subplot(1,2,1), imshow(I)
subplot(1,2,2), imshow(J)
Ejemplos Simulink
Computer Vision System Toolbox

Operadores aritméticos
Diferencia de dos frames
 Calcular la diferencia entre dos frames de un vídeo
Frame Difference
 Delay : DSP System Toolbox / Signal Operations
Configurar Delay units: Frames

También podría gustarte