Manejo de Imagenes en Matlab
Manejo de Imagenes en Matlab
Manejo de Imagenes en Matlab
ASIGNATURA:
TEMA:
MANEJO DE IMÁGENES EN MATLAB
DOCENTE:
ING. FAVIÁN ÁLVAREZ
NRC:
1224
IMAGEN 1
Paso 1
Paso 2
Si la imagen se encuentra en un formato diferente al tiff es necesario transformarlo a esto,
en este cao la imagen se encuentra en el formato jpg lo cual es necesario realizar su
modificación con el siguiente comando:
A=double(imread('rostro.jpg'));
A=A(:,:,1);
B=uint8(A);
imwrite(B,'C:\Users\USUARIO\Documents\MATLAB\rostro.tiff');
subplot(2,2,2);
imshow(B);
title('IMAGEN FORMATO TIFF')
[M,N]=size(B);
C=double(imread('rostro.jpg'));
C=C(:,:,1);
D=uint8(C);
imwrite(D,'C:\Users\USUARIO\Documents\MATLAB\rostro.tiff');%
subplot(2,1,2);
imshow(D);
De la misma manera el comando nuevo que aparece es el uint8(A) permite trabajar con
enteros de 8 bits en el rango de [0. 255] (1 byte por cada elemento). El imwrite lo
modifica al formato tiff de la imagen, a continuación se muestra la imagen transformada:
Figura Nº 2 Imagen de formato tiff similar a lo anterior lo que se diferencia es el manejo que se
puede hacer por cada bit de la imagen.
Paso 3
Luego con el siguiente procedimiento se obtiene una imagen a escala de grises:
D=uint8(C);
imwrite(D,'C:\Users\USUARIO\Documents\MATLAB\rostro.tiff');
subplot(2,1,2);
imshow(D);
title('ESCALA DE GRISES')
[Mi,Ni]=size(D);
dimT=[M,N];
Paso 4
Ahora creamos una matriz unitaria (de unos) con las mismas dimensiones de la matriz de
la imagen de escala de grises:
[Mi,Ni]=size(D);
dimT=[M,N];
UNOST= ones(dimT);
dimI=[Mi,Ni];
UNOSI= ones(dimI);
Rango1_0= A/255;
Y=UNOST-Rango1_0;
subplot(2,1,1); imshow(Y)
title('RESTA DE LA MATRIZ ESCAL DE GRISES CON UNA MATRIZ DE UNOS')
Eso es todo en cuanto a lo que se puede obtener los resultados al restar la matriz de uno y
se obtiene resultados diferentes, en este caso es el valor viceversa.
1. Imagen Negativo
Código
imagen2= imread('rostro.jpg');
im2d=double(imagen2);
%img2 = log(1+im2d)
img2gris = mat2gray(im2d);
im2gris= rgb2gray(img2gris);
%imagen2gris=uint8(img2gris)
subplot(1,2,1); imshow(im2gris);
title('Imagen 1')
%Matriz de unos
B=ones(size(im2gris));
imresta = B-im2gris;
subplot(1,2,1); imshow(imresta);title('')
subplot(1,2,2); imhist(imresta);
Código
A=imread('rostro.jpg');
B=imread('rostro.jpg');
ga=im2double(A);
gb=im2double(B);
bna2=ga;
bnb2=gb;
for i=1: m
for j=1: n
if (ga(i,j)<0.5)
bna2(i,j)=0;
else
bna2(i,j)=1;
end
end
end
for i=1: f
for j=1: c
if (gb(i,j)<0.5)
bnb2(i,j)=0;
else
bnb2(i,j)=1;
end
end
end
Código
bna3=ga;
bnb3=gb;
for i=1: m
for j=1: n
if (ga(i,j)<l)
bna3(i,j)=bna3(i,j)-0.1;
else
bna3(i,j)=bna3(i,j)+0.1;
end
end
end
for i=1: f
for j=1: c
if (gb(i,j)<l)
bnb3(i,j)=bnb3(i,j)-0.1;
else
bnb3(i,j)=bnb3(i,j)+0.1;
end
end
end
Código
bna5=ga;
bnb5=gb;
for i=1: m
for j=1: n
if (ga(i,j)<a || ga(i,j)>b)
bna5(i,j)=0;
else
bna5(i,j)=bna5(i,j);
end
end
end
Código
bna6=ga;
bnb6=gb;
for i=1: m
for j=1: n
if (ga(i,j)<a || ga(i,j)>b)
bna6(i,j)=1;
else
bna6(i,j)=bna6(i,j);
end
end
end
for i=1: f
for j=1: c
if (gb(i,j)<a || gb(i,j)>b)
bnb6(i,j)=1;
else
bnb6(i,j)=bnb6(i,j);
end
end
end
Código
bna8=ga;
bnb8=gb;
for i=1: m
for j=1: n
if (ga(i,j)>a && ga(i,j)<b)
bna8(i,j)=1;
else
bna8(i,j)=bna8(i,j);
end
end
end
for i=1: f
for j=1: c
if (gb(i,j)>a && gb(i,j)<b)
bnb8(i,j)=1;
else
bnb8(i,j)=bnb8(i,j);
end
end
end
Código
clc;
clear;
a=0.2;
b=0.8;
imagen2= imread('rostro.jpg');
im2d=double(imagen2);
%img2 = log(1+im2d)
img2gris = mat2gray(im2d);
im2gris= rgb2gray(img2gris);
m=find(im2gris>=a & im2gris<=b);
im2gris(m)=zeros(size(m));
subplot(1,2,1); imshow(im2gris)
subplot(1,2,2);imhist(im2gris)
Código
clc;
clear;
imagen2= imread('rostro.jpg');
im2d=double(imagen2);
img2gris = mat2gray(im2d);
im2gris= rgb2gray(img2gris);
subplot(2,2,1); imshow(im2gris);title('Imagen ')
subplot(2,2,2); imhist(im2gris);
g=imadjust(im2gris, [0 1], [0 0.5]);
subplot(1,2,1); imshow(g)
subplot(1,2,2); imhist(g)
Código
bna10=ga;
bnb10=gb;
for i=1: m
for j=1: n
bna10(i,j)=(0.75)*bna10(i,j);
end
end
for i=1: f
for j=1: c
bnb10(i,j)=(0.75)*bnb10(i,j);
end
end
IMAGEN 2
Para mostrar una mejor ejecución del programa se efectuó otra imagen como se muestra a
continuación lo cual no se pondrá el condigo porque anteriormente se mostró y es similar:
1. Imagen en Negativo