I po 2-D Watershed example mathworks.com w celu oddzielenia połączonych przedmiotów, jak na rysunku poniżej:Nadmierne segmentacji Watershed algorytmu
Kod jest podsumować jako:
bw = imread('some_binary_image.tif');
D = -bwdist(~bw);
D(~bw) = -Inf;
L = watershed(D);
Wynik:
Cząstka w środku została podzielona na dwie części. Czy są tutaj jakieś sposoby na uniknięcie nadmiernej segmentacji?
Dzięki, lennon310, chessboard
działa dobrze dla większości moich zdjęć, ale nadal istnieją pewne przypadki, że nie. Na przykład, następujący binarny obraz:
Korzystanie szachownicę spowoduje:
Jak mam setki obrazów, wydaje się, że trudno jest znaleźć jedną kombinację parametrów, które pracują dla wszystkich zdjęć . Zastanawiam się, czy muszę połączyć dobre wyniki dostał z użyciem szachownicy, cityblock, etc ...
jaki jest twój cel setek przetwarzania obrazu? nie jest konieczne używanie działu wodnego do wydobywania obiektów. Ponieważ na obrazie znajdują się małe połączenia między dwoma okręgami, podstawowa metoda oznaczania podłączonych komponentów może również nie działać. W rzeczywistości są to wykrywacze okręgów (hough, imfindcircles, ...) w przyborniku do obróbki obrazów matlab. – lennon310
@ lennon310: Są to w rzeczywistości obrazy wykonane przez tomografię rentgenowską. Chcę stworzyć maskę dla cząstki, która mnie interesuje. Obecnie używam Connected Threshold Grower w ImageJ, który może znaleźć podłączony region z punktu seed.Ustawiając punkt wysiewu na interesującej nas cząstce, Connected Threshold Grower może wytworzyć wynik, który zawiera tylko tę cząstkę, jeśli nie dotyka innych cząstek. Teraz ręcznie usuwam krawędź dotykającą setek obrazów, co jest czasochłonne. Próbuję użyć działu wodnego, aby automatycznie oddzielić te cząstki. – shapeare
Zdjęcia rentgenowskie nie są obrazami binarnymi, czyż nie? Myślę, że połączony komponent może zostać wykryty, a nawet algorytm klastrowania jest wart próbowania na surowych obrazach w oparciu o różnicę intensywności. W przypadku obrazu binarnego, szczególnie zaktualizowanego, trudno jest podzielić na segmenty dwa faktycznie połączone kręgi. – lennon310