lunes, 21 de mayo de 2012




Procesamiento de Imágenes

Es el procesamiento digital de imágenes que se distinguen en dos niveles en General.

Imágenes de bajo nivel. Las cuales usan poco conocimiento respecto a imágenes yllevan 4 pasos adquisición de la imagen, pre-procesamiento, segmentación y clasificación.

Imágenes de alto nivel. Estas tienen la capcidad de tomar decisionbes conr especto a las imagenes y sus objetos

El procesamiento de imágenes esta dado por un conjunto de operaciones llevadas a cabo sobre las imágenes de realizar mediciones cuantitativas para poder describirlas es decir, extraer ciertas características que permitan mejorar la imagen.

El poder realizar medida sobre las imágenes requiere de caracteristicas bine datalladas de los bordes y limites de su aparencia visual.

Las herramientas para la adquisición de  imágenes transforman la imagen visual de un objeto fisico y sus características intrínsecas en un conjunto de datos organizados para procesarla.

Filtros

Existen filtros para la eliminación de ruido en imágenes, Esto se detecta en un electrocardiograma como los cuadros que aparecen en el fondo de la imagene, asi como un pixel.

Por eso se desarrollaron algoritmo parala restauracion de imagenes.

Filtro gaussiano

Este filtro tienen el inconveniente de que, además de remover el ruido, empana la imagen ocasionando perdida de los detalles mas finos. Es comúnmente utilizado en aplicaciones de detección de bordes y análisis de escala espacial.

Filtro mediana (rango de vecindades)

El objetivo del filtro mediana es reducir el empañamiento de los bordes. Este filtro reemplaza el pixel actualmente analizado en la imagen por la mediana del brillo con respecto a los vecinos mas cercanos.

Contraste.

La técnica de realce de contraste tiene como objetivo mejorar la calidad de las imágenes bajo ciertos criterios subjetivos del ojo humano. Normalmente esta técnica es utilizada como una etapa de pre-procesamiento para sistemas de reconocimiento de patrones.

El contraste entre dos objetos se puede definir como la razón entre sus niveles de gris medios.

Filtro paso bajo.

El filtro paso bajo es un tipo de filtro de suavizado empleado para remover ruido de alta frecuencia espacial en una imagen digital. Este ruido es generalmente introducido en la imagen durante el proceso de conversión de analógico a digital como un efecto secundario de la conversión física de patrones de energía luminosa a patrones eléctricos.

Filtro paso alto.

De manera general, el filtro paso alto opera de la misma manera que el filtro paso bajo, mediante el análisis de los valores de cada pixel y cambiando estos de acuerdo a los valores de los pixeles vecinos.

Filtro SUSAN (Smallest Univalue Segment Assimilating Nucleus)

Este algoritmo es para la eliminación de ruido preserva la estructura de la imagen alisando únicamente sobre los píxeles que se encuentran dentro de la región del pixel analizado (pixel central) tomando un excedente del promedio de los pixeles en la localidad que cae dentro del USAN (Univalue Segment Assimilating Nucleus).

Operaciones para la detección de errores

La detección de esquinas y líneas se basa en los operadores de detección de bordes, mismo que mediante el cálculo de primeras y segundas derivadas permiten determinar puntos de principal importancia para poder realizar las mediciones necesarias.

Al hablar de detección de bordes, el termino sugiere que la aplicación de un algoritmo con este propósito dará como resultado un contorno.



ANIMACION POR COMPUTADORA

La animación por computadora es la simulación de un movimiento creado por la muestra de imágenes consecutivas. Se puede definir por algún formato de presentación de información digital en movimiento través de una secuencia de imágenes.

También existe la animación en 3D con la cual se han desarrollado muchs peliculas y caricaturas en los últimos anos.

Tambien se pueden desarrollar partes de la película por separada y no todo en un soilo frame.

Dependiendo de como se desarrolle la película y el tamaño de los objetos es la credibilidad de la misma.



Técnicas de animación

Algunas técnicas en la animación tradicional son la animación en acetatos, la animación en cuadros y la animación en sprite.

Animación Basada en Cuadros.

La animación basada en cuadros es una de las mas utilizadas. Una película contiene 24 cuadros por segundo generalmente, las caricaturas tienen solamente 12. Para hacer una secuencia se van filmando las imágenes cuadro por cuadro y luego estos se unen para formar la animación. Es posible formar bibliotecas de movimientos de cada parte del cuerpo de la animación para de esta forma combinarlas y hacer animaciones diferentes.

Animación basada en sprites.

