martes, 8 de octubre de 2019

Segmentación



La segmentación en el campo de la visión artificial es el proceso de dividir una imagen digital en varias partes (grupos de píxeles) u objetos. El objetivo de la segmentación es simplificar y/o cambiar la representación de una imagen en otra más significativa y más fácil de analizar. La segmentación se usa tanto para localizar objetos como para encontrar los límites de estos dentro de una imagen. Más precisamente, la segmentación de la imagen es el proceso de asignación de una etiqueta a cada píxel de la imagen de forma que los píxeles que compartan la misma etiqueta también tendrán ciertas características visuales similares.




El resultado de la segmentación de una imagen es un conjunto de segmentos que cubren en conjunto a toda la imagen, o un conjunto de las curvas de nivel extraídas de la imagen (véase la detección de bordes). Cada uno de los píxeles de una región son similares en alguna característica, como el color, la intensidad o la textura. Regiones adyacentes son significativamente diferentes con respecto a la(s) misma(s) característica(s).

Apuntes 08 - Octubre - 2019




lunes, 7 de octubre de 2019

Transformaciones

Métodos basados en los pixeles

En esta subsectión analizaremos aquellas transformaciones simples que con base en un solo pixel permiten obtener mejoras en la visualización de la imagen.


  • Imágenes de negativos

Dadas las especiales características no-lineales del sistema visual humano a veces es interesante calcular la imagen invertida de una imagen dada ya que aspectos que resultaban dificiles de percibir pueden estar mas claros en la imagen invertida. La expresión que calcula la inversa de una imagen de niveles de grises es la siguiente:


Casos típicos de imágenes de negativos son las radiografías. La figura djunta muestra la grafica de g(x,y)



  • Mejora del contraste

Diversos factores pueden influir en la ausencia de contraste en una imagen, los m 'as relevantes pueden ser ausencia de iluminación, sensores con un rango de valores de iluminación bajo o cualquier otro factor equivalente. La idea subyace en este tipo de transformación es modificar los valores de los pixeles de manera que se produzca un aumento en el rango dinámico de valores de los valores de niveles de gris de la imagen. Esto quiere decir que en términos generales debemos de elegir dos valores de nivel de gris uno por la parte alta de los blancos , y otro por la parte baja de los negros , de manera que que los pixeles con valor igual o superior a  se transformen en más blancos y aquellos con valor igual o inferior a  se transformen en más obscuros, es decir

si  entonces , y si ,

y los pixeles con valores entre  y  se transformen de acuerdo a una transformación lineal a los valores entre  y . Ya que  es más grande que  y  es más pequeño que , es evidente que hemos aumentado el rango dinámico de los valores centrales del histograma. Una forma de expresar matematicamente esta transformación es


la figura adjunta


muestra el resultado de este tipo de transformación sobre una imagen.


  • Compresión del rango dinámico


Existen detectores cuyo rango dinámico excede con creces las posibilidades de representación de las pantallas de ordenador. Ejemplos de estos casos son por ejemplo los sensores usados en aplicaciones astronómicas cuyo rango dinámico puede ser del orden los miles (1000 - 30000) o en aplicaciones de tipo médico donde la película de las radiografías y angiografías tienen un rango dinámico de más de 1000 niveles de grís distintos. En estos casos es necesario comprimir el rango dinámico de los valores de nivel de gris con objeto de poder representar las imágenes en la tecnolgía actual que salvo contadas excepciones tan solo puede representar 256 niveles de gris.

La transformación más adecuada para estos casos es usar una función monótona que permite comprimir los valores, ejemplos de estas transformaciones pueden ser la raiz cuadrada o el logarítimica sobre los niveles de gris.

Una expresión matemática genérica de esta transformación para el caso de rangos muy grandes es


siendo c una constante de escala. Este mismo de transformación ya se encontro cuando estudiamos la represenatción del espectro de Fourier.

La figura adjunta


muestra un ejemplo curva de este tipo de transformación.

Realce de rangos de intensidad
A veces estamos interesados en resaltar determinados rangos de niveles de gris a costa de ocultar en resto de valores en la imagen. Este interés puede venir de resaltar una característica de la imagen que conocemos esta asociada a un rango concreto de niveles de gris. la figura adjunta


muestra una gráfica de este tipo de transformaciones. Puede observarse como existe un realce de la región deseada a través de un aumento de su nivel intensidad.

Apuntes 07 - Octubre - 2019




lunes, 30 de septiembre de 2019

Morfología matemática

La morfología matemática es una teoría y técnica para el análisis y tratamiento de las estructuras geométricas, basada en la teoría de conjuntos, teoría de retículos, topología y funciones aleatorias. La morfología matemática es comúnmente aplicada más a las imágenes digitales, pero puede ser empleada también en gráficos, mallas poligonales, sólidos y muchas otras estructuras espaciales.

Conceptos topológicos y geométricos de espacio continuo, tales como tamaño, forma, convexidad , conectividad y distancia geodésica, se pueden caracterizar por la morfología matemática en espacios continuos y discretos. La morfología matemática es también la base del procesamiento de imágenes morfológicas, que consiste en un conjunto de operadores que transforman las imágenes de acuerdo a las caracterizaciones anteriores.

La morfología matemática se desarrolló originalmente para imágenes binarias y se extendió más tarde a funciones e imágenes en escala de grises. La generalización posterior a retículos completos es ampliamente aceptada hoy en día como fundamento teórico de la morfología matemática.


Una forma (en azul) y su dilatación (en verde) y erosión (en amarillo) morfológica por un elemento estructurante con forma de diamante.

Corte y Recorte

Corte

El corte es la separación de un objeto físico, en dos o más porciones, mediante la aplicación de una fuerza dirigida de forma aguda.

Las herramientas utilizadas comúnmente para el corte son el cuchillo y sierra, o en medicina y ciencia el bisturí y microtomo. Sin embargo, cualquier objeto lo suficientemente agudo, es capaz de cortar si tiene una dureza suficientemente más grande que el objeto a ser cortado, y si se aplica con la fuerza suficiente. Incluso los líquidos pueden ser utilizados para cortar cosas cuando se aplican con suficiente fuerza.



El corte es un fenómeno de compresión y cizallamiento, y se produce sólo cuando la tensión total generada por el corte aplicado excede la resistencia a la rotura del material del objeto a cortar. La ecuación aplicable más simple es tensión = fuerza/área: La tensión generada por un elemento de corte es directamente proporcional a la fuerza con la que se aplica, e inversamente proporcional al área de contacto. Por lo tanto, mientras menor sea el área (es decir, más filosa la herramienta de corte), menor fuerza se necesitará para cortar algo. En general, se observa que los bordes de corte son más delgados para el corte de materiales blandos y más grueso para materiales más duros. Esta progresión es vista desde los cuchillo de cocina, hasta hachas, lo que hace un balance entre la fácil acción de corte de una hoja delgada contra la fuerza y durabilidad del borde de una cuchilla más gruesa.














Apuntes 30 - Septiembre - 2019




jueves, 26 de septiembre de 2019

Simbologia: Banda de Mobius, Nudo borromeo y Valknut

Banda de Möbius

La banda o cinta de Möbius o Moebius (/ˈmøːbjʊs/) es una superficie con una sola cara y un solo borde. Tiene la propiedad matemática de ser un objeto no orientable. También es una superficie reglada. Fue descubierta de forma independiente por los matemáticos alemanes August Ferdinand Möbius y Johann Benedict Listing en 1858.


Construcción de una cinta de Möbius

Para construir una cinta de Möbius, se toma una tira de papel y se pegan los extremos dando media vuelta a uno de ellos antes de pegarlos.

Propiedades

La banda de Möbius posee las siguientes propiedades:

  • Es una superficie que sólo posee una cara: Si se colorea la superficie de una cinta de Moebius, comenzando por la «aparentemente» cara exterior, al final queda coloreada toda la cinta, por tanto, sólo tiene una cara y no tiene sentido hablar de cara interior y cara exterior.
  • Tiene sólo un borde: Se puede comprobar siguiendo el borde con un dedo, apreciando que se alcanza el punto de partida tras haber recorrido la totalidad del borde.
  • Es una superficie no orientable: Si se parte con una pareja de ejes perpendiculares orientados, al desplazarse paralelamente a lo largo de la cinta, se llegará al punto de partida con la orientación invertida. Una persona que se deslizara «tumbada» sobre una banda de Möbius, mirando hacia la derecha, al recorrer una vuelta completa aparecerá mirando hacia la izquierda.
  • Otras propiedades: Si se corta una cinta de Möbius a lo largo, se obtienen dos resultados diferentes, según dónde se efectúe el corte. Si el corte se realiza en la mitad exacta del ancho de la cinta, se obtiene una banda más larga pero con dos vueltas; y si a esta banda se la vuelve a cortar a lo largo por el centro de su ancho, se obtienen otras dos bandas entrelazadas. A medida que se van cortando a lo largo de cada una, se siguen obteniendo más bandas entrelazadas. Si el corte no se realiza en la mitad exacta del ancho de la cinta, sino a cualquier otra distancia fija del borde, se obtienen dos cintas entrelazadas diferentes: una de idéntica longitud a la original y otra con el doble de longitud.


Esta forma geométrica se utiliza frecuentemente como ejemplo en topología.


Nudo borromeo

Se llama nudo borromeo o nudo Borromi al constituido por tres aros enlazados de tal forma que, al separar uno cualquiera de los tres, se liberan los otros dos. Pero estrictamente hablando es un enlace.

Por esta característica resulta interesante para la topología combinatoria y para la Teoría de nudos. La denominación tiene origen en que la familia nobiliaria italiana apellidada Borromi adoptó los tres círculos unidos en un nudo como principal emblema heráldico de su blasón.


Suele representárselo como tres aros o anillos (flexibles no rígidos) parcialmente entrelazados que se intersecan de tal manera que al separar uno de los anillos quedan libres los otros dos, es decir los anillos no están enlazados por pares. Las superficies que describen estos anillos forman una zona central de intersección, tal como si se tratara de un diagrama de Venn.

La propiedad de que al cortar uno de los anillos se liberan los restantes permite crear nudos borromeos de cuatro o más anillos.

Representado con tres lazos circulares de iguales dimensiones ha sido utilizado por la cristiandad -al igual que el triángulo equilátero- como alegoría de la Santísima Trinidad.



Valknut

El Valknut (del nórdico antiguo valr, 'guerrero difunto' y knut, 'nudo' o val, muerto y knut, nudo), también llamado el nudo de la muerte, es un símbolo compuesto por tres triángulos entrelazados que aparecen en varios objetos y grabados del Paganismo nórdico. Existen varias teorías sobre su origen y significado.


El nombre valknut no obstante es de reciente invención para describir el símbolo; no fue un calificativo contemporáneo en la época de uso y ha sido comparado con el símbolo de los tres cuernos (Odrerir) descubierto en una piedra rúnica de Snoldelev del siglo IX.

Algunos eruditos teorizan que los nueve ángulos del Valknut representan los nueve mundos de la cosmología nórdica; cada triángulo representaría una vinculación entre los mundos:1​ el primer triángulo uniría Asgard, Vanaheim y Jötunheim; el segundo triángulo a Alfheim, Svartálfaheim y Midgard; y el tercer triángulo a Muspelheim, Niflheim y Helheim.

Apuntes 26 - Septiembre - 2019




miércoles, 25 de septiembre de 2019

Librerias

  • AWT

Abstract Window Toolkit. (AWT, en español Kit de Herramientas de Ventana Abstracta). Conjunto de herramientas GUI (Interfaz Gráfica con el Usuario) diseñadas para trabajar con múltiples plataformas. Interfaz de usuario, y sistema de ventanas independiente de la plataforma original de Lenguaje de programación Java. AWT es parte de las Java Foundation Classes (JFC) - la API estándar para suministrar una interfaz gráfica de usuario (GUI) para un programa Java.

  • SWING

El paquete Swing es el nuevo paquete gráfico que ha aparecido en la versión 1.2 de Java. Está compuesto por un amplio conjunto de componentes de interfaces de usuario que funcionen en el mayor número posible de plataformas.
Cada uno de los componentes de este paquete puede presentar diversos aspectos y comportamientos en función de una biblioteca de clases. En la versión 1.0 de Swing, que corresponde a la distribuida en la versión 1.2 de la API de Java se incluyen tres bibliotecas de aspecto y comportamiento para 

Swing:
metal.jar: Aspecto y comportamiento independiente de la plataforma.
motif.jar: Basado en la interfaz Sun Motif.
windows.jar: Muy similar a las interfaces Microsoft Windows.
La siguiente imagen muestra una aplicación de ejemplo (adjunta al JDK 1.2) que muestra las diferentes interfaces para una misma aplicación según se utilice una u otra biblioteca:
Es la nueva clase denominada UiManager la que se encarga del aspecto y comportamiento de una aplicación Swing en un entorno de ejecución.


  • wxWidgets

