Strona 1 z 1

Selekcja kolumn z kropkami

: 23 paź 2013 14:57
autor: Brad PID
Cześć,
Mam takie zdjęcie binarne:
zdjecie_wstepne.png
zdjecie_wstepne.png (13.58 KiB) Przejrzano 5590 razy
Chciałbym aby po przetworzeniu wyglądało tak:
zdjecie_koncowe.png
zdjecie_koncowe.png (12.84 KiB) Przejrzano 5590 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?

Re: Selekcja kolumn z kropkami

: 26 paź 2013 02:01
autor: smiga
Może zamiast usuwać jakimś specjalnym algorytmem, zawęź ROI i ewentualnie usuń kropki "dotykające brzegów"...?

Re: Selekcja kolumn z kropkami

: 28 paź 2013 08:04
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 5498 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.

Re: Selekcja kolumn z kropkami

: 28 paź 2013 11:50
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 5482 razy

Re: Selekcja kolumn z kropkami

: 06 gru 2013 21:18
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!