Está en la página 1de 7

RC1:

Ejercicio 3.1

1.Lectura de imagen (JPG) a formato RGB.

imagen = imread('imagen.jpg');
figure(1)
imshow(imagen)

2.Obtención de dimensiones de la imagen (alto y ancho)

[alto_r,ancho_r,m_rgb] = size(imagen);

3. Cálculo de valor de gris e Inicialización de matriz para almacenar la imagen en escala de grises.

rojo = imagen(:,:,1);
verde = imagen(:,:,2);
azul = imagen(:,:,3);

gris = 0.2989*rojo + 0.5870*verde + 0.1140*azul;


imagen_gris = uint8(gris);

4. Muestra la imagen en escala de grises resultante

figure(2)
imshow(imagen_gris)

1
Ejercicio 3.2

1. Leer una imagen en formato RGB.

imageFilePath = 'imagen2.jpg';
rgbImage = imread(imageFilePath);

2. Define valores para el ajuste de brillo (brightness ∈ [0; 1]) y el ajuste de contraste (contrast∈ [1; 2])

brightness = 0.5;
contrast = 1.5;

3. Utiliza el ajuste de brillo y contraste para transformar los valores de los pixeles de la imagen original. Para
ello, multiplica cada valor de pixel por el valor de contraste y luego agrega el valor de brillo multiplicado por
255.

adjustedImage = rgbImage * contrast + brightness * 255;

4. Asegúrate de que los valores de píxeles ajustados estén dentro del rango válido de [0, 255]. Utiliza las
funciones max y min para aplicar la limitación.

adjustedImage = max(0, min(255, adjustedImage));

5. Convierte la matriz resultante en valores de tipo uint8 para el formato adecuado de visualización.

adjustedImage = uint8(adjustedImage);

2
6. Muestra la imagen resultante con el brillo y contraste ajustados.

subplot(1, 2, 1);
figure(3)
imshow(rgbImage);
title('Imagen Original');
subplot(1, 2, 2);
figure(4)
imshow(adjustedImage);
title('Imagen con brillo');

Ejercicio 3.4

1. Leemos la imagen en formato RGB y definimos el numero de filas y columnas para la cuadricula de
subimagenes (2x2)

imagen = imread('imagen3.jpg');
numfil = 2;
numcol = 2;

2. Calcula las dimensiones de cada subimagen y redondeamos hacia el menor valor "hacia abajo".

Funcion-> floor

[alto, ancho, ~] = size(imagen);


subimg_fila = floor(alto / numfil);

3
subimg_columna = floor(ancho / numcol);

3.Creando matriz de subimagenes

subimagenes = cell(numfil, numcol);

4. Llenamos la matriz de subimagenes

for i = 1:numfil % 1 hasta 2


for j = 1:numcol %1 hasta 2
inicio_fila = (i - 1) * subimg_fila + 1;
fin_fila = i * subimg_fila; %Como ya se dividio la imagen en partes el
final es el ultimo recorrido
inicio_col = (j - 1) * subimg_columna + 1;
fin_col = j * subimg_columna;
subimagenes{i, j} = imagen(inicio_fila:fin_fila, inicio_col:fin_col, :);
end
end

5. Muestra las subimágenes en una cuadrícula en una nueva figura

figure; %Crear una nueva ventana grafica vacia

for i = 1:numfil
for j = 1:numcol
subplot(numfil, numcol, (i - 1) * numcol + j);
imshow(subimagenes{i, j});
end
end

Adicional: Ajustar el tamaño para mejor visualización

set(gcf, 'Position', get(0,'Screensize'));

4
5
imagen = imread('imagen.jpg');

[alto_r,ancho_r,m_rgb] = size(imagen);
rojo = imagen(:,:,1);
verde = imagen(:,:,2);
azul = imagen(:,:,3);

gris = 0.2989*rojo + 0.5870*verde + 0.1140*azul;


imagen_gris = uint8(gris);

Ejercicio 3.3

1. Utiliza la matriz ImageGris ∈ Rm×n de la Parte 2 como punto de partida.

imgGrisAu=zeros(alto_r+1,ancho_r+1);
imgGrisAu(1:end-1,1:end-1)= imagen_gris;

2. Agrega un relleno de ceros en el borde de la matriz anterior y define una nueva matriz ImageGrisAu ∈
R(m+1)×(n+1).

figure(5)
imshow(uint8(imagen_gris));

B=[1 0 -1 ; 1 0 -1 ; 1 0 -1];

1
3. Aplica una operacion de convolucion a la matriz ImageGrisAu utilizando una matriz filtro B ∈ R3×3.

imgGrisAuConv=conv2(imgGrisAu,B);
figure(6)
imshow(imgGrisAuConv)

También podría gustarte