Całkowicie utknąłem w kwestii dotyczącej segmentacji szklistych przedmiotów. Muszę uzyskać obiekt tak precyzyjnie, jak to możliwe. Moje podejście było inne. Najpierw próbowałem usunąć tło, aby pozostały tylko ostre kontury. Ale działa to tylko w przypadku obiektów, które mają ostre krawędzie / gradienty. W przeciwnym razie sam obiekt również zostanie usunięty. Zamieściłem dwa różne obrazy.
Próbowałem usunąć tło za pomocą operacji morfologicznych, takich jak rozszerzenie skali szarości i podział na nie. ale to niewiele pomogło. po tym próbowałem k-średnich z k = 3, aby oddzielić zmodyfikowane tło od wartości szarości i czerni szkła. W niektórych przypadkach nie było to udane, ale nie ogólnie / średnio. Starałem się również wykryć sprytne wykrywanie krawędzi za pomocą ogólnego filtru blured, ale prowadziło to do słabszych wyników w postaci otwartych konturów, dużego hałasu itp. Pp.
Canny z automatycznymi wynikami progowymi:
testimg = imread('http://i.imgur.com/huQVt.png');
imshow(testimg)
imedges = edge(testimg,'canny');
imshow(imedges);
To samo dotyczy drugiego obrazu.
Jak widać, wewnątrz i na zewnątrz jest dużo hałasu, a podwójne krawędzie od granicy szyby. Nawet na krawędziach są luki.
Potrzebuję więc twoich rad, aby uzyskać ogólne podejście do rozwiązania tego problemu półprzezroczystych materiałów, a nie tylko tych dwóch obrazów.
1) Inne pomysły na usunięcie tła bez uszkodzenia obiektu?
2) Inne metody segmentacji w celu oddzielenia obiektu od tła?
Jeśli to możliwe, to dzięki Matlab, IPT lub statystycznym podpowiedziom. Wszelkie inne wskazówki są również mile widziane!
Z góry dziękuję za odpowiedź. szczerze