2011-11-13 9 views
10

Mam obrazu, który wygląda tak:MATLAB przetwarzania obrazu z niewielkich okręgów

Bottle

mam zadanie, w którym powinienem krąg wszystkie butelki wokół ich otwarcia. Stworzyłem prosty algorytm i zacząłem pracować. Mój algorytm następujący:

  • Próg oryginalny obraz
  • Czy jakieś morfologiczne otwór w nim
  • użyciu regionu rekwizyty takie, że tylko ekwiwalent obszar do wypełnienia pustych otworów
  • oddzielić część obrazu usta butelki są wybrane.
  • Znajdź centroid dla każdego i narysuj okrąg wokół każdej butelki.

Zrobiłem zgodnie z powyższym algorytmem, ale mam część obrazu, wokół której narysowałem okrąg. Wynika to z faktu, że wybrałem obszar od czasu wylotu butelki, a pozostały hałas jest prawie taki sam. Więc wydałem taką postać.

Przetwarzanie stosowane na wygląd obrazu jak ta:

Enter image description here

I moim ostatnim obrazem po kreślenia krąg nad obrazem oryginalnym jest tak:

Enter image description here

myślę Mogę sobie poradzić z dodatkowym kręgu, to znaczy z powodu jakiejś białej części obrazu pozostałej, jak pokazano na rysunku 2 poniżej. Można to odfiltrować za pomocą regionalnej techniki ekscentryzacji. Czy to dobry pomysł, czy są inne podejścia do tego? Jak poradzić sobie z innymi butelkami za szybą i wybrać je?

+1

Innym pomysłem jest użycie [transformacji Hough] (http://en.wikipedia.org/wiki/Hough_transform) do [wykrycia kół] (http://www.cis.rit.edu/class/simg782/lectures /lecture_10/lec782_05_10.pdf) – Amro

+0

możliwy duplikat [Najlepszego algorytmu dopasowywania okręgów] (http://stackoverflow.com/questions/4387488/the-est-circle-fitting-algorithm) – abcd

+1

Istnieje kilka swobodnie dostępnych implementacji MATLAB [Circular Hough transform] (http://www.mathworks.com/matlabcentral/fileexchange/?term=hough+transform+circle) na centralnej bazie danych MATLAB. –

Odpowiedz

5

Ładne przykładowe obrazy, które podajesz na swoje pytanie!

Jedną z rzeczy, której można użyć do wykrycia pozostałych butelek (jeśli takie istnieją) jest dobrze zdefiniowana struktura umieszczania butelek. Kratka 4 na 5 butelki powinna być stosunkowo łatwa do zlokalizowania, a kiedy kratka jest zlokalizowana, możesz sprawdzić, czy butelka jest wykryta w każdym oczekiwanym położeniu butelki.

W odniesieniu do dodatkowych wykrytego butelki, można użyć funkcji kształtu jak

  • ekscentryczności,
  • pierwszej chwili Hu
  • stosunek pomiędzy długością obwodu kwadratu na obszarze (co jest zminimalizowane dla koła) details here

Jeśli jesteś w stanie wykryć kratkę, powinno być łatwo zlokalizować ją jako odstający (z dala od oczekiwanej lokalizacji butelki on) i odrzuć odpowiednio.

Życzymy powodzenia w projekcie!

2

Użyłem takie samo podejście jak midtiby trzeciej sugestii, stosując stosunek powierzchni i obwodu zwany współczynnik kształtu:

4π * Area/obwód^2

wykryć Krążki do konturu prześledzić obrazu (od progu obrazu) do wielkiego sukcesu;

http://www.empix.com/NE%20HELP/functions/glossary/morphometric_param.htm

Odnośnie 4 unfound butelek, to jest raczej trudne bez jakiejś wiedzy a priori co to patrzysz (omówione stosując siatkę 4 x 5, następnie patrząc od środka każdego komórka). Pomyślałem, że z listy konturów większość będzie z wierzchu butelek (które można przetestować używając rzeczy o kształcie kształtu), jednak jeden będzie dużego prostokąta. Gdybyś mógł znaleźć końce prostokąta (od największego konturu pod względem obszaru), a następnie usunąć go z trzeciego obrazu, pozostałyby częściowe koła. Jeśli następnie obrysowywałeś te częściowe okręgi i używałeś kombinacji wykrywania kształtu/krzywej, itp., Może ci pomóc? I tak, powodzenia!

Powiązane problemy