Simple reconnaissance de l'objet

===RÉSOLU===

Merci pour vos suggestions et commentaires. En travaillant sur la flood_fill algorithme donné dans Début Python Visualisation livre (Chapitre 9 - Traitement de l'Image) j'ai mis ce que j'ai voulu. Je peux compter les objets, obtenir des rectangles englobants pour chaque objet (donc de hauteur et de largeur), et enfin peut construire des tableaux NumPy ou des matrices pour chacun d'eux.

Bien que ce n'est pas une approche optimisée c'est ce que je veux. Le code source (à l'lab2.py) et le fichier png (lab2-particules.png) que j'utilise ont été mis sous http://code.google.com/p/ccnworks/source/browse/#svn/trunk/AtSc450.

Vous avez besoin de NumPy et PIL installé, et matplotlib pour voir l'histogramme. Core du code se trouve dans le objfind fonction où la principale récursive de l'objet de recherche action se produit.

Une nouvelle mise à jour:

SciPy est ndimage.label() fait exactement ce que je veux, aussi.

Bravo pour David-Warde Farley et Zachary Pincus de la NumPy et SciPy listes de diffusion pour pointer ce droit dans les yeux 🙂

=============

Bonjour,

J'ai une image qui contient les ombres de particules de glace mesurée par un spectromètre de particules. Je veux être en mesure d'identifier chaque objet, afin que je puisse ensuite les classer et de les utiliser plus loin dans mes calculs.

En substance, ce que je suis prête à faire est simplement de mettre en œuvre un flou outil de sélection où je peux il suffit de sélectionner chaque entité.

Comment ai-je pu facilement résoudre ce problème? (De préférence à l'aide de Python)

Grâce.

REMARQUE: Dans ma question, je me réfère à chaque connecté pixels comme des objets ou des entités. Mon intention est de les extraire et de créer un tableau NumPy représentations comme indiqué ci-dessous. (J'utilise ici l'objet en haut à gauche; si un pixel existent utilisation 1 si pas d'utilisation de 0. Cet objet de forme est de 3 par 3, ce qui en conséquence de 3 pixels de hauteur par 3 pixels de largeur. Ce sont des projections de la vraie glace-particules sur le domaine 2D, sous l'hypothèse de leur sphéricité et l'équivalent de rayon (hauteur+largeur)/2, et plus tard, la mise à l'échelle-à partir de pixels de taille réelle et le volume des calculs vont suivre)

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]])

Ici est une section de l'image que je vais utiliser.

capture d'écran http://img43.imageshack.us/img43/2327/particles.png

  • Simple reconnaissance d'objets sonne comme une contradiction dans les termes à moi.
  • Que suggéreriez-vous sinon?
  • S'il vous plaît ne dites pas "résolu" dans votre question. Soit accepter la meilleure réponse ou la réponse à votre propre question et d'accepter que.