Está en la página 1de 32

FACULTAD DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

LABORATORIO Nº1
PROCESAMIENTO DIGITAL DE VOZ E IMAGEN

ALUMNOS:
 Jorge Nina, Oscar
 Velille Barrios, Luis Enrique
Docente:
Ing. Quispe Aguilar Max Fredi

Lima-Perú
2021
Generar Imágenes de escalas de gris
1.Generar 08 imágenes diferentes de contenido manualmente:
•Una de 76,800 pixels, de dimensiones 320x240 de escala de grises.
•La otra de 38,400 pixels, de dimensiones 160x120 de escala de grises

Cada una de:


a. De 8bits.
b.de 16bits.
c.de 32bits.
d.de 64bits.

Ejemplo. Tablero de ajedrez. (imagen generada manualmente).


%creamos una imagen en escala de 8 bits en escala de
gray
I1 = zeros( 120,160,'uint8')
I2 = 255 * ones( 120,160,'uint8')
X=[I1 I2]
subplot(3,2,1),imshow(X); % visualizamos X
I3= imresize(X,[240 320])% le cambie de tamaño
subplot(3,2,2),imshow(I3); % visualizamos X
I4= imresize(X,[120 160])% le cambie de tamaño
subplot(3,2,3),imshow(I4); % visualizamos X
imwrite(I3,'imagen8-320-gris.bmp')
imwrite(I4,'imagen8-160-gris.bmp')
figure;
J=imread('imagen8-320-gris.bmp'); % visualizamos
imagen a 320
J2=imread('imagen8-160-gris.bmp'); % visualizamos
imagen a 160
subplot(3,2,1),imshow(J); % visualizamos la imagen
grabada
subplot(3,2,2),imshow(J2); % visualizamos la imagen
grabada
[N, M]size(J)
[Rows, Cols]size(J2)
C = class(J) %Verificarel tipo de dato de cada
imagen
C2 = class(J2)
imfinfo('imagen8-320-gris.bmp') %Verificar datos de
cada imagen
imfinfo('imagen8-160-gris.bmp')
%creamos una imagen en escala de 16 bits en escala de
gray
I1 = zeros( 120,160,'uint16')
I2 = 255 * ones( 120,160,'uint16')
X=[I1 I2]
subplot(3,2,1),imshow(X); % visualizamos X
I3= imresize(X,[240 320])% le cambie de tamaño
subplot(3,2,2),imshow(I3); % visualizamos X
I4= imresize(X,[120 160])% le cambie de tamaño
subplot(3,2,3),imshow(I4); % visualizamos X
imwrite(I3,'imagen16-320-gris.bmp')
imwrite(I4,'imagen16-160-gris.bmp')
figure;
J=imread('imagen16-320-gris.bmp'); % visualizamos
imagen a 320
J2=imread('imagen16-160-gris.bmp'); % visualizamos
imagen a 160
subplot(3,2,1),imshow(J); % visualizamos la imagen
grabada
subplot(3,2,2),imshow(J2); % visualizamos la imagen
grabada
[N, M]size(J)
[Rows, Cols]size(J2)
C = class(J) %Verificarel tipo de dato de cada
imagen
C2 = class(J2)
imfinfo('imagen16-320-gris.bmp') %Verificar datos de
cada imagen
imfinfo('imagen16-160-gris.bmp')
%creamos una imagen en escala de 32 bits en escala de
gray
I1 = zeros( 120,160,'uint32')
I2 = 255 * ones( 120,160,'uint32')
X=[I1 I2]
subplot(3,2,1),imshow(X); % visualizamos X
I3= imresize(X,[240 320])% le cambie de tamaño
subplot(3,2,2),imshow(I3); % visualizamos X
I4= imresize(X,[120 160])% le cambie de tamaño
subplot(3,2,3),imshow(I4); % visualizamos X
imwrite(I3,'imagen32-320-gris.bmp')
imwrite(I4,'imagen32-160-gris.bmp')
figure;
J=imread('imagen32-320-gris.bmp'); % visualizamos
imagen a 320
J2=imread('imagen32-160-gris.bmp'); % visualizamos
imagen a 160
subplot(3,2,1),imshow(J); % visualizamos la imagen
grabada
subplot(3,2,2),imshow(J2); % visualizamos la imagen
grabada
[N, M]size(J)
[Rows, Cols]size(J2)
C = class(J) %Verificarel tipo de dato de cada
imagen
C2 = class(J2)
imfinfo('imagen32-320-gris.bmp') %Verificar datos de
cada imagen
imfinfo('imagen32-160-gris.bmp')
%creamos una imagen en escala de 64 bits en escala de
gray
I1 = zeros( 120,160,'uint64')
I2 = 255 * ones( 120,160,'uint64')
X=[I1 I2]
subplot(3,2,1),imshow(X); % visualizamos X
I3= imresize(X,[240 320])% le cambie de tamaño
subplot(3,2,2),imshow(I3); % visualizamos X
I4= imresize(X,[120 160])% le cambie de tamaño
subplot(3,2,3),imshow(I4); % visualizamos X
imwrite(I3,'imagen64-320-gris.bmp')
imwrite(I4,'imagen64-160-gris.bmp')
figure;
J=imread('imagen64-320-gris.bmp'); % visualizamos
imagen a 320
J2=imread('imagen64-160-gris.bmp'); % visualizamos
imagen a 160
subplot(3,2,1),imshow(J); % visualizamos la imagen
grabada
subplot(3,2,2),imshow(J2); % visualizamos la imagen
grabada
[N, M]size(J)
[Rows, Cols]size(J2)
C = class(J) %Verificarel tipo de dato de cada
imagen
C2 = class(J2)
imfinfo('imagen64-320-gris.bmp') %Verificar datos de
cada imagen
imfinfo('imagen64-160-gris.bmp')
2.Obtener 08 imágenes de internet diferentes de contenido:

