Indicaciones Tarea 3
Indicaciones Tarea 3
Indicaciones Tarea 3
Y T ECNOLOGÍA - UTEC
Tarea 3
Fecha de inicio: 25 de Mayo, 2022
Fecha de entrega: 12 de Junio, 2022
Indicaciones generales
3. Revisa bien lo que entregas, aunque en esta oportunidad podrás entregar ilimi-
tadas veces la tarea, la última enviada será la evaluada.
5. Es posible que hayas subido tu entrega pero hayas modificado algo que no se
debió en el template. En ese escenario, Gradescope te mostrará algunos mensajes
de error. Puedes ver un ejemplo de esto en el anexo 7.
Gradescope
2. Al finalizar, solo subir el archivo solution.py (NO cambiar el nombre del archivo
y NO comprimirlo).
1
Programación 1 (1100) – Tarea 3 2
3. Cada pregunta tiene diversos casos de prueba. Para obtener la nota completa en
una pregunta, el algoritmo debe obtener la respuesta correcta en dichos casos de
prueba.
Indicaciones específicas
2. Ustedes deben escribir dentro de la sección y a la misma altura de donde esta es-
crito "Código comienza aquí". Además, no deben modificar nada debajo de "Código
acaba aquí". Recuerden tener cuidado con las indentaciones.
3. Los input del ejercicio se encuentran en la plantilla. Recuerden usar estas vari-
ables para resolver el ejercicio.
5. La respuesta de los ejercicios debe ser retornada en una lista de tres dimensiones,
el mismo formato de imágenes vistas en clase de matrices gráficas, según se en-
cuentra especificado en la plantilla otorgada.
6. Para resolver esta tarea van a tener que utilizar las funciones leer_imagen y
guardar_imagen con el objetivo de convertir la imagen en formato BMP a una
lista tridimensional y de una lista tridimensional a una imagen en formato BMP.
CS UTEC
Programación 1 (1100) – Tarea 3 3
Se solicita que realicen cambios a la imagen original para que se vea de distintas for-
mas. Por lo cual en cada pregunta se implementarán diferentes filtros que modifiquen
la imagen original.
CS UTEC
Programación 1 (1100) – Tarea 3 4
Para este ejercicio se va a hacer un filtro de forma circular. Para ello, se necesita que el
círculo se encuentre en el centro de la imagen con coordenadas Cx, Cy. Para hacer la
forma circular deben de utilizar la fórmula
2
2 2 h
( j − Cx ) + (i − Cy ) < (1)
2
Cx = 360, Cy = 360.
Para calcular si un pixel cualquiera cae dentro del círculo, debemos ver su posición,
i = 200, j = 120, y al reemplazar en la fórmula:
2
2 2 720
(120 − 360) + (200 − 360) <
2
CS UTEC
Programación 1 (1100) – Tarea 3 5
Al ser cierta la afirmación podemos indicar que el pixel ubicado en i = 200, j = 120
cae dentro del círculo, por lo que el pixel debe tener su color original. Si hubiese sido
falsa la afirmación debería de tener el color negro en formato RGB(0,0,0).
El objetivo de aplicar este filtro es rotar la imagen verticalmente por lo que cualquier
pixel que se encuentre en la posición de abajo debería de ir arriba y los que están en
la posición de arriba deberían de ir abajo. Además, a este filtro también se le tiene
que cambiar del formato RGB (rojo, verde, azul) al formato BGR (azul, verde, rojo).
Es decir, los colores que se encuentran en la posición R pasan a la posición B y los
colores que se encuentran en la posición B pasan a la posición R. Solo los colores que
se encuentran en la posición G mantienen su posición.
Por ejemplo:
[235, 45, 67] → [67, 45, 235] (2)
CS UTEC
Programación 1 (1100) – Tarea 3 6
Para este ejercicio, se requiere que luego de aplicar el filtro se tenga una imagen con
tonalidad medio violeta. Para obtener esta tonalidad se tienen que modificar los val-
ores del píxel en base a los valores originales. Y para lograr dicha tonalidad tienen que
utilizar las siguientes fórmulas y reemplazarlos con los valores de la lista tridimen-
sional original:
Para que el filtro sea válido, deben de redondear los valores obtenidos a un entero
utilizando la función round. Tengan en consideración que si el valor es mayor a 255
(valor máximo en RGB), saldrá un error. En otras palabras, si esos valores llegan a ser
de la siguiente forma:
R > 255, G > 255, V > 255 (3)
van a estar pintando un pixel con un color que no existe ya que el formato RGB se
encuentra en un rango [0, 255]. Por esa razón, se tienen que asegurar no pasar ese
valor máximo que es 255.
CS UTEC
Programación 1 (1100) – Tarea 3 7
CS UTEC
Programación 1 (1100) – Tarea 3 8
Apéndices
A. Ejemplos Gradescope
CS UTEC
Programación 1 (1100) – Tarea 3 9
CS UTEC
Programación 1 (1100) – Tarea 3 10
B. Template
1 import imageio
2 import numpy as np
3
17
26
27 class Solution :
28
33
41
CS UTEC
Programación 1 (1100) – Tarea 3 11
49
57
58
62 if __name__ == ’ __main__ ’:
63 s = Solution ()
64 print ( " Pregunta #1: " )
65 guardar_imagen ( ’ negativo . bmp ’ ,s . aplicar_negativo () )
66 print ( " Pregunta #2: " )
67 guardar_imagen ( ’ corte_circular . bmp ’ ,s . a p l i c a r _ c o r t e _ c i r c u l a r () )
68 print ( " Pregunta #3: " )
69 guardar_imagen ( ’ reflejo_BGR . bmp ’ ,s . a p l i c a r _ r e f l e j o _ v e r t i c a l _ B G R () )
70 print ( " Pregunta #4: " )
71 guardar_imagen ( ’ sepia_mod . bmp ’ ,s . a p l i c a r _ s e p i a _ m o d i f i c a d o () )
CS UTEC