Está en la página 1de 9

PARCIAL 1

INTEGRANTES: KEVIN JHOAN LOPEZ MUÑOZ

1098808905

JUAN MIGUEL BLANCO MEDINA

1057547066

DOCENTE: CHRISTIAM GUTIÉRREZ

GRUPO: E151

UNIDADES TECNOLOGICAS DE SANTANDER

PROCESAMIENTO DIGITAL DE IMÁGENES

BUCARAMANGA, 2020
NOTA: Se utilizó el número de cédula de Juan Miguel Blanco Medina

1) Desarrolle un script en Matlab que dada la imagen ‘trailer.jpg’, recorte la región del trailer,
y guarde el canal azul con su color respectivo de la imagen resultante en formato ‘png’. (1.0)

%% Punto 1:
clc,clear variables, close all
Im = imread('trailer.jpg');
Im(:,:,1) = 0;
Im(:,:,2) = 0;
ImRec = Im(296:590,192:850,:); % Imagen recortada.

imwrite(ImRec, 'soloTrailer.png');
figure()
imshow(ImRec)
title('SoloTrailer.png')

Figura 1

2) Dada la imagen resultante del punto anterior y utilizando Matlab, realice un submuestreo
con factor de muestreo: a) igual al segundo número de su cédula. b) igual al último número
de su cédula. (si es cero use el número que lo antecede) (0.6)

%% Punto 2:
% Segundo numero de la cedula 0, lo antecede un 1.
% La imagen queda igual a la original.
facMuestA = 1;
imSubA = ImRec( 1:facMuestA:end, 1:facMuestA:end, : );
% Ultimo numero de la cedula es 6
facMuestB = 6;
imSubB = ImRec( 1:facMuestB:end, 1:facMuestB:end, : );

figure()
imshow(ImRec)
title('Imagen punto 1.')
figure()
imshow(imSubA)
title(['Imagen submuestrada a ' num2str(facMuestA)])
figure()
imshow(imSubB)
title(['Imagen submuestrada a ' num2str(facMuestB)])

Figura 2

Figura 3

Figura 4
3) Dada la imagen R, obtenga una nueva imagen realizando la operación de intervalo de
umbral, con umbral p1=penúltimo número de su cédula multiplicado por 10 (si es cero use
el número que lo antecede). b) Obtenga una nueva imagen realizando la inversa. (0.7)

%% Punto 3:
R = [ 210 255 17 24;
77 112 190 161;
110 19 159 40;
14 48 25 221];
R = uint8(R);
% Seccion A, binarizar a 60
RBin = R;
menor60 = find (R < 60);
mayor60 = find (R >= 60);

RBin(menor60) = 0;
RBin(mayor60) = 255;
% Seccion B, matriz inversa a B.
Rinv = 255 - R;

figure()
subplot(3,1,1)
imshow(R)
title('Imagen R')
subplot(3,1,2)
imshow(RBin)
title('Imagen R Binarizada a 60')
subplot(3,1,3)
imshow(Rinv)
title('Imagen Inversa de R')

4) Escriba un código en Matlab que mediante una función que es ejecutada desde un script
principal, realice la operación de OR entre dos imágenes, incluso si son de diferente
resolución espacial. (1.3)
%% Punto 4:
ImSal = operacionOr(Im,ImRec);

function ImSal = operacionOr(Im1,Im2)

Im1 = rgb2gray(Im1);
Im1 = imbinarize(Im1); % Binariza la imagen por defecto.

Im2 = rgb2gray(Im2);
Im2 = imbinarize(Im2); % Binariza la imagen por defecto.

tam1 = size(Im1);
tam2 = size(Im2);

disp('El tamanio de la imagen 1: ')


disp(tam1)
disp('El tamanio de la imagen 2: ')
disp(tam2)

if ( tam1(1) ~= tam2(1) || tam1(2) ~= tam2(2))


Im1 = imresize(Im1,tam2);
end

ImSal = Im1 | Im2; % Operacion OR.


% Graficas de la funcion.
figure()
subplot(3,1,1)
imshow(Im1)
title('Imagen 1: Binarizada')
subplot(3,1,2)
imshow(Im2)
title('Imagen 2: Binarizada')
subplot(3,1,3)
imshow(ImSal)
title('Operacion OR')
end

Comentario: Las dos imagenes mostradas son de diferentes tamaños, la imagen 1 se le cambia el
tamaño y se hace la operación or ya que las dos tienen el mismo tamaño.

5) Escriba un código en Matlab que mediante manipulación de pixeles construya una imagen:
a) fondo amarillo y un objeto centrado lo más parecido a una estrella fugaz. b) Resolución
espacial de R40xP20. (R tercer número de su cédula y P el último número, si es cero use el
número que lo antecede). c) Calcule su histograma y explique por qué se tiene esa
distribución. (1.4)
%% Punto 5:
filas = 540;
colum = 620;
canales = 3;

h = -10 : 10;
estrella = zeros([filas,colum,canales],'uint8');
estrella(:,:,1) = 255;
estrella(:,:,2) = 255;

for i = 179 : 414


for j = 1 : colum
for k = 1 : length(h)
if i == j + h(k)
estrella(i,j,:) = 0;
end
end
end
end
figure()
imshow(estrella)

HISTOGRAMA:
filas = 540;
colum = 620;
canales = 3;

h = -10 : 10;
estrella = zeros([filas,colum,canales],'uint8');
estrella(:,:,1) = 255;
estrella(:,:,2) = 255;

for i = 179 : 414


for j = 1 : colum
for k = 1 : length(h)
if i == j + h(k)
estrella(i,j,:) = 0;
end
end
end
end

ImR = uint8( estrella(:,:,1) );


ImG = uint8( estrella(:,:,2) );
ImB = uint8( estrella(:,:,3) );

figure()
subplot(2,2,1)
imshow(estrella)
title('Imagen inicial')
subplot(2,2,2)
imhist(ImR)
title('Canal Rojo')
subplot(2,2,3)
imhist(ImG)
title('Canal Verde')
subplot(2,2,4)
imhist(ImB)
title('Canal Azul')
Justificación:
Porque se mantiene números pares y conserva una figura equilátera aproximada.

También podría gustarte