•Una de 76,800 pixeles, de dimensiones 320x240 de escala de grises.


•La otra de 38,400 pixeles, de dimensiones 160x120 de escala de grises

Cada una de:


a.de 8bits.
b.de 16bits.
c.de 32bits.
d.de 64bits.

Nota. Las imágenes deben ser de mapas de bits y de formato BMP.


%creamos una imagen de internet en escala de 8 bits en
escala de gray
I = imread ('tigre_320.bmp')% imagen de 320x240
z= size(I)
I2 = rgb2gray(I)% conversion scala de grises
subplot(3,3,1),imshow(I);
I3= imresize(I2,[240 320])% le cambie de tamaño
subplot(3,3,2),imshow(I2);
I4= imresize(I2,[120 160])% le cambie de tamaño
subplot(3,3,3),imshow(I2);
imwrite(I3,'tigre-320-gris.bmp')
imwrite(I4,'tigre-160-gris.bmp')
% Para convertir cada uno de los pixeles de una imagen
a enteros sin signo de 8, 16, 32 o 64 bits:
E=uint8(I3) % convierte a 8 bits la imagen
E2=uint8(I4) % convierte a 8 bits la imagen
imwrite(E,'tigre_8-320b-gris.bmp')
imwrite(E2,'tigre_8-160b-gris.bmp')
figure;
J=imread('tigre_8-320b-gris.bmp'); % visualizamos
imagen a 320
J2=imread('tigre_8-160b-gris.bmp'); % visualizamos
imagen a 160
subplot(3,2,1),imshow(J); % visualizamos la imagen
grabada
subplot(3,2,2),imshow(J2); % visualizamos la imagen
grabada
C = class(J) %Verificarel tipo de dato de cada
imagen
C2 = class(J2)
d=imfinfo('tigre_8-320b-gris.bmp') %Verificar datos de
cada imagen
d2=imfinfo('tigre_8-160b-gris.bmp')
%creamos una imagen de internet en escala de 16 bits
en escala de gray

I = imread ('Shadowlands.bmp')% imagen


z= size(I)
I2 = rgb2gray(I)% conversion scala de grises
subplot(3,3,1),imshow(I);
I3= imresize(I2,[240 320])% le cambie de tamaño
subplot(3,3,2),imshow(I2);
I4= imresize(I2,[120 160])% le cambie de tamaño
subplot(3,3,3),imshow(I2);
imwrite(I3,'Shadowlands-320-gris.bmp')
imwrite(I4,'Shadowlands-160-gris.bmp')
% Para convertir cada uno de los pixeles de una imagen
a enteros sin signo de 8, 16, 32 o 64 bits:
E=uint16(I3) % convierte a 16 bits la imagen
E2=uint16(I4) % convierte a 16 bits la imagen
imwrite(E,'Shadowlands_16-320b-gris.bmp')
imwrite(E2,'Shadowlands_16-160b-gris.bmp')
figure;
J=imread('Shadowlands_16-320b-gris.bmp'); %
visualizamos imagen a 320
J2=imread('Shadowlands_16-160b-gris.bmp'); %
visualizamos imagen a 160
subplot(3,2,1),imshow(J); % visualizamos la imagen
grabada
subplot(3,2,2),imshow(J2); % visualizamos la imagen
grabada
C = class(J) %Verificarel tipo de dato de cada
imagen
C2 = class(J2)
d=imfinfo('Shadowlands_16-320b-gris.bmp') %Verificar
datos de cada imagen
d2=imfinfo('Shadowlands_16-320b-gris.bmp')
%creamos una imagen de internet en escala de 32 bits
en escala de gray

