Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejercicios Matrices
Ejercicios Matrices
Para poder probar con imágenes reales los ejercicios que se plantean y comprobar
el resultado obtenido, se da el código de dos funciones, una para leer imágenes (cargarlas
de disco y almacenarlas en memoria en una matriz) y otra para guardarlas en disco.
Ambas funciones trabajan con imágenes en formato pgm (Portable Gray Map). Para
visualizar este tipo de imágenes en el entorno Linux puede utilizarse la aplicación xv.
En el caso de trabajar con Windows puede utilizarse el programa gratuito IrfanView, el
cual puede descargarse de la dirección http://www.iti.upv.es/~rllobet/prg
La función leer_imagen recibe como parámetros el nombre del fichero que contiene la
imagen, una matriz de enteros y dos punteros a enteros. Esta función leerá la imagen del
fichero especificado y almacenará la misma en la matriz imagen. Además almacenará
en las referencias ancho y alto las dimensiones de la imagen leída. Por último la función
devolverá un 1 si todo ha ido correctamente o un 0 en caso de que se haya producido
algún error durante la lectura (nombre de fichero incorrecto, fichero con formato
incorrecto o imagen demasiado grande).
5. Suavizar una imagen aplicando un filtro de media. Para ello, cada píxel (i,j) de la
nueva imagen se obtiene a partir de la media aritmética de los píxeles que se
encuentran en la imagen original en una submatriz de tamaño WxW centrada en
(i,j). A la hora de calcular la media no tener en cuenta los puntos de la submatriz
que queden fuera de la imagen original. El valor de W deberá ser un parámetro
más de la función.
6. Dada una imagen y una cadena de caracteres, crear otra imagen en la que se
“esconda” dicha cadena de caracteres. Para esconder el texto dentro de la
imagen utilizar el siguiente algoritmo:
- El primer píxel de la imagen se sustituye por un valor entero que indique la
longitud del texto.
- Los píxeles 10, 20, 30, ... , longitud_texto * 10 se sustituyen por cada uno de
los caracteres (su código ASCII).
Tened en cuenta que longitud_texto * 10 deberá ser menor que ancho * alto.