Cześć,
Mam takie zdjęcie binarne:
Chciałbym aby po przetworzeniu wyglądało tak:
Algorytm ma usunąć całą kolumnę kropek, która ma jakieś braki. Kolumny nie zawsze są równoległe do lewej krawędzi zdjęcia ale można powiedzieć, że zawsze tworzą linie. Wydaje się to dość klasycznym problem ale nie mam na to sensownego (nie topornego) rozwiązania. Macie jakieś pomysły?
Selekcja kolumn z kropkami
- smiga
- Administrator
- Posty: 823
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Selekcja kolumn z kropkami
Może zamiast usuwać jakimś specjalnym algorytmem, zawęź ROI i ewentualnie usuń kropki "dotykające brzegów"...?
Re: Selekcja kolumn z kropkami
Gdybym zastosował prostokątne ROI uzyskałbym efekt jak w przypadku zdjęcia poniżej:
Mógłbym użyć innego "custom" ROI złożonego z lini ale nie jest to wygodne. Funkcja "IMAQ Calibration Target to Points - Circular Dots VI" ma parametr z wielkością siatki który domyślnie jest ustawiony na nieskończoność. Jeżeli wpiszę tam rozmiar siatki której potrzebuje działa tak jak bym chciał - odrzuca zbędne boki. Nie jest to rozwiązanie w pełni automatyczne ale działa.
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: Selekcja kolumn z kropkami
Najprościej podzielić obraz na kolumny i zliczyć kropki w każdej z nich. Co dokładnie znaczy "podział na kolumny" zależy od tego, jak bardzo konfiguracja kropek w obrazie odstaje od prostokątnej siatki. Dla zdjęcia, które zamieściłeś można pójść na łatwiznę: znaleźć jego profil poziomy, nieco go wygładzić i znaleźć jego minima - ich lokalizacja określa miejsca podziału obrazu. Zliczenie kropek w każdej kolumnie powinno być już proste (IMAQ Label).
Re: Selekcja kolumn z kropkami
Chyba o coś takiego mi chodziło. Myślałem o jakieś optymalizacji ale nie chciałem za bardzo komplikować. A tu takie proste rozwiązanie... Wykorzystam w następnej wersji programu. Dzięki!