Sobre la aniumacion en Sprites, esta se refiere a animaciones de objetos sobre fondos estáticos, es decir, lo que cambia son los personajes. Esta técnica es aplicada en los videojuegos. Con el paso del tiempo, se han creado nuevas técnicas como key framing, rotoscopiado, motion control y wavelets.

Key framming

Se refiere a establecer posiciones en puntos específicos de tiempo en animación y la parte intermedia la obtiene la computadora por medio de interpolación matemática. Es necesario hacer un key frame para cada control en cada nivel de la jerarquía del modelo.

Rotoscopiado.

Consiste en una forma mas elaborada de key framming. En este caso se obtiene la posición y el ángulo de los puntos clave de imágenes reales y se trata de hacer converger los modelos en computadora con ellos.

Motion Control.

La técnica de Motion control es muy utilizada actualmente, sobre todo en sets virtuales y en el cine. Consiste en obtener posiciones clave de manera automática a partir de un actor real por medio de dispositivos que se conectan a su cuerpo.

Wavelets.

Significa “pequeñas ondulaciones”. Esta técnica permite que en una sola imagen se compriman una gran cantidad de datos para que al acercarse a ella, se vayan viendo los detalles.

Técnicas de pixar.

El proceso que utiliza pixar para crear animaciones se compone de cuatro etapas principales: Desarrollo (crear guion de la historia), preproducción (se direccionan los retos técnicos), producción (creación de la película) y post producción (pulir los últimos detalles). El proceso es largo.

--------------------------------------------------------------------------------------------------------------------------

Galleta de Gengibre









jueves, 17 de mayo de 2012


Usos de la Graficación

 Medicina

La primera gran revolución en el terreno de la imagen médica vino de la mano de Wilhelm Conrad von Röntgen (1845-1923) al descubrir los rayos X el 8 de noviembre de 1895. La principal característica de este nuevo descubrimiento era que hacía visible el interior de los objetos, lo que desembocó en un aumento radical de la investigación de las imágenes anatómicas. Aprovechando la radiación de los rayos X (notar que los rayos X son una forma de radiación electromagnética) se consiguieron plasmar, a principios del s.XX, las primeras imágenes del interior del cuerpo humano, siendo la primera la de la mano de la esposa de Röntgen.




La ecografía, está muy ligada a un instrumento bélico, el sonar, desarrollado por científicos franceses durante la Segunda Guerra Mundial. Se trata de una técnica no invasiva basada en la utilización de ultrasonidos (ondas sonoras de alta frecuencia) para estudiar la estructura de los tejidos, diferenciando tejidos sanos de tejidos patológicos. Un aparato llamado transductor emite estos ultrasonidos sobre una zona del cuerpo. Al rebotar en la zona bajo estudio, los ultrasonidos se reflejan formando un eco que es recogido por el propio transductor. Finalmente, una computadora lee el eco captado por el transductor y lo convierte en imagen. Las primeras investigaciones utilizando ultrasonidos en la medicina datan de los años cincuenta y, al no utilizar radiación ionizante (de ahí lo de no invasiva), su uso se convertiría rápidamente en una rutina dentro de la exploración en ginecología o durante el embarazo, extendiéndose a, por ejemplo, exámenes de mama o próstata. En la última década se ha avanzado notablemente en este campo, pudiéndose, en tiempo real y en color, visualizar el flujo sanguíneo de un vaso. Como ejemplo, las siguientes imágenes muestran la ecografía de un feto y un equipo para ecografía médica Toshiba SSA-270A.

Otros campos y técnicas también muy estudiados y/o desarrollados son:

La optoimagen, que emplea luz en el diagnóstico (mención especial para la Tomografía de Coherencias Óptica u OCT). Ejemplo de OCT:



La Imagen Seccional por Resonancia Magnética (MRI funcional o fMRI), que persigue el desarrollo de un mapa cerebral (cartografía cerebral) mediante la detección de cambios de contraste causados por fluctuaciones del flujo sanguíneo y de la oxigenación de la hemoglobina, debido a estímulos externos visuales, auditivos, etc .

Educación

A menudo, se utilizan como instrumentos de ayuda educativa modelos de sistemas físicos, financieros y económicos, los cuales se generan por computadora. Modelos de sistemas físicos, sistemas fisiológicos, tendencias de población o equipo, pueden ayudar a los estudiantes a comprender la operación del sistema. En el caso de algunas aplicaciones de capacitación, se diseñan sistemas especiales, como los simuladores para sesiones de práctica o capacitación de capitanes de barco, pilotos de avión, operadores de equipo pesado y el personal de control de tráfico aéreo. Algunos simuladores no tiene pantallas de video; por ejemplo, un simulador de vuelo que sólo tiene un panel de control como instrumento de vuelo. No obstante, la mayor parte de los simulado-res cuenta con pantallas gráficas para la operación visual.

