bölüm 5 uzamsal filtreleme · 2018-10-25 · blm429 görüntü İşlemeye giriş dr. Öğr....
TRANSCRIPT
BLM429 Görüntü İşlemeye Giriş
Dr. Öğr. Üyesi Caner ÖZCAN
Bölüm 5 Uzamsal Filtreleme
If the facts don't fit the theory, change the facts. ~Einstein
İçerik
2
3. Yeğinlik Dönüşümleri ve Uzamsal Filtreleme
►Temel Bazı Yeğinlik Dönüşüm Fonksiyonları
►Histogram İşleme
►Uzamsal Filtrelemenin Esasları
►Uzamsal Yumuşatma Filtreleri
►Uzamsal Keskinleştirme Filtreleri
►Uzamsal Zenginleştirme Yöntemlerini Birleştirme
►Yeğinlik Dönüşümleri ve Uzamsal Filtreleme İçin Bulanık Tekniklerin Kullanılması
Komşuluk Önemi
3
►Hem zebralarda hem de dalmaçyalılarda benzer sayılarda siyah ve beyaz pikseller vardır.
► İkisi arasındaki fark, tek piksel değerleri yerine küçük grup piksellerin karakteristik görünümüdür.
Uzamsal Filtreleme
4
►Uzamsal bir filtre (a) bir komşuluk bölgesinden ve (b) bir ön tanımlı işlemden oluşmaktadır.
►MxN’lik bir görüntünün mxn’lik bir filtre ile doğrusal uzamsal filtrelenmesi şu şekilde ifade edilir: ( , ) ( , ) ( , )
a b
s a t b
g x y w s t f x s y t
Uzamsal Filtreleme
5
Uzamsal Filtreleme (2B Hareketli Ortalama)
6 Slide credit: S. Seitz
Uzamsal Filtreleme (2B Hareketli Ortalama)
7 Slide credit: S. Seitz
Uzamsal Filtreleme (2B Hareketli Ortalama)
8 Slide credit: S. Seitz
Uzamsal Filtreleme (2B Hareketli Ortalama)
9 Slide credit: S. Seitz
Uzamsal Filtreleme (2B Hareketli Ortalama)
10 Slide credit: S. Seitz
Uzamsal Filtreleme (2B Hareketli Ortalama)
11 Slide credit: S. Seitz
Uzamsal Yumuşatma Filtreleri
12
►Yumuşatma filtreleri, bulanıklaştırma ve gürültü azaltma amacıyla kullanılmaktadır.
►Bulanıklaştırma, görüntüdeki küçük detayların ortadan kaldırılması ve doğrular veya eğrilerdeki küçük boşlukların bağlanmasında kullanılır.
►Doğrusal ve doğrusal olmayan filtreleri içerir.
İki Yumuşatma (Ortalama Alma) Filtresi Maskesi
13
Matlab Kodu:
H= ones(3)/9;
result = filter2(H,image);
ya da
result = conv2(image, ones(3)/9);
İki Yumuşatma (Ortalama Alma) Filtresi Maskesi
14
clc clear all img=double(imread('cameraman.tif')); imshow(uint8(img)) [m n]=size(img); w = ones(3) for i=0:m-3 for j=0:n-3 sum=0; for k=1:3 for l=1:3 sum = sum + img(i+k,j+l)*w(k,l); end end img1(i+1,j+1) = sum/9; end end img2 = uint8(img1); figure imshow(img2) %imwrite(img2,‘output.png','png');
İki Yumuşatma (Ortalama Alma) Filtresi Maskesi
15
clc clear all img=(imread('cameraman.tif')); imshow(img) %img2=uint8(img); w=(ones(3,3))/9; %w(2,2)=1; img2 = uint8(imfilter(img,w)); %imwrite(img2,'deneme_alcak_g.png','png'); figure imshow(img2)
Doğrusal Yumuşatma Filtreleri
16
The general implementation for filtering an M N image
with a weighted averaging filter of size m n is given
( , ) ( , )
( , )
( , )
where 2 1
a b
s a t b
a b
s a t b
w s t f x s y t
g x y
w s t
m a
, 2 1.n b
MxN’lik bir görüntünün mxn’lik bir ağırlıklı ortalama
alma filtresi ile filtrelenmesi işlemi şu ifade ile verilir:
burada
17
Doğrusal Yumuşatma Filtreleri
18
Örnek: Nesnelerin Kaba Temsili
Sıra İstatistiği (Doğrusal Olmayan) Filtreler
19
— Doğrusal olmayan filtrelerdir.
— Süzgeç tarafından çevrelenen görüntü bölgesindeki piksellerin sıralanması ve sonra da merkezdeki piksel değerinin bu sıralama sonucuyla tespit edilen değerle değiştirilmesidir.
Örneğin medyan filtre, max filtre, min filtre
Sıra İstatistiği (Doğrusal Olmayan) Filtreler
20
clc clear all img=double(imread('glassware_noisy.png','png')); [m n]=size(img); p=3; for i=1:m-p for j=1:n-p w=img(i:i+p-1,j:j+p-1); img2(i,j) = median(w(:)); end end img2 = uint8(img2); imshow(img2) imwrite(img2,'median_filter_2015.png','png');
Örnek: Gürültü Giderimi İçin Medyan Filtre Kullanımı
21
Matlab Kodu (medyan):
result = medfilt2(image);
Uzamsal Keskinleştirme Filtreleri
22
►Amaç: yeğinlikteki geçişleri vurgulamaktır.
► Laplas İşleci
► Keskin Olmayan Maskeleme ve Yüksek Vurgulu Filtreleme
►Doğrusal Olmayan Görüntü Keskinleştirmede Birinci Derece Türevlerin Kullanılması — Gradyan
Uzamsal Keskinleştirme Filtreleri: Altyapı
23
► Bir boyutlu bir f(x) fonksiyonunun birinci derece türevinin temel tanımı, aşağıdaki farktır:
► f(x)’in ikinci dereceden türevini, fark olarak şöyle tanımlarız:
( 1) ( )f
f x f xx
2
2( 1) ( 1) 2 ( )
ff x f x f x
x
24
Uzamsal Keskinleştirme Filtreleri: Laplas İşleci
25
► İki değişkenli bir fonksiyon (görüntü) f(x,y) için Laplas işleci şu şekilde tanımlanır:
2 22
2 2
f ff
x y
2
2( , 1) ( , 1) 2 ( , )
ff x y f x y f x y
y
2
2( 1, ) ( 1, ) 2 ( , )
ff x y f x y f x y
x
2 ( 1, ) ( 1, ) ( , 1) ( , 1)
- 4 ( , )
f f x y f x y f x y f x y
f x y
Uzamsal Keskinleştirme Filtreleri: Laplas İşleci
26
Uzamsal Keskinleştirme Filtreleri: Laplas İşleci
27
►Görüntü keskinleştirmek için Laplas işlecini şu şekilde kullanırız:
2
2
( , ) ( , ) ( , )
where,
( , ) is input image,
( , ) is sharpenend images,
-1 if ( , ) corresponding to Fig. 3.37(a) or (b)
and 1 if either of the other two filters is us
g x y f x y c f x y
f x y
g x y
c f x y
c
ed.
giriş görüntüsü
keskinleştirilmiş görüntü
c parametresi seçilen filtrenin durumuna göre -1
veya 1 olur.
burada
Uzamsal Keskinleştirme Filtreleri: Laplas İşleci
28
Matlab Kodu:
kernel = -1 * ones(3); kernel(2,2) = 8; % Now kernel = [-1,-1,-1; -1,8,-1; -1,-1,-1] output = conv2(double(inputImage), kernel, 'same');
Önceden tanımlanmış 2 boyutlu filtre oluştur
input = imread('cameraman.tif'); h = fspecial('laplacian',alpha); alpha — Shape of the Laplacian 0.2 (default) output = imfilter(input,h, 'replicate'); imshow(output);
Uzamsal Keskinleştirme Filtreleri: Laplas İşleci
29
Önceden tanımlanmış 2 boyutlu filtre oluştur h = fspecial(type) h = fspecial('average',hsize) h = fspecial('disk',radius) h = fspecial('gaussian',hsize,sigma) h = fspecial('laplacian',alpha) h = fspecial('log',hsize,sigma) h = fspecial('motion',len,theta) h = fspecial('prewitt') h = fspecial('sobel')
Değer Açıklama
'average' Averaging filter
'disk' Circular averaging filter (pillbox)
'gaussian' Gaussian lowpass filter. Not recommended.
'laplacian' Approximates the two-dimensional Laplacian
'log' Laplacian of Gaussian filter
'motion' Approximates the linear motion of a camera
'prewitt' Prewitt horizontal edge-emphasizing filter
'sobel' Sobel horizontal edge-emphasizing filter
30
Birinci Derece Türevlere Dayalı Görüntü Keskinleştirme
31
For function ( , ), the gradient of at coordinates ( , )
is defined as
grad( )x
y
f x y f x y
f
g xf f
fg
y
2 2
The of vector , denoted as ( , )
( , ) mag( ) x y
magnitude f M x y
M x y f g g
Gradyan görüntü
𝑓(𝑥, 𝑦) fonksiyonu için (𝑥, 𝑦) koordinatlarındaki 𝑓’in gradyanı
iki boyutlu sütun vektörü olarak tanımlanır:
𝛻𝑓 vektörünün, 𝑀(𝑥, 𝑦) olarak gösterilen büyüklüğü:
Birinci Derece Türevlere Dayalı Görüntü Keskinleştirme
32
2 2
The of vector , denoted as ( , )
( , ) mag( ) x y
magnitude f M x y
M x y f g g
( , ) | | | |x yM x y g g
z1 z2 z3
z4 z5 z6
z7 z8 z9
8 5 6 5( , ) | | | |M x y z z z z
𝛻𝑓 vektörünün, 𝑀(𝑥, 𝑦) olarak gösterilen büyüklüğü:
Birinci Derece Türevlere Dayalı Görüntü Keskinleştirme
33
Birinci Derece Türevlere Dayalı Görüntü Keskinleştirme
34
z1 z2 z3
z4 z5 z6
z7 z8 z9
9 5 8 6
Roberts Cross-gradient Operators
( , ) | | | |M x y z z z z
7 8 9 1 2 3
3 6 9 1 4 7
Sobel Operators
( , ) | ( 2 ) ( 2 ) |
| ( 2 ) ( 2 ) |
M x y z z z z z z
z z z z z z
Roberts çapraz gradyan operatörleri
Sobel operatörleri
Örnek
35
36
Uzamsal Zenginleştirme Yöntemlerini Birleştirme Amaç: Görüntüyü keskinleştirerek ve iskelet ayrıntılarının çoğunu ortaya çıkararak zenginleştirmektir.
Örnek
37
Örnek
Kaynaklar
38
►Sayısal Görüntü İşleme, Palme Yayıncılık, Üçüncü
Baskıdan Çeviri (Orj: R.C. Gonzalez and R.E. Woods: "Digital Image Processing", Prentice Hall, 3rd edition, 2008).
►“Digital Image Processing Using Matlab”, Gonzalez & Richard E. Woods, Steven L. Eddins, Gatesmark Publishing, 2009
►Ders Notları, CS589-04 Digital Image Processing, F.(Qingzhong) Liu, http://www.cs.nmt.edu/~ip
►Ders Notları, BIL717-Image Processing, E.Erdem ►Ders Notları, EBM537-Görüntü İşleme, F.Karabiber