Selekcja kolumn z kropkami

Tematyka związana z tworzeniem aplikacji w LabVIEW do obsługi wizji oraz wszelkich operacji na obrazie.
Awatar użytkownika
Brad PID
Posty: 29
Rejestracja: 24 kwie 2013 01:12
Wersja środowiska: LabVIEW 2012

Selekcja kolumn z kropkami

Post autor: Brad PID »

Cześć,
Mam takie zdjęcie binarne:
zdjecie_wstepne.png
zdjecie_wstepne.png (13.58 KiB) Przejrzano 10959 razy
Chciałbym aby po przetworzeniu wyglądało tak:
zdjecie_koncowe.png
zdjecie_koncowe.png (12.84 KiB) Przejrzano 10959 razy
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?
Dawid Woźny
Certified LabVIEW Associate Developer
www.optinav.pl
Obrazek
Awatar użytkownika
smiga
Administrator
Posty: 799
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Selekcja kolumn z kropkami

Post autor: smiga »

Może zamiast usuwać jakimś specjalnym algorytmem, zawęź ROI i ewentualnie usuń kropki "dotykające brzegów"...?
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Awatar użytkownika
Brad PID
Posty: 29
Rejestracja: 24 kwie 2013 01:12
Wersja środowiska: LabVIEW 2012

Re: Selekcja kolumn z kropkami

Post autor: Brad PID »

Gdybym zastosował prostokątne ROI uzyskałbym efekt jak w przypadku zdjęcia poniżej:
zdjecie_koncowe.png
zdjecie_koncowe.png (12.13 KiB) Przejrzano 10867 razy
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.
Dawid Woźny
Certified LabVIEW Associate Developer
www.optinav.pl
Obrazek
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Selekcja kolumn z kropkami

Post autor: jogurt_owocowy »

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).
dots.png
dots.png (16.52 KiB) Przejrzano 10851 razy
Awatar użytkownika
Brad PID
Posty: 29
Rejestracja: 24 kwie 2013 01:12
Wersja środowiska: LabVIEW 2012

Re: Selekcja kolumn z kropkami

Post autor: Brad PID »

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!
Dawid Woźny
Certified LabVIEW Associate Developer
www.optinav.pl
Obrazek
ODPOWIEDZ