Filtracja logiczna () – odmiana filtracji wykorzystywana przy cyfrowym przetwarzaniu obrazu, zazwyczaj przeprowadzana na obrazach binarnych, przyjmujących tylko jeden z dwóch możliwych stanów logicznych: prawda (1), fałsz (0). Możliwe jest również zastosowanie filtracji logicznej do innych rodzajów obrazów (np. kolorowych lub w odcieniach szarości). Należy wtedy stosować logikę wielowartościową (rozmytą) polegającą na podaniu przedziałów, kiedy wartość funkcji spełnia warunek i przyjmuje wartość 1 lub nie spełnia warunku i przyjmuje wartość 0. Filtracja logiczna polega na sprawdzaniu wartości wyrażenia logicznego opisującego związki zachodzące pomiędzy pikselami z dowolnie wybranego sąsiedztwa analizowanego piksela. Najczęściej stosowana jest filtracja, w której jako otoczenie wybierane są cztery punkty (, , , ) sąsiadujące z punktem centralnym , który jest przetwarzany.
Na poszczególnym punkcie można wykonać następujące operacje logiczne: NOT – zaprzeczenie, AND – iloczyn logiczny, OR – suma logiczna, SUB – różnica logiczna, XOR – suma rozłączna, NXOR – równoważność logiczna.
Zdefiniowany filtr logiczny może mieć charakter zarówno kontekstowy, jak i bezkontekstowy. Najczęściej stosuje się filtry kontekstowe, w których nowa wartość danego punktu obrazu jest uzależniona od wartości danego punktu i jego otoczenia, dlatego filtracja logiczna należy głównie do grupy operacji kontekstowych. Do przetwarzania kontekstowego obrazu binarnego służą następujące formuły logiczne:
1):
2):
3):
a do konwersji obrazu monochromatycznego stosuje się filtry z podanymi przedziałami dla poszczególnych stanów logicznych np.:
Gdzie jest punktem obrazu wyjściowego (punktem, który powstanie po przefiltrowaniu) odpowiadającym punktowi obrazu wejściowego (punktowi poddanemu filtracji); , , i są punktami otoczenia względem którego dokonuje się operacji logicznej na punkcie ; a jest maksymalną wartością różnicy punktów otoczenia, kiedy warunek logiczny jest jeszcze spełniony.
Równanie pierwsze (1) powoduje eliminację zakłóceń w postaci izolowanych punktów i pionowych linii (o pojedynczej grubości). Równanie drugie (2) powoduje eliminację izolowanych punktów i linii poziomych natomiast równanie trzecie (3) pozwala na eliminacje izolowanych punktów. Ostatnie równanie (4) powoduje rozmycie krawędzi obrazu.
thumb|150px|Obraz po usunięciu linii poziomych
Przykład działania funkcji eliminacji linii poziomych i pionowych przedstawiają rysunki i funkcje w programie MATLAB przedstawione poniżej:
thumb|150px|Obraz po usunięciu linii pionowych Zapis algorytmu, który usuwa linie poziome w pseudokodzie: function B = usun_linie_poziome(A) if A(1, 2) == A(3, 2) B = A(1, 2); else B = A(2, 2); end;
Zapis algorytmu, który usuwa linie pionowe w pseudokodzie: function B = usun_linie_pionowe(A) if A(2, 1) == A(2, 3) B = A(2, 1); else B = A(2, 2); end;
Zobacz też filtracja obrazów (cyfrowe przetwarzanie sygnałów)
Kategoria:Cyfrowe przetwarzanie obrazów Kategoria:Grafika komputerowa Kategoria:Zastosowania technologii informatycznych