I = imread ('aesthetic.bmp')% imagen


z= size(I)
I2 = rgb2gray(I)% conversion scala de grises
subplot(3,3,1),imshow(I);
I3= imresize(I2,[240 320])% le cambie de tamaño
subplot(3,3,2),imshow(I2);
I4= imresize(I2,[120 160])% le cambie de tamaño
subplot(3,3,3),imshow(I2);
imwrite(I3,'aesthetic-320-gris.bmp')
imwrite(I4,'aesthetic-160-gris.bmp')
% Para convertir cada uno de los pixeles de una imagen
a enteros sin signo de 8, 16, 32 o 64 bits:
E=uint32(I3) % convierte a 32 bits la imagen
E2=uint32(I4) % convierte a 32 bits la imagen
imwrite(E,'aesthetic_32-320b-gris.bmp')
imwrite(E2,'aesthetic_32-160b-gris.bmp')
figure;
J=imread('aesthetic_32-320b-gris.bmp'); % visualizamos
imagen a 320
J2=imread('aesthetic_32-160b-gris.bmp'); %
visualizamos imagen a 160
subplot(3,2,1),imshow(J); % visualizamos la imagen
grabada
subplot(3,2,2),imshow(J2); % visualizamos la imagen
grabada
C = class(J) %Verificarel tipo de dato de cada
imagen
C2 = class(J2)
d=imfinfo('aesthetic_32-320b-gris.bmp') %Verificar
datos de cada imagen
d2=imfinfo('aesthetic_32-320b-gris.bmp')
%creamos una imagen de internet en escala de 64 bits
en escala de gray

I = imread ('house.bmp')% imagen


z= size(I)
I2 = rgb2gray(I)% conversion scala de grises
subplot(3,3,1),imshow(I);
I3= imresize(I2,[240 320])% le cambie de tamaño
subplot(3,3,2),imshow(I2);
I4= imresize(I2,[120 160])% le cambie de tamaño
subplot(3,3,3),imshow(I2);
imwrite(I3,'house-320-gris.bmp')
imwrite(I4,'house-160-gris.bmp')
% Para convertir cada uno de los pixeles de una imagen
a enteros sin signo de 8, 16, 32 o 64 bits:
E=uint16(I3) % convierte a 64 bits la imagen
E2=uint16(I4) % convierte a 64 bits la imagen
imwrite(E,'house_64-320b-gris.bmp')
imwrite(E2,'house_64-160b-gris.bmp')
figure;
J=imread('house_64-320b-gris.bmp'); % visualizamos
imagen a 320
J2=imread('house_64-160b-gris.bmp'); % visualizamos
imagen a 160
subplot(3,2,1),imshow(J); % visualizamos la imagen
grabada
subplot(3,2,2),imshow(J2); % visualizamos la imagen
grabada
Conversión de imagen de colores a escala de grises

5.Obtener 08 imágenes de internet diferentes de contenido:


•Una de 76,800 pixeles, de dimensiones 320x240 de color.
•La otra de 38,400 pixeles, de dimensiones 160x120 de color.

Cada una de:

a.de 8bits.
b.de 16bits.
c.de 32bits.
d.de 64bits.
%creamos una imagen de internet en escala de 8 bits a
color

I = imread ('antimalware.bmp')% imagen


z= size(I)
subplot(3,3,1),imshow(I);
title('Original');
I3= imresize(I,[240 320])% le cambie de tamaño
subplot(3,3,2),imshow(I);
title('320x240');
I4= imresize(I,[120 160])% le cambie de tamaño
subplot(3,3,3),imshow(I);
title('160x120');
imwrite(I3,'antimalware-320.bmp')
imwrite(I4,'antimalware-160.bmp')
% Para convertir cada uno de los pixeles de una imagen
a enteros sin signo de 8, 16, 32 o 64 bits:
E=uint8(I3) % convierte a 8 bits la imagen
E2=uint8(I4) % convierte a 8 bits la imagen
imwrite(E,'antimalware-320b.bmp')
imwrite(E2,'antimalware-160b.bmp')
figure;
J=imread('antimalware-320b.bmp'); % visualizamos
imagen a 320
J2=imread('antimalware-160b.bmp'); % visualizamos
imagen a 160
subplot(3,2,1),imshow(J); % visualizamos la imagen
grabada
subplot(3,2,2),imshow(J2); % visualizamos la imagen
grabada
C = class(J) %Verificarel tipo de dato de cada
imagen
C2 = class(J2)
d=imfinfo('antimalware-320b.bmp') %Verificar datos de
cada imagen
d2=imfinfo('antimalware-160b.bmp')
%creamos una imagen de internet en escala de 16 bits a
color