Entretenimiento


Es muy común utilizar métodos de gráficas por computadora para producir películas, videos musicales y programas de televisión. En ocasiones, se despliegan sólo imágenes gráficas y otras veces, se combinan los objetos con los actores y escenas en vivo. Por ejemplo, en una escena gráfica creada para la película Start Treck - The Wrath of Khan, se dibujan en forma de armazón el planeta y la nave espacial y se sonbrean con métodos de presentación para producir superficies sólidas. Al igual que pueden aparecer personas en forma de armazón combinadas con actores y una escena en vivo. Los videos musicales aprovechan las gráficas de muchas maneras, se pueden combinar objetos gráficos con acción en vivo, o se pueden utilizar técnicas de procesamiento de imágenes para producir una transformación de una persona o un objeto en otro (morphing).


Publicidad

La mejor publicidad gráfica siempre ha sido venerada y elevada a la categoría de arte. Propuestas creativas, fotografía, tecnología aplicada a la imagen, etc... todos son ingredientes de una fórmula donde existe un componente especial. El mensaje.

Sin duda el elemento quizás más importante de toda pieza artística y creativa, y como no, también de los anuncios de la publicidad gráfica donde el objetivo principal se fundamente en conseguir la forma más eficaz de transmitirlo sin necesidad apenas de recurrir a las palabras.

sábado, 28 de abril de 2012


Unidad IV

Como agregar un sombreado a un polígono en OpenGL

Es el método que utiliza OpenGL para rellenar de color los polígonos. Se especifica con la función glShadeModel. Si el parámetro es GL_FLAT, ogl rellenará los polígonos con el color activo en el momento que se definió el último parámetro; si es GL_SMOOTH, ogl rellenará el polígono interpolando los colores activos en la definición de cada vértice.

Este código es un ejemplo de GL_FLAT:

glShadeModel(GL_FLAT);

glBegin(GL_TRIANGLES);  

  glColor3f(1.0f, 0.0f, 0.0f);  // activamos el color rojo

glVertex3f(-1.0f, 0.0f, 0.0f);

glColor3f(0.0f, 1.0f, 0.0f);  // activamos el color verde

 glVertex3f(1.0f, 0.0f, 0.0f);

 glColor3f(0.0f, 0.0f, 1.0f);  // activamos el color azul

glVertex3f(0.0f, 1.0f, 0.0f);

glEnd();



Técnicas de sombreado clásicas y avanzadas

Clásicas: Iluminación local.

Luces que no son extensas, como las reales, sino inextensas, puntuales. Y, por añadidura, se relacionan con los objetos como mónadas aisladas, sin tener en cuenta la interacción entre ellos. Esto explica lo artificioso de muchas de las técnicas que se describirán más adelante y que buscan compensar estas limitaciones.

Cálculos de iluminación por vértices

Para aplicar iluminación a un objeto necesitamos asociar un vector normal a cada vértice del objeto. Cuando tenemos la normal calculada tenemos que normalizarla, o sea, dividir ese vector por su propio modulo para que sea unitario, pero también podemos hacer que se encargue la OpengGl activando la normalización con el comando glEnable GL_NORMALIZE o desactivarla con glDisable GL_NORMALIZE.

El usar GL_NORMALIZE dependerá de nuestra aplicación ya que si forzamos a que sea OpenGl el que las utilice se ralentiza por que le estamos obligando a hacer mas cálculos de los que debe.

Para definir las normales en opengl utilizaremos la función glNormal3f(X,Y,Z) por ejemplo para definir una cara con 4 vértices la definiremos de la siguiente manera:

GlBegin GL_QUADS

glNormal3f nX,nY,nZ

glvertex3f x,y,z

glvertex3f x,y,z

glvertex3f x,y,z

glvertex3f x,y,z

glEnd

Renderizado en Tiempo real

La idea fundamental del procesado en tiempo real es que todos los objetos deben ser descompuestos en polígonos. Estos polígonos serán descompuestos a su vez en triángulos. Cada triángulo será proyectado sobre la ventana bidimensional y rellenado con los colores adecuados para reflejar los efectos de la iluminación, texturas, etc. Una vez se han generado los triángulos, en la pipeline existen dos partes claramente diferenciadas: una primera etapa operaciones realizadas sobre cada uno de los vértices, y después de que éstos se proyecten sobre la ventana, entonces comienza una segunda fase de cálculos realizados para cada pixel cubierto por triángulos.

