Image pgm

Solo disponible en BuenasTareas
  • Páginas : 7 (1535 palabras )
  • Descarga(s) : 0
  • Publicado : 5 de noviembre de 2011
Leer documento completo
Vista previa del texto
|
Efecto Promedio |
Creación de una imagen .pgm aleatoria. |
|
De la Rosa Orozco Elí Roberto |
07/03/2011 |

UAEMEX, Facultad de Ingeniería, División de Computación, Tratamiento de imágenes. |

NOMBRE DEL PROYECTO:
ImageIsa! 2011

REALIZÓ:
DE LA ROSA OROZCO ELÍ ROBERTO
CTA: 0424990 FIUAEMEX.

OBJETIVO:
Aplicación que crea una imagen .pgm de M x N con en niveles de grisL=28 y realiza el efecto promedio en ella.

HERRAMIENTAS:
* Lenguaje de programación Java.
* IDE JDeveloper 1.14.
* Formato de imagen .pgm
* Algoritmos GeneraEspejos, EfectoPromedio, TotalDePatrones y NumeroDePatron.

PLANTEAMIENTO:
Al analizar las especificaciones del proyecto requerido en primera instancia se investigó el formato de una imagen .pgm para conocer sus atributosy manera de crear dicha imagen, concluyendo que necesita de una cabecera de 4 renglones y después de la matriz representada por números aleatorios de 0 a 255 que indica el valor del píxel:

* P2: Palabra mágica que identifica a las imágenes .pgm.
* #Comentario: Comentario que se desee colocar empezando por un signo #.
* N M: N igual al número columnas de la imagen seguido de unespacio en blanco y M igual al número de columnas de la imagen.
* L: Número de niveles de grises de la imagen .pgm.
* MATRIZ (M) (N): Píxel aleatorio de 0 a 255.

Ya analizado el formato de una imagen .pgm se detectó el problema de los bordes de dicha imagen para poder implementar el efecto promedio, el cual se resolvió creando un algoritmo que genere 3 espejos de la imagen original loscuales son espejo derecho, espejo inferior y espejo inferior derecho el cual se implementó de la siguiente forma:

* Solicitar el número de renglones y columnas de la imagen .pgm original m(r)(c).
* Generar una nueva matriz llamada matriz espejo que proviene de duplicar a la matriz original me(2r)(2c).

* Primero se genera el espejo derecho de la imagen recorriendo la matriz originalpor renglón y al detectar que ya se llegó al límite de la matriz original regresa hacia el inicio del renglón para ir reflejando.

* Y para aprovechar la matriz espejo desde ella se generan los 2 espejos inferiores recorriendo también por renglones pero ahora de abajo hacia arriba.

* Así termina el algoritmo que genera espejos, cabe mencionar que esta matriz no tiene por qué imprimirsedebido a que solo se ocupa para poder trabajar el efecto promedio con los bordes, por lo tanto se implementa en memoria y cuando el efecto promedio termina solo utiliza la región de la imagen original escribiendo dicha región en un archivo resultante.

CÓDIGO FUENTE DE LA GENERACIÓN DE ESPEJOS:
/**
* Genera 3 espejos de una imagen .pgm aleatoria, espejo derecho, espejo inferior izquierdo yespejo inferior derecho.
* @param renglones Número de renglones de la matriz original aleatoria.
* @param columnas Npumero de columnas de la matriz original aleatoria.
*/
public void generaEspejos(int renglones,int columnas)
{
int contador; //Determina el límite de la matriz de espejos en la imagen.
int contadoraux1; //Determina el límite de columnas de lamatriz generada aleatoriamente.
int contadoraux2; //Determina el límite de renglones de la matriz generada aleatoriamente.
int i,j; //Sirven para recorrer las posiciones de la matriz de espejo.
//int [][]mEspejo; //Matriz espejo de la imagen generada aleatoriamente.
int rTamEspejo; //Número de renglones de la matriz espejo.
int cTamEspejo;//Npumero de columans de la matriz espejo.

/*Se determina el tamaño de la matriz espejo a partir de las dimensiones de la matriz generada aleatoriamente,
*simplemente duplicando sus dimensiones.*/
mEspejo = new int [2*renglones][2*columnas];
rTamEspejo = 2 * renglones;
cTamEspejo = 2 * columnas;

//Se inicializan los contadores....
tracking img