Citar
: La valoración de cada problema incluye el orden y claridad en el desarrollo de sus planteamientos.
Una imagen digitalizada (en escala de gris por simplicidad) no es más que una matriz que contiene en sus filas y columnas un número entero que representa el nivel de gris que debe tomar un pixel en la pantalla. Ejemplo:
7 3 4 4
23 0 7 0
0 6 23 23
23 3 0 9
A partir de esta representación se han creado una gran cantidad de algoritmos útiles para el procesado de las imágenes. El objetivo de esta parcial es aplicar algunos principios básicos utilizando el concepto de vectores y matrices:
1. Realice una función para cargar con números aleatorios en el rango (0-255), una matriz de N*N valores, con N=100. (10 puntos)
2. El ejemplo más simple de máscara de filtrado es la que promedia un entorno de 3 x 3 píxeles de la imagen. Se suman los 9 valores y se divide por 9. Los filtros más simples de desenfoque emplea estas máscaras, produciendo un efecto similar a los de paso bajo. De hecho se les llama filtros de paso bajo espacial así:
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
0 7 0
6 23 23
3 0 9
Ejemplo 1 0 7 0
6 23 23
3 0 9
Ejemplo 2
Observe que los números resaltados son los vecinos del pixel a ser promediado y el mismo se utiliza en el cálculo. Aplicando el filtro de paso bajo espacial a la imagen de ejemplo obtendríamos:
Ejemplo 1 S=0*1/9+7*1/9+0*1/9+6*1/9+23*1/9+23*1/9+3*1/9+0*1/9+9*1/9=7.
Ejemplo 2 S=23*1/9+23*1/9+0*1/9+9*1/9= 6.
(1) Crear una función que reciba la matriz original y aplique el filtro paso bajo generando una matriz resultante filtrada. (30 puntos)
Debe tenerse en cuenta que en ningún caso el valor mínimo de un píxel debe ser inferior a 0 ni el valor máximo debe superar a 255.
3. La imagen en niveles de grises, está en el rango de 256 colores (de 0 a 255). El histograma de la imagen consiste en una gráfica donde se muestra el número de píxeles de cada nivel de gris que aparecen en la imagen. Construir un vector que simule los histogramas de frecuencia para los valores en escala de gris de la imagen original de la siguiente manera:
a) Desarrolle la función que convierta la matriz original de N*N en un vector M1=N*N.
(5 puntos)
b) Ordene el vector M1. (10 puntos)
c) Suponga que un fragmento del vector M1 es: 4 4 4 4 4 4 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7
La secuencia anterior comienza con el número 4 repetido 10 veces, entonces los dos primeros valores de la secuencia convertida será “4 10” y así sucesivamente. Secuencia convertida: 4 10 5 4 6 4 7 3 Crear un nuevo vector M2 con la secuencia convertida. . (15 puntos)
4. Otra funcionalidad útil que debes implementar consistirá en modificar el brillo de la imagen para obtener una imagen clara que pueda ser correctamente interpretada, Para modificar el brillo de una imagen sencillamente se suma o resta al valor de cada píxel un valor correspondiente a la cantidad de brillo que se desea aumentar o disminuir, respectivamente. Debe tenerse en cuenta que en ningún caso el valor mínimo de un píxel debe ser inferior a 0 ni el valor máximo debe superar a 255. Mostrar por pantalla la matriz original y la matriz suavizada. (10 puntos)
5. Presentar cada opción del algoritmo en un menú ordenado por pantalla.
Una imagen digitalizada (en escala de gris por simplicidad) no es más que una matriz que contiene en sus filas y columnas un número entero que representa el nivel de gris que debe tomar un pixel en la pantalla. Ejemplo:
7 3 4 4
23 0 7 0
0 6 23 23
23 3 0 9
A partir de esta representación se han creado una gran cantidad de algoritmos útiles para el procesado de las imágenes. El objetivo de esta parcial es aplicar algunos principios básicos utilizando el concepto de vectores y matrices:
1. Realice una función para cargar con números aleatorios en el rango (0-255), una matriz de N*N valores, con N=100. (10 puntos)
2. El ejemplo más simple de máscara de filtrado es la que promedia un entorno de 3 x 3 píxeles de la imagen. Se suman los 9 valores y se divide por 9. Los filtros más simples de desenfoque emplea estas máscaras, produciendo un efecto similar a los de paso bajo. De hecho se les llama filtros de paso bajo espacial así:
1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9
0 7 0
6 23 23
3 0 9
Ejemplo 1 0 7 0
6 23 23
3 0 9
Ejemplo 2
Observe que los números resaltados son los vecinos del pixel a ser promediado y el mismo se utiliza en el cálculo. Aplicando el filtro de paso bajo espacial a la imagen de ejemplo obtendríamos:
Ejemplo 1 S=0*1/9+7*1/9+0*1/9+6*1/9+23*1/9+23*1/9+3*1/9+0*1/9+9*1/9=7.
Ejemplo 2 S=23*1/9+23*1/9+0*1/9+9*1/9= 6.
(1) Crear una función que reciba la matriz original y aplique el filtro paso bajo generando una matriz resultante filtrada. (30 puntos)
Debe tenerse en cuenta que en ningún caso el valor mínimo de un píxel debe ser inferior a 0 ni el valor máximo debe superar a 255.
3. La imagen en niveles de grises, está en el rango de 256 colores (de 0 a 255). El histograma de la imagen consiste en una gráfica donde se muestra el número de píxeles de cada nivel de gris que aparecen en la imagen. Construir un vector que simule los histogramas de frecuencia para los valores en escala de gris de la imagen original de la siguiente manera:
a) Desarrolle la función que convierta la matriz original de N*N en un vector M1=N*N.
(5 puntos)
b) Ordene el vector M1. (10 puntos)
c) Suponga que un fragmento del vector M1 es: 4 4 4 4 4 4 4 4 4 4 5 5 5 5 6 6 6 6 7 7 7
La secuencia anterior comienza con el número 4 repetido 10 veces, entonces los dos primeros valores de la secuencia convertida será “4 10” y así sucesivamente. Secuencia convertida: 4 10 5 4 6 4 7 3 Crear un nuevo vector M2 con la secuencia convertida. . (15 puntos)
4. Otra funcionalidad útil que debes implementar consistirá en modificar el brillo de la imagen para obtener una imagen clara que pueda ser correctamente interpretada, Para modificar el brillo de una imagen sencillamente se suma o resta al valor de cada píxel un valor correspondiente a la cantidad de brillo que se desea aumentar o disminuir, respectivamente. Debe tenerse en cuenta que en ningún caso el valor mínimo de un píxel debe ser inferior a 0 ni el valor máximo debe superar a 255. Mostrar por pantalla la matriz original y la matriz suavizada. (10 puntos)
5. Presentar cada opción del algoritmo en un menú ordenado por pantalla.