Jeśli z jakiegoś powodu jesteś ograniczony do operacji morfologicznych, możesz rozważyć użycie „schematu głosowania” zorientowanych operacji zamknięcia.
Jednym z problemów związanych z operacjami morfologicznymi jest to, że tak naprawdę nie uwzględniają one kierunkowości. W przypadku środkowego piksela taka okolica
1 0 0
1 1 0
0 1 1
tak naprawdę nie różni się od takiej dzielnicy
0 1 0
1 1 0
1 1 0
Może to powodować problemy, ponieważ dylatacja i erozja nie są ukierunkowane w sposób ukierunkowany, gdy może się to podobać. Jedną rzeczą, którą możesz zrobić, to znaleźć najbardziej odpowiednią ukierunkowaną stronniczo operację morfologiczną za pomocą jąder, takich jak te:
1 1 0 1 0 0 1 0 0
0 1 0 1 1 0 1 1 0
0 1 1 0 1 1 0 1 1 . . .
Byłoby lepiej w przypadku jąder 5 x 5, ale myślę, że pomysł jest wystarczająco jasny. Zasadniczo idea jądra do wykrywania narożników jest nieco rozciągnięta, tak że jest to jądro do wykrywania segmentów linii. Można go również użyć do znalezienia najlepiej dopasowanych krzywych:
0 0 0 1 1
0 0 1 1 0
0 1 1 0 0
0 0 1 1 0
0 0 0 1 1
Oczywiście prowadzi to do ogromnej liczby jąder, ale jeśli podstawowy pomysł działa, to obiecuje, że istnieje sposób na zoptymalizowanie techniki, tak aby jądro najlepiej dopasowane znalazło się w jednym przejściu.
W każdym razie, jeśli używasz wielu jąder i pewnej logiki, każda operacja w (x, y) wymaga więcej obliczeń niż tradycyjny krok morfologiczny:
- Na każdym pikselu (x, y) zastosuj każdy z kilku operatorów morfologicznych. Dla każdego operatora obliczyć zarówno wynik operacji morfologicznej ORAZ stopień, w jakim dane wejściowe pasują do jądra. („Stopień” = liczba pasujących pikseli)
- Wybierz wynik morfologiczny dla jądra, który najbardziej odpowiada rzeczywistej konfiguracji pikseli włączenia / wyłączenia.
Rozmiar jądra musi być dopasowany do wielkości danych wejściowych. Zamiast używać większego jądra, możesz użyć jądra „rozprzestrzeniania”, aby zmniejszyć liczbę operacji. Poniższe jądro to tylko jądro 3 x 3 o promieniu większym niż 1.
1 0 0 0 0 0 0
0 0 0 0 0 0 0
1 0 0 1 0 0 0
0 0 0 0 0 0 0
1 0 0 0 0 0 1