Histograma
juan carlos
REGISTRO: 710140
PRACTICA NO. 3B
Sistemas de imagen
Jaime hueso
RESUMEN
LAS MATEMATICAS PARA ROTAR Y ESCALAR
Bien, empecemos porla escalación, proceso que es muy sencillo y que seguro a nadie le cueste nada asimilar. Para escalar una imagen tan solo tenemos que multiplicar esa imagen por una constante, por ejemplo por dos, siestamos hablando de una imagen 320x200 pixeles y escalasemos por dos tendríamos una imagen de 640x400 y si por ejemplo escalasemos la imagen por 0.5 tendríamos una imagen 160x100, fácil no?. Puesahora el código, supongamos que es cierto que tenemos una imagen en pantalla de 320x200 y deseamos escalarla, el código seria como sigue a continuación:
for( j = 0; j < 200; j++ )
{
nXAux = (int)(i * FactorEscalar);
nYAux = (int) (j * FactorEscalar);
if( nXAux >= 0 && nXAux < 320 && nYAux >= 0 && nYAux < 200 )
Pantalla[ (nYAux*320) + nXAux ] = Imagen[(j*320) + i];
}
Bueno, el código no necesita muchas explicaciones no?, pero tranquilos que si hay algún despistado lo explico encantado :)
El codigo recorre la imagen para cada i (que seria la X de laimagen) y cada j (la Y de la imagen) calcula un nuevo punto multiplicando (o dividiendo tambien es posible) estas variables por la constante FactorEscalar, que podra tomar valores con variosdecimales. Entonces, recorriendo toda la imagen y calculando la nueva posición de los puntos recorridos podemos aumentar el tamaño de una imagen o reducirla.
Ahora nos llega la parte a la rotación de laimagen, donde entra en juego el seno y el coseno, pero os prometo que no es nada complicado. Para rotar una imagen nos basamos en lo mismo de antes, vamos a recorrer la imagen y por cada punto de esta,vamos a calcular una nueva posicion, que vendra dada por los angulos que deseemos rotar la imagen. Para explicar el siguiente proceso os quiero comentar que si despues de esto no lo comprendeis os...
Regístrate para leer el documento completo.