Filtracja morfologiczna obrazów binarnych

Transkrypt

Filtracja morfologiczna obrazów binarnych
Filtracja morfologiczna obrazów binarnych
Morfologia:
1. Nauka o postaci, ukształtowaniu i budowie
organizmów roślinnych i zwierzęcych;
2. Ukształtowanie i formy powierzchni Ziemi;
3. Dział gramatyki obejmujący fleksję
i słowotwórstwo;
4. Morfologia matematyczna - dział matematyki
oparty na teorii zbiorów
Translacja zbioru
Translacja zbioru A ⊂ R2 o wektor x ⊂ R2
jest zdefiniowana jako: A + x = {a + x: a∈
∈A}
x
Translacja zbioru dyskretnego
x=[3,1]
Dylatacja zbioru
Dylatacja zbioru A przez B (A,B⊂
⊂ R2), gdzie
B jest tzw. elementem strukturującym jest
zdefiniowana jako:
A ⊕ B = U( A + b )
b∈B
Dylatacja zbioru - przykład
B
(0,0)
A ⊕ B = U( A + b )
b∈B
Erozja zbioru
Erozja zbioru A przez B (A,B⊂
⊂ R2), gdzie B
jest elementem strukturującym jest
zdefiniowana jako:
A ⊗ B = I( A + b )
b∈B
Element strukturujący znajduje się w
środku układu współrzędnych i jest
względem niego symetryczny !
Erozja zbioru - przykład
(0,0)
B
A ⊗ B = I( A + b )
b∈B
Otwieranie i zamykanie zbioru
Otwieranie zbioru A zbiorem B (A,B⊂
⊂ R2),
jest zdefiniowane jako:
Ao B =( A⊗ B )⊕ B
Zamykanie zbioru A zbiorem B (A,B⊂
⊂ R2),
jest zdefiniowane jako:
A• B =( A⊕ B )⊗ B
Otwieranie zbioru - przykład
Otwieranie zbioru - przykład
Zamykanie zbioru - przykład
Zamykanie zbioru - przykład
A
B
Ilustracja
zamykania i otwierania
morfologicznego
A°°B
A••B
Operacje morfologiczne dla obrazów binarnych
Środek elementu strukturującego B jest
przesuwany nad kolejnymi punktami obrazu.
W każdym położeniu (x,y) środka tego
elementu wykonywane są określone operacje
logiczne na punktach obrazu Bxy znajdujących
się pod elementem B.
Operacje erozji i dylatacji można zdefiniować
następująco:
• erozja:
A ⊗ B = {x, y : B ⊆ A}
• dylatacja:
A ⊕ B = {x, y : B ∩ A ≠ ∅}
x, y – współrzędne środka elementu strukturującego B
B
Dylatacja - przykład
B
Obraz źródłowy
Obraz wynikowy
A ⊕ B = {x, y : B ∩ A ≠ ∅}
Dylatacja - algorytm
0,1
-1,0 0,0 1,0
0,-1
El_Size = 5;
Sx : array[1..El_Size]of byte = (0, -1, 0, 1, 0);
Sy : array[1..El_Size]of byte = (1, 0, 0, 0, -1);
{ f(i,j) - obraz źródłowy, g(i,j) - obraz wynikowy }
...
g:=255;
for i:=1 to N-2 do for j:=1 to N-2 do
if f(i,j)<>255 {jasność tła} then
for k:=1 to El_Size do g(i+Sx[k], j+Sy[k])=0
...
Ograniczenie rozmiaru
obrazu wynikowego !!!
Erozja - przykład
B
Obraz źródłowy
Obraz wynikowy
A ⊗ B = {x, y : B ⊆ A}
Erozja - algorytm
0,1
-1,0 0,0 1,0
El_Size = 5;
0,-1
Sx : array[1..El_Size]of byte = (0, -1, 0, 1, 0);
Sy : array[1..El_Size]of byte = (1, 0, 0, 0, -1);
...
g:=255;
for i:=1 to N-2 do for j:=1 to N-2 do
if f(i,j)<>255 {jasność tła} then
begin
inside:=true;
for k:=1 to El_Size do if f(i+Sx[k], j+Sy[k])=255 then
inside:= false;
if inside then g(i,j):=0;
end;
...
Operacja zamykania - przykład
Element strukturujący:
Operacja otwierania - przykład
Element strukturujący:
Przykład przetwarzania morfologicznego

Podobne dokumenty