Realistas: iluminación global

Son aquellos en los que se considera que la intensidad de luz en un punto de la superficie de un objeto se debe a las fuentes luminosas y al resto de los elementos existentes en la escena.

Realistas: Iluminación global

Son sencillos y rápidos pero proporcionan imágenes muy simples, que no representan adecuadamente el modo en que la luz ilumina los objetos y los espacios. Esto no quiere decir que no sean útiles para un gran número de casos, y es muy importante calibrar adecuadamente que es lo que se necesita, pues puede muy bien ocurrir que un cálculo local proporcione imágenes relativamente esquemáticas pero más adecuadas para la representación de un proyecto.





Trazado de rayos

El trazado de rayos computa la interacción de la luz desde un punto de vista determinado y es particularmente adecuado para superficies reflectantes. Puede utilizarse como propiedad especifica de un determinado material. Se traza un rayo desde la posición del observador a través de cada uno de los píxeles del plano de proyección (una de las ventajas del raytracing es que los rayos que se procesan son sólo los rayos que parten del observador ),

Radiosidad

Está basado en principios generales que se pueden encontrar en un manual general sobre rendering. En el estadio inicial la escena consta de dos tipos de objetos: objetos que emiten luz y objetos que reciben luz. A partir de aquí, en una primera vuelta, se computa la luz que recibe cada objeto o, en una aproximación más exacta, cada parte de un objeto, según una subdivisión cuya densidad puede precisarse en sucesivas aproximaciones.

Cálculos de iluminación por pixel

La iluminación por píxel en tiempo real es una tecnología revolucionaria ofrecida como primicia por NVIDIA Shading Rasterizer. La iluminación dinámica a nivel de píxel libera a los desarrolladores de las restricciones de otros sistemas de iluminación y pone a su alcance toda una gama de sofisticados efectos. Antes de que el color final del píxel sea decidido, un cálculo de iluminación debe ser computado para sombrear a los píxeles basados en alguna luz que puede estar presente en la escena.

Alto Acabado

Sombreado Constante o plano. Un cálculo para todo el polígono. Obtenemos una intensidad que aplicamos a un conjunto de puntos de un objeto (p.ej. todo un triángulo). Aceleramos el proceso de síntesis. Correcto si se verifica: Fuente de luz en el infinito. Observador en el infinito. El polígono representa una superficie plana real del objeto que se modela y no es una aproximación de un objeto curvo.

Sombreado Constante o Plano

Obtenemos una intensidad que aplicamos a un conjunto de puntos de un objeto

*Aceleramos el proceso de síntesis

*Correcto si se verifica.

* Fuente de luz en el infinito

*Observador en el infinito

Modelo de Reflexión Phong

El modelo de reflexión de Phong es eficiente y suficientemente aproximado a la realidad física para producir buenas imágenes, bajo una variedad de condiciones de luz y propiedades de materiales. Apoya los tres tipos de interacciones material-luz: ambiente, difusa y especular. Si se tiene un conjunto de fuentes puntos, con componentes independientes para cada uno de los tres colores primarios para cada uno de los tres tipos de interacciones material-luz.

Ray Tracing

En muchas formas, ray tracing es una extensión al enfoque de rendering con un modelo de iluminación local. Está basado en la observación previa que, de los rayos de luz saliendo de una fuente, los únicos que contribuyen a la imagen son aquellos que entran al lente de la cámara sintética y pasan por el centro de proyección.

Buffer Stencil.

Stencill Buffer es una memoria intermedia que analiza y actualiza píxeles (con sus operaciones) junto con “depth buffer” o buffer de profundidad. Añade planos de bits adicionales para cada píxel además de los bits de color y profundidad.



Stencil buffer es similar al buffer de profundidad en que los dos son colección de planos de bit que no se pueden mostrar. Del mismo modo que el buffer de profundidad asocia a cada píxel de la ventana un valor de profundidad, el stencil buffer asocia su propio valor a cada píxel mostrado. Cuando el buffer de profundidad esta activado los valores de profundidad son usados para aceptar o rechazar fragmentos, del mismo modo los valores de Stencil buffer son usados para aceptar o rechazar fragmentos.

Buffer de Acumulación

Normalmente se usa un buffer de acumulación para unir las 2 imágenes.

Fuentes de Luz

La luz puede dejar una superficie mediante dos procesos fundamentales:

            Emisión propia

            Reflexión

