Proste rozpoznawanie obiektów

=== ROZWIĄZANE ===

Dziękujemy za sugestie i komentarze. Pracując nad algorytmem flood_fill podanym wRozpoczęcie wizualizacji Pythona książka (Rozdział 9 - Przetwarzanie obrazu) Zaimplementowałem to, co chciałem. Mogę policzyć obiekty, uzyskać otaczające prostokąty dla każdego obiektu (a więc wysokość i szerokość), a na końcu mogę skonstruować tablice lub macierze NumPy dla każdego z nich.

Chociaż nie jest to zoptymalizowane podejście, robi to, co chcę. Kod źródłowy (lab2.py) i plik png (lab2-particles.png), którego używam, zostały umieszczonehttp://code.google.com/p/ccnworks/source/browse/#svn/trunk/AtSc450.

Musisz zainstalować NumPy i PIL, a matplotlib zobaczyć histogram. Rdzeń kodu znajduje się w funkcji objfind, w której występuje główna rekursywna akcja wyszukiwania obiektów.

Jedna dodatkowa aktualizacja:

SciPy'sndimage.label () robi dokładnie to, czego chcę.

Pozdrawiam zaDavid-Warde Farley iZachary Pincus z list dyskusyjnych NumPy i SciPy za wskazanie tego prosto w moje oczy :)

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

Dzień dobry,

Mam obraz, który zawiera cienie cząstek lodu zmierzone przez spektrometr cząstek. Chcę być w stanie zidentyfikować każdy obiekt, dzięki czemu mogę go później sklasyfikować i wykorzystać w moich obliczeniach.

W istocie, jestem gotów zaimplementować tylko rozmyte narzędzie wyboru, w którym mogę po prostu wybrać każdą jednostkę.

Jak mogę łatwo rozwiązać ten problem? (Najlepiej używając Pythona)

Dzięki.

UWAGA: W moim pytaniu odnoszę się do poszczególnych połączonych pikseli jako obiektów lub jednostek. Mam zamiar je wyodrębnić i utworzyć reprezentacje tablicy NumPy, jak pokazano poniżej. (Tutaj używam górnego lewego obiektu; jeśli piksel istnieje, użyj 1, jeśli nie używasz 0. Kształt tego obiektu wynosi 3 na 3, co odpowiada wysokości 3 pikseli na szerokość 3 pikseli. Są to projekcje rzeczywistych cząstek lodu na domenę 2D , przy założeniu, że są one sferyczne i mają promień równoważny (wysokość + szerokość) / 2, a później nastąpi kilka skalowań - od pikseli do rzeczywistych rozmiarów i obliczeń objętości)

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

Oto fragment obrazu, którego zamierzam użyć.

zrzut ekranu http://img43.imageshack.us/img43/2327/particles.png

questionAnswers(5)

yourAnswerToTheQuestion