Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Contenedoras de dos dimensiones
1. Curso: Algoritmos y programación 3
NIVEL 6 – ESTRUCTURAS CONTENEDORAS DE DOS DIMENSIONES
COMPETENCIAS A DESARROLLAR:
Utilizar el concepto de matriz como elemento de modelaje, permitiendo agrupar
elementos del mundo en una estructura contenedora de dos dimensiones de
tamaño fijo.
Identificar los patrones de algoritmo para manejo de matrices, dada la
especificación de un método.
Utilizar el esqueleto del patrón de algoritmo y los pasos asociados como medio
para escribir un algoritmo para manipular una matriz.
RECURSOS:
Equipo de cómputo
Internet
Lenguaje de programación JAVA– Eclipse
INFORMACION INICIAL
En la vida diaria el concepto de conjunto ordenado de elementos tiene una gran
importancia.
Las matrices se usarán como contenedores para almacenar datos relacionados
(en vez de declarar como variables separadas cada uno de los elementos del
array).
Las matrices nos permitirán registrar conjuntos de datos.
Cada elemento de la matriz podrá ser accedido directamente por el nombre de la
matriz seguido de uno o más subíndices enteros, en función de la dimensión de la
matriz, encerrados entre corchetes así: m[0] [0]
2. MAPA CONCEPTUAL
EL CASO DE ESTUDIO
A continuación se indica un caso de estudio tomado del proyecto cupi2 universidad de los
Andes que permite ilustrar este tema:(Universidad de los Andes, programa de Ingeniería
de Sitemas y Computaciòn, 2010)
Enunciado
Se requiere construir una aplicación que permita la visualización de imágenes en formato
BMP.El formato BMP consiste en guardar la información del color de cada píxel que
conforma a la imagen.El color de un píxel está representado en el sistema RGB (RedGreen-Blue), en el cual el color se forma de la combinación de tres componentes (rojo,
verde y azul) cada uno de los cuales es representado por un número que indica la
proporción del color del componente en el color final.
En la aplicación se mostrará una imagen la cual puede ser de un ancho de máximo 400
píxeles y de un alto de máximo 300 píxeles. Al cargar una imagen, si está es de
dimensiones mayores a las máximas, se debe tomar solo la porción de la imagen
determinada por las dimensiones máximas.
También es posible cargar imágenes de dimensiones menores al de las dimensiones
máximas.
Además de mostrar la imagen. El programa debe ofrecer seis (6) métodos de
transformación de la imagen. Cada uno de estos métodos de transformación se aplica a la
imagen cuando se oprime el botón correspondiente.
3. Transformación 1: Negativo
Para calcular el negativo de una imagen calcularemos el color negativo de cada píxel.
Para ello debemos restar a cada componente 255 (máximo valor para un componente) y
tomar el valor de absoluto de dicha resta. Con los nuevos valores de los componentes
formamos el nuevo color.
Ejemplo: Para la imagen de ejemplo, el resultado de aplicar la transformación 1 es:
Transformación 2: Flip Vertical
Descripción: Sirve para invertir verticalmente una imagen. Para ello se intercambian las
columnas de píxeles de la imagen: La primera con la última, la segunda con penúltima,
etc.
Ejemplo: Para la imagen de ejemplo, el resultado de aplicar la transformación 2 es:
Transformación 3: Binarización
Descripción: Consiste en llevar los colores de la imagen a dos colores: Negro y Blanco.
Para ello se establece un umbral y los píxeles con colores que están por encima o igual al
umbral se cambian a blanco y por debajo se cambian a negro.
4. En este caso se sugiere el umbral como el color promedio de la imagen. Para calcular el
color promedio, de un grupo de píxeles se promedian cada uno de sus componentes y se
forma un nuevo color con dichos promedios como componentes.
Ejemplo: Para la imagen de ejemplo, el umbral sugerido es su valor de color promedio:
Transformación 4: Pixelamiento
Descripción: Para esta transformación se divide la imagen en pequeñas regiones de más
de un píxel, y se busca el color promedio para esa región (ver transformación3 para la
descripción del color promedio), para después cambiar el color de toda la región al color
promedio.
Las regiones deben ser de un alto y un ancho que sean divisores del ancho y alto de la
imagen total respectivamente.
En este caso buscaremos las dimensiones de la región como:
Ancho región: menor divisor mayor a uno del ancho de la imagen.
Alto región: menor divisor mayor a uno del alto de la imagen.
Ejemplo : Para la imagen de ejemplo, el resultado de aplicar la transformación 4 es:
5. Transformación 5: Escala de Grises
Descripción: Para convertir la imagen a grises, se promedian los componentes de cada
píxel y se crea un nuevo color donde cada componente (RGB) tiene el valor de dicho
promedio
Ejemplo: Para la imagen de ejemplo, el resultado de aplicar la transformación 5 es:
Transformación 6: Convolución
Descripción: La convolución consiste en operar para cada píxel, su región de píxeles
vecinos (incluyéndolo), con unos factores que se ingresan en una matriz cuadrada de
dimensión impar (para este ejemplo utilizaremos una matriz de 3x3). La dimensión de la
matriz de convolución define la región de píxeles vecinos.
La forma en que se opera la región de píxeles con esta matriz es:
El centro de la matriz coincide con el píxel que se esta procesando.
Cada píxel (en realidad cada componente del píxel) de la región se multiplica con su
factor correspondiente.
Se suman los resultados de estas multiplicaciones.
La sumatoria anterior se divide por la suma de los factores que fueron operados: Si el
píxel está cerca del borde de la imagen (tomando en cuenta la dimensión de la matriz de
6. convolución) no aplican todos los factores de la matriz (porque no todos tienen un píxel
correspondiente), sólo los que efectivamente se operaron.
El color que se crea con el resultado de las operaciones anteriores (que se hace para
cada componente) reemplaza al color del píxel original (el del centro).
Sin embargo puede darse el caso de que la suma de los factores sea 0: en ese caso no
se realiza la división. Esto puede dar origen a interesantes efectos como la detección de
bordes.
La operación de la imagen con la matriz de convolución debe hacerse sobre el mapa de
píxeles original y no acumular las transformaciones a píxeles hechas por operaciones
anteriores con la matriz.
Ejemplo: Con la siguiente matriz de convolución, el efecto obtenido es la suavización de
la imagen:
Requerimientos
R1 – Mostrar una imagen BMP
Nombre
Resumen
Se debe mostrar una imagen BMP de máximo 400x300 píxeles. Si la imagen es más grande se
debe solamente mostrar la esquina superior izquierda hasta ocupar el espacio disponible.
Entradas
Nombre del archivo que contiene la imagen
Resultados
La imagen BMP que es presentada en la pantalla
Nombre
R2 – Transformar la imagen
Resumen
A partir de la imagen presentada en pantalla, mostrar el resultado de aplicar seis
transformaciones a la misma. Estas transformaciones incluyen, el negativo de la imagen, el flip
horizontal, la binarización, el pixelamiento, escala de grises y convolución.
Entradas
Imagen Original antes de que se aplique el filtro
7. Algunas transformaciones requieren parámetros: para aplicar la binarización se necesita un umbral, para aplicar una
convolución es necesaria una matriz de convolución.
Resultados
La imagen después de que se aplicó el filtro
Modelo conceptual
PATRONES DE RECORRIDO