Reconocimiento de objetos simples
=== SOLUCIONADO ===
Gracias por sus sugerencias y comentarios. Al trabajar en el algoritmo flood_fill dado enComenzando la visualización de Python libro (Capítulo 9 - Procesamiento de imágenes) He implementado lo que he querido. Puedo contar los objetos, obtener rectángulos adjuntos para cada objeto (por lo tanto, altura y anchura) y, por último, puedo construir matrices o matrices NumPy para cada uno de ellos.
Aunque no es un enfoque optimizado, hace lo que quiero. El código fuente (lab2.py) y el archivo png (lab2-particle.png) que utilizo han sido puestos bajohttp://code.google.com/p/ccnworks/source/browse/#svn/trunk/AtSc450.
Necesita NumPy y PIL instalados, y matplotlib para ver el histograma. El núcleo del código se encuentra dentro de la función objfind donde se produce la acción de búsqueda recursiva principal del objeto.
Una actualización más:
SciPy'sndimage.label () hace exactamente lo que quiero, también.
Saludos paraDavid-Warde Farley yZachary Pincus de las listas de correo NumPy y SciPy para señalar esto directamente a mis ojos :)
=============
Hola,
Tengo una imagen que contiene las sombras de las partículas de hielo medidas por un espectrómetro de partículas. Quiero poder identificar cada objeto, para poder clasificarlos y usarlos más adelante en mis cálculos.
En esencia, lo que estoy dispuesto a hacer es simplemente implementar una herramienta de selección difusa en la que simplemente pueda seleccionar cada entidad.
¿Cómo podría resolver este problema fácilmente? (Preferiblemente usando Python)
Gracias.
NOTA: En mi pregunta me refiero a cada píxel conectado específico como objetos o entidades. Mi intención es extraerlas y crear representaciones de matriz NumPy como se muestra a continuación. (Aquí estoy usando el objeto de la parte superior izquierda; si existe un píxel, use 1 si no usa 0. La forma de este objeto es de 3 por 3, que corresponde a 3 píxeles de alto por 3 píxeles de ancho. Estas son proyecciones de partículas de hielo reales en el dominio 2D , bajo el supuesto de que son esféricos y el radio equivalente es (altura + ancho) / 2, y más adelante se realizarán algunas escalas, desde los píxeles hasta los tamaños reales y los cálculos de volumen)
import numpy as np
np.array([[1,1,1], [1,1,1], [0,0,1]])
array([[1, 1, 1],
[1, 1, 1],
[0, 0, 1]])
Aquí hay una sección de la imagen que voy a usar.
captura de pantalla http://img43.imageshack.us/img43/2327/particles.png