Normalmente se piensa en una fuente de luz como un objeto que emite luz solo mediante fuentes de energía internas, sin embargo, una fuente de luz, como un foco, puede reflejar alguna luz incidente a esta del ambiente.

Fuentes de Luz

La luz puede dejar una superficie mediante dos procesos fundamentales:

* Emisión propia

* Reflexión

Luz Ambiente

La luz ambiente ilumina por igual todas las zonas en sombra para simular el efecto de interacción entre objetos que hace que las partes en sombra de los objetos queden parcialmente iluminadas.

Spotlights (direccionales)

Los spotlights se caracterizan por un rango delgado de ángulos por los cuales se emite luz. Se puede construir un spotlight sencillo de una fuente de punto limitando los ángulos de donde la luz de la fuente se puede ver. Se puede usar un cono cuyo ápice está en ps, apuntando en la dirección ls, y cuyo ancho está determinado por el ángulo θ.

martes, 17 de abril de 2012


¿Como se grafica un circulo y una elipse?

Debido a que la elipse y la circunferencia son figuras simétricas el algoritmo genera los vértices del primer cuadrante solamente. Los vértices del segundo cuadrante se crean aplicando simetría axial respecto a los vértices del primer cuadrante, los vértices del tercer cuadrante con respecto a los del segundo y los vértices del cuarto cuadrante con respecto a los del tercero.

Las ecuaciones utilizadas son las paramétricas polares


Como la circunferencia es un caso particular de la elipse (cuando radioX = radioY) a partir de este momento hablaremos solamente de la elipse.

Este algoritmo consiste en dividir la elipse en cuatro partes iguales y a cada una agregarle la cantidad de vértices (pasos) que se indiquen. El punto de partida es crear cuatro vértices los cuales están situado en los ejes del plano XY a la distancia del radio correspondiente al eje, partiendo siempre del origen de coordenadas, por lo que la elipse siempre se crea en el origen de coordenadas y en el plano XY. Si se desea desplazar del origen de coordenadas entonces hay que aplicarle una transformación a cada vértice[1].

En la figura 1 se muestra una elipse con cero pasos.


Fig 1. El cuadrado amarillo formado por los cuatro vértices es la elipse formada cuando la cantidad de pasos es cero. La elipse rosada es otra que tiene el mismo radio pero usando un método adaptativo, esta se muestra como referencia solamente.

Si la cantidad de pasos es uno entonces se divide 90º / 2 y este va a ser el ángulo del vértice agregado en el primer cuadrante. Una vez obtenido el ángulo se evalúan las ecuaciones para ese ángulo y la posición obtenida es la del vértice nuevo. En el resto de los cuadrantes se calcula la posición del vértice a través de simetría para evitar los cálculos. Este caso puede observarse en la figura 2.

Fig 2. El polígono amarillo es el obtenido cuando la cantidad de pasos es uno. La elipse rosada tiene el mismo radio pero usando un método adaptativo, esta se muestra como referencia solamente.

Pseudocódigo

Entradas

float radioX
float radioY
byte s // Cantidad de pasos

Salidas

La lista de vértices y las coordenadas de textura de cada vértice

A continuación aparece el pseudocódigo utilizado por el algoritmo:

Crear una lista de vértices (vacía)
Agregar a la lista el vértice para el ángulo cero que está situado en la coordenada (radioX, 0, 0)
Si la cantidad de pasos es cero Entonces
Agregar los tres vértices restantes (ver fig 1):
o    (0, radioY, 0)
o    (-radioX, 0, 0)
o    (0, -radioY, 0)
Si no Entonces
Crear una constante
para el incremento del ángulo de rotación donde s es la cantidad de pasos.
Crear una variable aa que indica el valor del ángulo de rotación actual
Mientras aa sea menor que 90º
Calcular la posición del nuevo vértice usando como ángulo aa
Agregar el nuevo vértice a la lista de vértices
Fin mientras
// En este momento ya se han calculado todos los vértices del primer cuadrante.
Agregar el vértice que está situado en el eje Y positivo (0, radioY, 0)
Agregar los vértices del segundo cuadrante utilizando simetría axial.
Agregar el vértice que está situado en el eje X negativo (-radioX, 0, 0)
Agregar los vértices del tercer cuadrante utilizando simetría axial.
Agregar el vértice que está situado en el eje Y negativo (0, -radioY, 0)
Agregar los vértices del tercer cuadrante utilizando simetría axial.
Fin si

Generar las coordenadas de textura (ver código fuente de ejemplo)

Nota: La cantidad de pasos oscila en el rango 0..255, pero en la práctica con 100 es suficiente. GMax y 3DS MAX usan 6 pasos por defecto.