Las wxWidgets son unas bibliotecas multiplataforma y libres, para el desarrollo de interfaces gráficas programadas en lenguaje C++. Están publicadas bajo una licencia LGPL, similar a la GPL con la excepción de que el código binario producido por el usuario a partir de ellas, puede ser propietario, permitiendo desarrollar aplicaciones empresariales sin coste de licencias.
Las wxWidgets proporcionan una interfaz gráfica basada en las bibliotecas ya existentes en el sistema (nativas), con lo que se integran de forma óptima y resultan muy portables entre distintos sistemas operativos. Están disponibles para Windows, MacOS, GTK+, Motif, OpenVMS y OS/2.

  • GTK

Es una biblioteca de componentes gráficos multiplataforma para desarrollar interfaces gráficas de usuario (GUI).5​4​:3 Fue desarrollada inicialmente para implementar la interfaz gráfica del programa de edición de imágenes GIMP.3​4​:3 En 1997 el proyecto GNOME escogió GTK+ como base sobre la cual desarrollar su entorno gráfico.6​ Otras aplicaciones gráficas no directamente relacionadas con GNOME también han empleado GTK, convirtiéndose junto con Qt en la biblioteca GUI más popular del sistema operativo Linux.[cita requerida] Otros entornos gráficos para Linux como XFCE y ROX han elegido también GTK como su biblioteca de componentes gráficos.[cita requerida] GTK también se puede emplear para desarrollar aplicaciones gráficas que funcionen en los escritorio de Microsoft Windows, Mac OS y otros sistemas operativos.

  • SDL

Simple DirectMedia Layer (SDL) es un conjunto de bibliotecas desarrolladas en el lenguaje de programación C que proporcionan funciones básicas para realizar operaciones de dibujo en dos dimensiones, gestión de efectos de sonido y música, además de carga y gestión de imágenes. Fueron desarrolladas inicialmente por Sam Lantinga, un desarrollador de videojuegos para la plataforma GNU/Linux.
Pese a estar programado en C, tiene wrappers a otros lenguajes de programación como C++, Ada, C#, BASIC, Erlang, Lua, Java, Python, etc. También proporciona herramientas para el desarrollo de videojuegos y aplicaciones multimedia. Una de sus grandes virtudes es el tratarse de una biblioteca multiplataforma, siendo compatible oficialmente con los sistemas Microsoft Windows, GNU/Linux, Mac OS y QNX, además de otras arquitecturas y sistemas como Sega Dreamcast, GP32, GP2X, etc.

  • Phaser
Phaser es un framework que nos permite construir juegos en HTML5 para equipos de escritorio y dispositivos móviles. Proporciona un conjunto de herramientas que aceleran el desarrollo y ayuda a manejar tareas genéricas necesarias para completar el juego. Altamente recomendable.


  • Gosu
Gosu es una biblioteca para el desarrollo de videojuegos en dos dimensiones en C++ y Ruby, disponible para los sistemas Mac OS X, Microsoft Windows y GNU/Linux.

La versión para C++ también está disponible para iPhone, iPod e iPad. Esta biblioteca se ha utilizado en toda clase de juegos 2D, especialmente en competiciones cronometradas, incluyendo juegos de disparos, de scroll horizontal, juegos en perspectiva isométrica, etc.

Gosu es software libre liberada bajo la licencia MIT. Para la reproducción de sonidos Gosu utiliza OpenAL en Mac OS X, SDL_mixer en GNU/Linux y Audiere en Windows, por lo que los juegos creados son software 100% libre.



Polinomios: Hermite y Bernstein

Polinomio de Hermite

Los polinomios de Hermite son un ejemplo de polinomios ortogonales que encuentran su principal ámbito de aplicaciones en mecánica cuántica, sobre todo en el estudio del oscilador armónico unidimensional. Son nombrados así en honor de Charles Hermite.

Definición:














Polinomio de Bernstein

Los polinomios de Bernstein o polinomios en la base de Bernstein son una clase particular de polinomios en el campo de los números reales, que son utilizados dentro del ámbito del análisis numérico. El nombre hace referencia al matemático ucraniano Sergei Natanovich Bernstein.

El algoritmo de evaluación más numéricamente estable es el de De Casteljau.

Definición


Apuntes 25 - Septiembre - 2019