I = imread ('fondo.bmp')% imagen


z= size(I)
subplot(3,3,1),imshow(I);
title('Original');
I3= imresize(I,[240 320])% le cambie de tamaño
subplot(3,3,2),imshow(I);
title('320x240');
I4= imresize(I,[120 160])% le cambie de tamaño
subplot(3,3,3),imshow(I);
title('160x120');
imwrite(I3,'fondo-320.bmp')
imwrite(I4,'fondo-160.bmp')
% Para convertir cada uno de los pixeles de una imagen
a enteros sin signo de 8, 16, 32 o 64 bits:
E=uint16(I3) % convierte a 16 bits la imagen
E2=uint16(I4) % convierte a 16 bits la imagen
imwrite(E,'fondo-320b.bmp')
imwrite(E2,'fondo-160b.bmp')
figure;
J=imread('fondo-320b.bmp'); % visualizamos imagen a
320
J2=imread('fondo-160b.bmp'); % visualizamos imagen a
160
subplot(3,2,1),imshow(J); % visualizamos la imagen
grabada
subplot(3,2,2),imshow(J2); % visualizamos la imagen
grabada
C = class(J) %Verificarel tipo de dato de cada
imagen
C2 = class(J2)
d=imfinfo('fondo-320b.bmp') %Verificar datos de cada
imagen
d2=imfinfo('fondo-160b.bmp')
%creamos una imagen de internet en escala de 32 bits a
color

I = imread ('google-fotos.bmp')% imagen


z= size(I)
subplot(3,3,1),imshow(I);
title('Original');
I3= imresize(I,[240 320])% le cambie de tamaño
subplot(3,3,2),imshow(I);
title('320x240');
I4= imresize(I,[120 160])% le cambie de tamaño
subplot(3,3,3),imshow(I);
title('160x120');
imwrite(I3,'google-fotos-320.bmp')
imwrite(I4,'google-fotos-160.bmp')
% Para convertir cada uno de los pixeles de una imagen
a enteros sin signo de 8, 16, 32 o 64 bits:
E=uint32(I3) % convierte a 32 bits la imagen
E2=uint32(I4) % convierte a 32 bits la imagen
imwrite(E,'google-fotos-320b.bmp')
imwrite(E2,'google-fotos-160b.bmp')
figure;
J=imread('google-fotos-320b.bmp'); % visualizamos
imagen a 320
J2=imread('google-fotos-160b.bmp'); % visualizamos
imagen a 160
subplot(3,2,1),imshow(J); % visualizamos la imagen
grabada
subplot(3,2,2),imshow(J2); % visualizamos la imagen
grabada
C = class(J) %Verificarel tipo de dato de cada
imagen
C2 = class(J2)
d=imfinfo('google-fotos-320b.bmp') %Verificar datos de
cada imagen
d2=imfinfo('google-fotos-160b.bmp')
%creamos una imagen de internet en escala de 32 bits a
color

I = imread ('luces-neon.bmp')% imagen


z= size(I)
subplot(3,3,1),imshow(I);
title('Original');
I3= imresize(I,[240 320])% le cambie de tamaño
subplot(3,3,2),imshow(I);
title('320x240');
I4= imresize(I,[120 160])% le cambie de tamaño
subplot(3,3,3),imshow(I);
title('160x120');
imwrite(I3,'luces-neon-320.bmp')
imwrite(I4,'luces-neon-320.bmp')
% Para convertir cada uno de los pixeles de una imagen
a enteros sin signo de 8, 16, 32 o 64 bits:
E=uint64(I3) % convierte a 64 bits la imagen
E2=uint64(I4) % convierte a 64 bits la imagen
imwrite(E,'luces-neon-320b.bmp')
imwrite(E2,'luces-neon-160b.bmp')
figure;
J=imread('luces-neon-320b.bmp'); % visualizamos imagen
a 320
J2=imread('luces-neon-160b.bmp'); % visualizamos
imagen a 160
subplot(3,2,1),imshow(J); % visualizamos la imagen
grabada
subplot(3,2,2),imshow(J2); % visualizamos la imagen
grabada
C = class(J) %Verificarel tipo de dato de cada
imagen
C2 = class(J2)
d=imfinfo('luces-neon-320b.bmp') %Verificar datos de
cada imagen
d2=imfinfo('luces-neon-160b.bmp')
Cambio de tamaño:
Reducir cada imagen a la mitad
I =imread('imagen.ext');
Mostrar la imagen original, la imagen reducida,
y el resultado de imresize(I, 0.5) en una
ventana
subplot(3,1,1),
subplot(3,1,2),
subplot(3,1,3),
imshow(I1);imshow(I2);imshow(I3);

