En visualización científica , la convolución integral de línea ( LIC ) es un método para visualizar un campo vectorial (como el movimiento de un fluido ) a altas resoluciones espaciales. [1] La técnica LIC fue propuesta por primera vez por Brian Cabral y Leith Casey Leedom en 1993. [2]
En LIC, la integración numérica discreta de líneas se realiza a lo largo de las líneas de campo (curvas) del campo vectorial en una cuadrícula uniforme . La operación integral es una convolución de un núcleo de filtro y una textura de entrada, a menudo ruido blanco . [1] En el procesamiento de señales , este proceso se conoce como convolución discreta . [3]
Las visualizaciones tradicionales de campos vectoriales utilizan flechas o líneas pequeñas para representar la dirección y magnitud de los vectores. Este método tiene una resolución espacial baja, lo que limita la densidad de datos presentables y corre el riesgo de oscurecer las características de los datos. [1] [3] Los métodos más sofisticados, como las líneas de corriente y las técnicas de rastreo de partículas, pueden ser más reveladores, pero dependen en gran medida de los puntos de semilla adecuados. [1] Los métodos basados en texturas, como LIC, evitan estos problemas, ya que representan todo el campo vectorial con una resolución de punto (píxel). [1]
En comparación con otras técnicas basadas en la integración que calculan las líneas de campo del campo vectorial de entrada, LIC tiene la ventaja de que se muestran todas las características estructurales del campo vectorial, sin necesidad de adaptar los puntos de inicio y fin de las líneas de campo al campo vectorial específico. En otras palabras, muestra la topología del campo vectorial. [ cita requerida ]
En pruebas de usuarios, se descubrió que LIC era particularmente bueno para identificar puntos críticos. [4]
La LIC hace que los valores de salida estén fuertemente correlacionados a lo largo de las líneas de campo, pero no estén correlacionados en direcciones ortogonales. [1] Como resultado, las líneas de campo contrastan entre sí y se destacan visualmente del fondo.
Intuitivamente, el proceso se puede entender con el siguiente ejemplo: el flujo de un campo vectorial se puede visualizar superponiendo un patrón fijo y aleatorio de pintura oscura y clara. A medida que el flujo pasa por la pintura, el fluido recoge parte del color de la pintura y lo promedia con el color que ya ha adquirido. El resultado es una textura rayada y manchada al azar en la que los puntos a lo largo de la misma línea de corriente tienden a tener un color similar. Otros ejemplos físicos incluyen:
Aunque el campo vectorial de entrada y la imagen resultante están discretizados, conviene mirarlo desde un punto de vista continuo. [1] Sea el campo vectorial dado en algún dominio . Aunque el campo vectorial de entrada normalmente está discretizado, consideramos que el campo está definido en cada punto de , es decir, suponemos una interpolación . Las líneas de corriente, o más generalmente las líneas de campo, son tangentes al campo vectorial en cada punto. Terminan en el límite de o en puntos críticos donde . Por el bien de la simplicidad, los puntos críticos y los límites se ignoran en lo siguiente.
Una línea de campo , parametrizada por la longitud del arco , se define como Sea la línea de campo que pasa por el punto para . Entonces el valor de gris de la imagen en se establece en
donde es el núcleo de convolución , es la imagen de ruido y es la longitud del segmento de línea de campo que se sigue.
Se debe calcular la convolución de cada píxel de la imagen LIC. Si se lleva a cabo de manera simple, esto es bastante costoso. Primero, se deben calcular las líneas de campo utilizando un método numérico para resolver ecuaciones diferenciales ordinarias , como el método de Runge-Kutta , y luego, para cada píxel, se debe calcular la convolución a lo largo de un segmento de línea de campo.
La imagen final normalmente estará coloreada de alguna manera. Normalmente, se utiliza algún campo escalar (como la longitud del vector) para determinar el tono, mientras que la salida LIC en escala de grises determina el brillo .
Diferentes opciones de núcleos de convolución y ruido aleatorio producen diferentes texturas; por ejemplo, el ruido rosa produce un patrón nublado donde las áreas de mayor flujo se destacan como manchas, lo que resulta adecuado para la visualización del clima. Un mayor refinamiento de la convolución puede mejorar la calidad de la imagen. [6]
Algorítmicamente, LIC toma un campo vectorial y una textura de ruido como entrada, y genera una textura. El proceso comienza generando en el dominio del campo vectorial una imagen aleatoria de niveles de gris con la resolución de salida deseada. Luego, para cada píxel de esta imagen, se calcula la línea de corriente hacia adelante y hacia atrás de una longitud de arco fija . El valor asignado al píxel actual se calcula mediante una convolución de un núcleo de convolución adecuado con los niveles de gris de todos los píxeles de ruido que se encuentran en un segmento de esta línea de corriente. Esto crea una imagen LIC de niveles de gris.
Las imágenes LIC básicas son imágenes en escala de grises, sin color ni animación. Si bien dichas imágenes LIC transmiten la dirección de los vectores de campo, no indican la orientación; en el caso de los campos estacionarios, esto se puede solucionar mediante una animación. Las imágenes LIC básicas no muestran la longitud de los vectores (ni la intensidad del campo).
La longitud de los vectores (o la intensidad del campo) suele estar codificada en color; como alternativa, se puede utilizar animación. [2] [1]
Las imágenes LIC se pueden animar utilizando un núcleo que cambia con el tiempo. Se seguirían utilizando muestras de la línea de corriente en un tiempo constante, pero en lugar de promediar todos los píxeles de una línea de corriente con un núcleo estático, se utiliza un núcleo con forma de onda construido a partir de una función periódica multiplicada por una función de Hann que actúa como una ventana (para evitar artefactos). Luego, la función periódica se desplaza a lo largo del período para crear una animación.
El cálculo se puede acelerar significativamente reutilizando partes de líneas de campo ya calculadas, especializándolas en una función de caja como núcleo de convolución y evitando cálculos redundantes durante la convolución. [1] El método LIC rápido resultante se puede generalizar a núcleos de convolución que son polinomios arbitrarios. [7]
Debido a que LIC no codifica la orientación del flujo, no puede distinguir entre líneas de corriente de igual dirección pero de orientación opuesta. [8] La convolución integral de línea orientada (OLIC) resuelve este problema utilizando un núcleo asimétrico tipo rampa y una textura de ruido de baja densidad. [8] El núcleo modula asimétricamente la intensidad a lo largo de la línea de corriente, produciendo un trazo que codifica la orientación; la baja densidad de la textura de ruido evita que los trazos borrosos se superpongan, lo que facilita la legibilidad.
La representación rápida de la convolución integral de línea orientada (FROLIC) es una variación que se aproxima a OLIC al representar cada traza en pasos discretos en lugar de como una mancha continua. [8] [9]
Para campos vectoriales dependientes del tiempo (flujo inestable), se ha diseñado una variante llamada LIC de flujo inestable que mantiene la coherencia de la animación del flujo. [10] Se ha presentado una implementación interactiva basada en GPU de UFLIC. [11]
Dado que el cálculo de una imagen LIC es costoso pero inherentemente paralelo, el proceso se ha paralelizado [12] y, con la disponibilidad de implementaciones basadas en GPU, se ha vuelto interactivo en PC.
Cabe señalar que el dominio no tiene por qué ser un dominio 2D: el método es aplicable a dominios de dimensiones superiores que utilizan campos de ruido multidimensionales. Sin embargo, la visualización de la textura LIC de dimensiones superiores es problemática; una forma de hacerlo es utilizar la exploración interactiva con cortes 2D que se posicionan y rotan manualmente. El dominio tampoco tiene por qué ser plano; la textura LIC también se puede calcular para superficies 2D de formas arbitrarias en el espacio 3D. [13]
Esta técnica se ha aplicado a una amplia gama de problemas desde que se publicó por primera vez en 1993, tanto científicos como creativos, entre ellos:
Representación de campos vectoriales:
Efectos artísticos para la generación y estilización de imágenes:
Generalización del terreno: