tutorial descargar algorithm image matlab image-processing image-recognition

algorithm - descargar - image processing toolbox matlab download



Reconociendo distorsiones en una cuadrĂ­cula regular. (2)

Creo que estás buscando el algoritmo de correlación de imagen digital .

Aquí puedes ver una demo.

Aquí hay una implementación de Matlab.

De Wikipedia:

La correlación y el seguimiento de imágenes digitales (DIC / DDIT) es un método óptico que emplea técnicas de seguimiento y registro de imágenes para realizar mediciones precisas en 2D y 3D de los cambios en las imágenes. Esto se usa a menudo para medir la deformación (ingeniería), el desplazamiento y la deformación, pero se aplica ampliamente en muchas áreas de la ciencia y la ingeniería.

Editar

Aquí apliqué el algoritmo DIC a su imagen distorsionada usando Mathematica , mostrando los desplazamientos relativos.

Editar

También puede identificar fácilmente la zona de máximo desplazamiento:

Editar

Después de un poco de trabajo (francamente) puedes llegar a algo como esto, que representa el "campo de desplazamiento", mostrando claramente que estás tratando con un vórtice:

(Las flechas más oscuras y más grandes significan más desplazamiento (velocidad))

Envíeme un comentario si está interesado en el código de Mathematica para este. Creo que mi código no va a ayudar a nadie más, así que omito publicarlo.

Para brindarle información sobre lo que estoy haciendo: estoy tratando de registrar cuantitativamente las variaciones en el flujo de un fluido compresible mediante el análisis de imágenes. Una forma de hacer esto es explotar el hecho de que el índice de refracción del fluido está directamente relacionado con su densidad. Si configura algún tipo de imagen detrás del flujo, la distorsión en la imagen debido a los cambios en el índice de refracción a lo largo del campo fluido lo lleva a un gradiente de densidad, que ayuda a caracterizar el patrón de flujo.

Tengo un conjunto de rutinas que lo hacen con éxito con un patrón de puntos 2D regular. El patrón de puntos está ligeramente distorsionado, y al comparar la posición de los puntos en la imagen distorsionada con la imagen no distorsionada, obtengo un campo de desplazamiento, que es exactamente lo que necesito. El problema con este método es la resolución. La resolución está limitada a la cantidad de puntos en el campo, y estoy explorando métodos que me dan más datos.

Una idea que he tenido es usar una cuadrícula regular de líneas horizontales y verticales. Esta imagen se distorsionará de la misma manera, pero en lugar de obtener solo el desplazamiento de un punto, tendré la distorsión continua de una cuadrícula. Parece que debe haber algún algoritmo o procedimiento estándar para comparar una cuadrícula geométrica con otra e inferir algún tipo de campo de desplazamiento. Sin embargo, no he encontrado nada como esto en mi investigación.

¿Alguien tiene algunas ideas que me puedan orientar en la dirección correcta? Para su información, no soy un científico informático, soy un ingeniero. Lo digo solo porque puede haber algún enfoque obvio que estoy descuidando debido a que vengo de un campo diferente. Pero puedo programar. Estoy usando MATLAB, pero puedo leer Python, C / C ++, etc.

Aquí hay ejemplos del tipo de imágenes con las que estoy trabajando:

Regular: Distorted:

--------


También sugeriría que un algoritmo de seguimiento de línea funcionaría bien.

Simplemente comience en la primera línea de píxeles de la imagen y comience a seguir cada una de las líneas verticales hacia abajo (solo necesita comenzar esto en la primera línea para obtener los puntos de inicio. Esto puede hacerse mediante un patrón simple que se mueve ortogonalmente al gradiente). de esa línea, ergo sigue una línea. Cuando alcanza un cruce de una línea horizontal, puede medir ese punto (en coordenadas x, y) y compararlo con el punto de cruce correspondiente en su imagen distorsionada.

Como su cuadrícula es regular, usted sabe que el noveno punto de cruce medido en la m''th línea negra vertical corresponde en ambas imágenes. Luego simplemente compara ambos puntos calculando su distancia. Haga esto para cada línea en su cuadrícula y obtendrá, hasta qué punto se distorsiona cada punto de cruce de la cuadrícula.

Este siguiente algoritmo de línea también se usa en los algoritmos básicos de enlace de Edge o el detector Canny Edge.

(Todas estas son solo ideas teóricas y no puedo proporcionarle un algoritmo. Pero creo que debería funcionar fácilmente en imágenes distorsionadas como las que tiene allí ... pero tal vez sea útil para usted)