2012-03-08 13 views
6

Mi objetivo es detectar el patrón de las venas de las hojas que caracterizan diversas especies de plantas¿Detecta el patrón de vetas en las hojas?

ya he hecho lo siguiente:

imagen original:

enter image description here

Después adaptativo umbraling:

enter image description here

Sin embargo, las venas no son tan claras y desvirtuarse, ¿Hay alguna manera de que pudiera tener una mejor salida

EDIT:

Traté de color umbralización mis resultados aún no son satisfactorios me sale el siguiente imagen

enter image description here

Por favor, ayuda

Respuesta

5

El hecho tha Esta es una imagen JPEG que proporcionará los artefactos "bloqueados", que en el ejemplo que publicas hace que la mayoría de las áreas cuadradas alrededor de las vetas tengan mucho ruido, por lo que idealmente se debe trabajar en una imagen que no haya sido comprimida con pérdida. Si eso no es posible, intente filtrar la imagen para eliminar parte del ruido.

Las vetas que desea extraer tienen un color diferente al del fondo, la hoja y la sombra, por lo que podría ser una buena idea utilizar algún tipo de umbral basado en el color. Hubo un reciente S.O. pregunta con un código que podría ayudar here. Después de eso, algún tipo de normalización adaptativa ayudaría a aumentar el contraste antes de que lo limites.

[editar]
Tal vez el umbral no es un paso intermedio que desea hacer. Hice lo siguiente filtrando para eliminar artefactos jpeg, haciendo algunos cálculos de canales CMYK (más cian y negro) y luego aplicando ecualización adaptativa. Estoy bastante seguro de que podrías seguir produciendo puntos de borde (subpíxel tal vez) utilizando gradientes de imagen y supresión no máxima, y ​​tal vez usar el brillo en cada punto y las propiedades de la estructura de veta (la mayoría uniéndose en una tangente) a une los puntos en líneas.

Example of processed leaf image

1

Esto suena como algo que hice en la universidad con las redes neuronales. Las cosas de la red neuronal son un poco difíciles así que no iré allí. De todos modos, ¡los patrones son candidatos perfectos para la transformación 2D de Fourier! Aquí es un posible esquema:

  1. Tienes datos de entrenamiento y datos de entrada
  2. Sus datos se representa como una de la transformada de Fourier 2D
  3. Si su base de datos es grande debe ejecutar PCA en los resultados transformar para convertir un espectrograma 2D a un espectrograma 1D
  4. Compare la distancia de martillado probando el espectro (después del PCA) de 1 imagen con todas las imágenes en su conjunto de datos.

Debería esperar ~ 70% de reconocimiento con tales métodos primitivos siempre que las imágenes tengan aproximadamente la misma rotación. Si las imágenes no son de la misma rotación, puede que tenga que usar SIFT. Para obtener un mejor reconocimiento necesitará conjuntos de entrenamiento más inteligentes, como un Modelo de Markov Oculto o una red neuronal. La verdad es que obtener buenos resultados para este tipo de problema puede ser bastante trabajo.

Salida: https://theiszm.wordpress.com/2010/07/20/7-properties-of-the-2d-fourier-transform/

+0

Información realmente interesante intentaré resolverlo – vini

4

En el pasado he hecho buenas experiencias con el borde de la detección de algoritmo difference of Gaussian. Que básicamente funciona así: Desenfoque la imagen dos veces con gaussian blurr algorithm pero con diferentes radios de desenfoque. Luego calcula la diferencia entre ambas imágenes.

Los píxeles con el mismo color uno debajo de otro crearán un mismo color borroneado. Los píxeles con diferentes colores debajo de cada uno generarán un degradado que depende del radio de desenfoque. Para un radio más grande, el gradiente se extenderá más lejos. Para los más pequeños, no.

Así que, básicamente, este es el filtro de paso de banda. Si los radios seleccionados son demasiado pequeños y vanos, cree 2 líneas "paralelas". Pero dado que las venas de las hojas son pequeñas en comparación con las extensiones de la imagen, en su mayoría se encuentran radios, donde una vena resulta en 1 línea.

Aquí agregué la imagen procesada. pasos que hice en esta imagen:

  1. desaturar (escala de grises)
  2. diferencia de Gauss. Aquí borré la primera Imagen con un radio de 10 px y la segunda imagen con un radio de 2 px. El resultado que puedes ver a continuación.

Esto es solo un resultado creado rápidamente. Supongo que al optimizar los parámetros, incluso puede obtener mejores. enter image description here

Cuestiones relacionadas