I = imread ('111.jpg')% imagen


z= size(I)
subplot(3,3,1),imshow(I);
title('Original');
I3= imresize(I,[240 320])% le cambie de tamaño
subplot(3,3,2),imshow(I);
title('imagen reducida');
I4= imresize(I,0.5)% le cambie de tamaño
subplot(3,3,3),imshow(I);
title('0.5');
I5= imrotate(I,60)
Subplot(3,3,4),imshow(I5);
Histograma:
Con todas las imágenes realizar lo siguente
Histograma de unaimagen:
I = imread('imagen.ext');
Mostrar la imagen original, el histograma, y el resultado de imhist(I) en una ventana
subplot(3,1,1), imshow(I1 ) ;
subplot(3,1,2), imshow(I2 ) ;
subplot(3,1,3), imshow(I3 ) ;

foto=imread('111.jpg');
imshow(foto)
rojo=foto(:,:,1);
verde=foto(:,:,2);
azul=foto(:,:,3);
figure()
imshow(foto)
figure()
imhist(foto)

Ecualizacion de una imagen:


%carga de la imagen
a=imread('111.jpg');
s=size(a);
%extraccion de planos
ar = a(:,:,1);
ag = a(:,:,2);
ab = a(:,:,3);
%1 3 5 2 2 2 0 1
%despliegue de planos
subplot(3,3,2), imshow(a), title ('imagen original')
subplot(3,3,4), imshow(ar), title ('plano rojo')
subplot(3,3,5), imshow(ag), title ('plano verde')
subplot(3,3,6), imshow(ab), title ('plano azul')
%obtencion del histograma 2D
hist2D = zeros(256);
for f = 1:s(1)
for c = 1:s(2)
ngR = ar(f,c);
histR(ngR + 1) = histR(ngR + 1)+1;
ngG = ag(f,c);
histG(ngG + 1) = histG(ngG + 1)+1;
ngB = ab(f,c);
histB(ngB + 1) = histB(ngB + 1)+1;
end
end
%vizualiacion del histograma
subplot(3,3,7), plot(histR)
subplot(3,3,8), plot(histG)
subplot(3,3,9), plot(histB)

AJUSTE DE IMAGEN:
clearvars;
im1 = imread('111.jpg');
imshow(im1);
im2 = imresize(im1,0.1);
figure
imshow(im2);
Como se observa se a reducido la imagen en un 90% de la imagen original.
CONVERSION DE IMAGEN DE COLOR A ESCALA DE GRISES:

 Con cada imagen mediante cada uno de los algoritmos de conversión de imágenes de
colores a escala de grises (Lightness, Luminosity y Average), realizar las conversiones.
 Mostrar en una ventana la imagen original, las 03 escalas de grises y el resultado de
aplicar rgb2gray(I) en Matlab:
subplot(3,2,1), imshow(I1);
subplot(3,2,2), imshow(I2);
subplot(3,2,3), imshow(I3);
subplot(3,2,4), imshow(I4);
subplot(3,2,5), imshow(I5);

a continuación el código en Matlab:

imagen = imread('111.jpg');
gray = rgb2gray(imagen);
subplot(1,3,1); imshow(imagen); title('imagen
original');
subplot(1,3,2); imshow(gray); title('imagen a escala
de grises');
subplot(1,3,3); imhist(gray); title('histograma de la
imagen');
BINARIZACION DE LA IMAGEN:

a = imread('C:\Users\asus\Desktop\111.jpg');
agray = rgb2gray(a); %convertimos a escala de grises
subplot(1,3,1)
imshow(a),title('imagen original')
subplot(1,3,2)
imshow(agray),title('imagen en grises')
alogical = im2bw(agray,0.6); %convertimos a binario
subplot(1,3,3)
imshow(alogical), title('imagen binarizada')
CASO Nº2: Binarizacion usando la negación del 0 y 1 (blanco y negro)

img = imread('111.jpg');
imshow(img);
bin_img = im2bw(img);
imshow(bin_img);
neg_bin_img = not(bin_img);
imshow([bin_img,neg_bin_img]);
imshow([img,bin_img,neg_bin_img]);

También podría gustarte