• Sonuç bulunamadı

AKÜ TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ

N/A
N/A
Protected

Academic year: 2022

Share "AKÜ TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ"

Copied!
19
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

GÖRÜNTÜ İŞLEME DERS-8 YARDIMCI NOTLARI -2018 Gri Seviye Dönüşümleri

Herhangi bir görüntü işleme operasyonu, görüntüdeki pikselin gri seviye değerlerini dönüştürme işlemidir. Ancak, görüntü işleme operasyonları; dönüşümü gerçekleştirmek için, ihtiyaç duyacağı bilgilere göre 3 sınıfa ayrılabilir. Bunlar en zordan en basite göre;

1- Transformlar (Dönüşümler): değişik domainlere dönüşüm yapılarak görüntü işleme işlemidir. (Bu derste uzaysal domain(Spatial domain) ve frekans domaininde (frequency domain) işlemler yapılacaktır.) Çok etkili ve verimli algoritmalar bu şekilde çalıştırılır. Bir dönüşümü kullanarak, tüm görüntünün tek bir büyük blok gibi işlenmiş olduğunu düşünebilirsiniz.

2- Komşuluk ilişkili (Neighbourhood processing-Bölgesel) işlemler: Belirli bir pikselin gri düzeyini değiştirmek için bilmemiz gereken tek şey verilen piksel etrafında küçük bir bölgedeki (komşuluk ilişkisinin olduğu yerde) gri düzeylerinin değeridir.

3- Noktasal İşlemler: Bir pikselin yeni gri seviye değerini, bağımsız olarak, etrafındaki piksel bilgilerine ihtiyaç olmadan elde etme işlemidir. Noktasal işlemler en basit işlemler olmasına rağmen birçok görüntü işleme operasyonlarında kullanılırlar. Özellikle bir görüntünün; ana işlemlerden geçirilmesine hazırlamak üzere kullanılırlar.

Uzaysal domain (Spatial Domain): Günlük hayatta kullandığımız sayısal resimlerin oluşturulduğu domaindir. Bu domaindeki resimlerin pikselleri doğrudan doğruya işlenebilir.

Frekans domain(Frequency domain ): Görüntünün birçok farklı frekanslı bileşenden oluştuğu kabul edilir. Uzaysal domaindeki görüntü fourier v.b dönüşümü ile frekans domenine çevrilir.

Burada işlenip ters dönüşüm yapılır.

(2)

Uzaysal Domain'de görüntü işlemleri

Herhangi bir fonksiyonda olduğu gibi, çeşitli operatörleri bir görüntüye uygulayabiliriz

Uzaysal domain teknikleri, bir görüntünün pikselleri üzerinde doğrudan işlem yapar. Bu domendeki işlemler aşağıdaki denklemle ifade edilir. Burada f(x, y) giriş görüntüsüdür. g(x, y) ise çıkış (İşlenmiş ) görüntüsüdür.

T ise f'de belirli bir (x,y) komşuluk ilişkisi bölgesinde işlem yapan bir operatördür. Örneğin T operatörü; K görüntülerinde gürültü azaltmak için, bir görüntü seti işlemi olarak ta çalışabilir.

T ile belirtilen operasyonlar, Noktasal, Lokal(yerel) ve Global olarak yapılabilir. Noktasal Operasyon: Sadece 1x1 lik bölgede yapılan işlemlerdir. Nokta operasyonlarında, bir resimdeki her pikselin gri seviyesi yalnızca onun orijinal gri seviyesinden(tonundan) hesaplanır. Bu sebeple bu işlemlere "piksel değeri haritalama" yeya "gri ton değişikliği"

(modification) gibi isimler verilir.

Nokta operasyonları genellikle 'resim onarımı" (manipulation) için kullanılır. Mesela, bir resmin kontrastının /yükseltilmesi gibi. Nokta operasyonları sıfır hafıza operasyonlarıdır.

Bölgesel (lokal-Komşuluk İlişkili) işlemlerde merkez pikselin değeri komşu piksellerin değeri ile belirlenir. Filtreleme işlemlerinde çok kullanılır.

Global İşlemlerde İse Domain dönüşümü ( uzaysaldan frekans domenine veya tersi) yapılarak imge üzerinde işlem yapılır.

Bazı fonksiyonlar

Yerel görüntü Verisi

Modifiye edilmiş görüntü verisi

(3)

Bir piksel (x,y)'in komşuluk bölgesi veya komşuluk ilişkisi için; merkezi (x,y) olan kare, dikdörtgen tanımlama kullanılır.

Bu bölgenin merkezi,pikselden piksele hareket ettirilerek (Her yöne), etrafındaki farklı komşuları içine alır. T operatörü herbir lokasyona (x,y) uygulanarak lokasyonda işlenmiş g(x,y) çıkışı elde edilir.

En küçük lokasyon (komşuluk ilişkisi-bölgesel) resim İçindeki lxl'lik bölgedir. Bu bölge içinde yapılan İşlemlerde (çalışılan pikselde) diğer piksellerin hiçbir etkisi olamaz. Yani o tek piksele yapılan İşlemde komşu piksellerin rolü olamaz. Bu tür İşlemlere Noktasal işlemler denir.

Burada T yapılan işlemi belirtir. Yani her piksele; komşuluk ilişkisine göre gezilerek T'nin belirttiği işlem yapılır.

FİLTRELEME TEKNİKLERİ Doğrusal Filtreleme:

Matlab ortamında görüntü filtreleme işlemleri

g = imfilter ( f , w, filtering_mode , boundary_options , size_options) Yerel görüntü

Verisi

Maske ya da filtre matrisi ya da çekirdek

Modifiye edilmiş görüntü verisi

(4)

Matlab standart doğrusal uzaysal filtreleri

Maske ya da Filtre matrisi olarak da isimlendirilen matrisleri oluşturmak için aşağıdaki komut kullanılır. Ancak özelleştirilmiş pek çok filtrenin kendisine özel fonksiyonları da mevcuttur.

w = f s p e c i al ( ' t ype ' , parameters )

(5)

Filtreleme Örnekleri

%average filtre kullanımı;

>> t=imread('cameraman.tif');

>> tg= imnoise(t,'salt & pepper', 1e-3); % gürültü ekleme

>> b=fspecial('average', [5 5]);

>> g=imfilter(tg,b,'replicate');

>> figure

>> imshow(g)

% disk filtresi kullanımı

>> b1=fspecial('disk',7);

>> g1=imfilter(tg,b1,'replicate');

>> figure

>> imshow(g1)

%disk filtre mesh ve contour graf.

>> b1=fspecial('disk',5);

>> g1=imfilter(tg,b1,'replicate');

>> figure

>> imshow(g1)

%laplacian filtre. Kenar bulmada etkili.

b2=fspecial('laplacian',0.9); %alpha g2=imfilter(tg,b2);

figure

%gaussian filtre.

%b3=fspecial(‘gaussian’,boyut,stdsapma);

b3=fspecial('gaussian',[5 5], 2);

g3=imfilter(tg,b3);

(6)

imshow(g2) Alpha=0.1

Alpha=0.9

figure imshow(g3) stdsapma=0.4

Stdsapma=2

%unsharp filtresi orj = imread('moon.tif');

F = fspecial('unsharp');

unsharpF = imfilter(orj, F);

figure;

subplot(1,2,1);

imshow(orj);

title('Resmin Orjinal Hali');

subplot(1,2,2);

imshow(unsharpF);

title('Unsharp Filtresi');

%log filtresi b4=fspecial('log') g4=imfilter(tg,b4);

figure imshow(g4) g4_1=g4>100;

figure,imshow(g4_1);

g4_2=bwareaopen(g7_1,10);

figure,imshow(g4_2)

(7)

Kenar Bulma:

%Prewitt yöntemi kenar bulma 1 prewitt=fspecial('prewitt');

g5=imfilter(t, prewitt);

figure imshow(g5)

%Prewitt yöntemi kenar bulma 2 prewittF=edge(t,'prewitt');

figure

imshow(prewittF)

%Sobel yöntemi kenar bulma 1 sobel=fspecial(‘sobel’);

g6=imfilter(t,sobel);

figure imshow(g6)

%Sobel yöntemi kenar bulma 2 sobelFiltresi=edge(t,'sobel');

figure

imshow(sobelFiltresi)

%Log yöntemi kenar bulma logFiltresi=edge(t,'log');

%canny yöntemi

cannyFiltresi=edge(t,'canny');

figure

imshow(cannyFiltresi)

%roberts yöntemi

robertsFiltresi=edge(t,'roberts');

figure

imshow(robertsFiltresi)

Subplot ile çizim:

%%

t=imread('cameraman.tif');

subplot(3,3,1) imshow(t)

title('Orjinal Görüntü') canny=edge(t,'canny');

subplot(3,3,2) imshow(canny)

title('Canny Görüntü') roberts=edge(t,'Roberts');

subplot(3,3,3) imshow(roberts)

title('Roberts Görüntü') prwt=edge(t,'prewitt');

subplot(3,3,4) imshow(prwt)

title('Prewitt Görüntü') sobel=edge(t,'sobel');

subplot(3,3,5) imshow(sobel)

title('Sobel Görüntü') gaus=fspecial('gaussian');

g1=imfilter(t,gaus,'replicate');

subplot(3,3,6)

(8)

imshow(g1)

title('Gaussian Görüntü')

laplace=fspecial('laplacian');

g2=imfilter(t,laplace,'replicate');

subplot(3,3,7) imshow(g2)

title('Laplacian Görüntü')

log=fspecial('log');

g3=imfilter(t,log,'replicate');

subplot(3,3,8) imshow(g3)

title('Log Görüntü')

%%

LİNEER OLMAYAN FİLTRELEME

Doğrusal olmayan uzaysal filtreleme, komşuluk işlemlerine de dayanır ve bir m x n filtrenin merkez noktasını bir görüntü boyunca kaydırmanın mekaniği, önceki bölümde anlatılanla aynıdır. Bununla birlikte, lineer uzamsal filtreleme, (lineer bir işlem olan) çarpımların toplamının hesaplanmasına dayansa da, adından da anlaşılacağı üzere doğrusal olmayan uzamsal filtreleme, piksel komşulukları içindeki filtre tarafından kapsanan pikselleri içeren doğrusal olmayan işlemlere dayanır. Örneğin, maksimum filtresinde her orta noktadaki filtrelenmiş değer kendi komşuluğundaki maksimum piksel değerine eşittir. Bu da doğrusal olmayan bir işlemdir. Bir diğer temel fark ise, maske kavramının doğrusal olmayan işlemde yaygın olmadığıdır.

“ordfilt2” fonksiyonu, sıralama-istatistik filtreleri (sıra filtreleri olarak da bilinir) oluşturur. Bunlar, işlem yapılan noktadaki piksellerin sıralanmasına (sıralamaya) ve daha sonra çevredeki merkez piksel değerinin sıralama sonucu tarafından belirlenen değer ile değiştirilmesine dayanan doğrusal olmayan uzaysal filtrelerdir.

Burada ordfilt2 filtresi f görüntü matrisi içinde “domain” kısmında belirtilen büyüklükte filtre matrisinin “order” ‘ncı elemanını yanıt olarak belirler.

(9)

t=imread('cameraman.tif');

tg=imnoise(t,'salt & pepper');

figure,imshow(tg)

m=ordfilt2(t,5,ones(3));

figure,imshow(m)

mx=ordfilt2(tg,9,ones(3));

figure,imshow(mx)

mn=ordfilt2(tg,1,ones(3));

figure,imshow(mn)

(10)

%kendi komutuyla medyan filtreleme md=medfilt2(tg);

figure,imshow(md)

FREKANS UZAYI

• İmge uzayında yapılabilecek işlemlerin yanında, frekans düzlemindeki bilgi de imge işlemede sıkça kullanılmaktadır.

• Daha önce imge filtreleme için konvülüsyondan bahsedilmişti. İmge uzayında yapılan bu işlem her bir piksel için tekrarlanmakla birlikte, çekirdek elemanına bağlı olarak hesapsal yükü oldukça fazla olabilmektedir.

• Frekans uzayına geçildiğinde konvülüsyon işlemi çarpma işlemine dönüşeceğinden, bu uzayda yapılacak filtreleme işlemlerinde frekans uzayına geçiş ve geri dönüş işlemleri için hesapsal yükten bahsedilebilir.

• Ayrıca frekans uzayında imgedeki piksellerin dağılımına ilişkin bilgileri gözlemlemek de mümkündür.

• Frekans uzayına geçiş için genellikle Fourier dönüşümü kullanılmaktadır.

Uzaysal Frekanslar:

Fourier Dönüşümü

Bir uzaysal alan görüntüsünün geometrik özelliklerine erişmek istiyorsak Fourier Dönüşümü kullanılır.

Fourier domenindeki görüntü sinüzoidal bileşenlerine ayrıştırıldığı için, görüntünün belirli frekanslarını incelemek veya işlemek, böylece uzamsal alandaki geometrik yapıyı etkilemek kolaydır.

Bu dönüşüm, görüntü işlemenin çok önemli konularından biridir. Uzaysal domainde başarılması zor işlemleri, frekans domain’inde başaracak yapıda olan bu dönüşüm, “görüntüyü oluşturan frekans

(11)

bileşenlerini birbirinden ayırt edebildiği için değişik derecelerden alçak ve yüksek geçiren filtreleme işlemleri” kolaylıkla başarılabilir.

• Önce tek boyutlu sonra iki boyutlu Fourier dönüşümünü kısaca hatırlayalım;

Periyodik ve sonlu değer alabilen her fonksiyon, değişik frekanslarda titreşen sinüs veya cosinüslü bileşenlerin toplamından oluşur.

Fourier transformu bir görüntüye uygulandıktan sonra yüksek frekanslı geçiş yapılan piksel değerleri yüksek, düşük frekanslı geçiş yapılan frekansların değerleri düşük çıkar. Biz filtreleme işlemlerinde

“yüksek frekanslı geçişleri filtrele” dersek alçak geçiren filtre oluşturmuş oluruz.

(12)

Tek boyutlu ayrık Fourier dönüşümü (DFT)

Herhangi bir fonksiyon ayrıklaştırıldığında sonlu sayıda elemanlı bir dizi şeklinde ifade edilir. Örneğin bir kare dalganın ayrık zamanlı dizi şeklinde ifadesi; 1 1 1 1 ; -1 -1 -1 -1 şeklinde olabilir.

1 1 1 1

-1 -1 -1 -1

(13)

Burada;

F(u) yu bulmak için:

• u=0 için x'in bütün değerlerinde yukarıdaki toplamı hesapla,

• u=1 için x'in bütün değerlerinde yukarıdaki toplamı hesapla.

. . .

• u=M için x'in bütün değerlerinde yukarıdaki toplamı hesapla.

• Özetle f(x) farklı frekanslardaki Sin ve Cos bileşenleri ile çarpılıyor.

(14)

Filtre Tipleri

(15)

İdeal alçak geçiren filtre

(16)

Yüksek geçiren filtreler

(17)

FAST FOURİER DÖNÜŞÜMÜ

•DFT, ayrık fonksiyonların fourier dönüşümünü yapmak için çok önemli bir yapı olmakla beraber, dizi eleman sayısının çok fazla olduğu dönüşümler için uzun zaman harcamaktadır. Özellikle resim işleme gibi data sayısı fazla olan işlemler için yavaştır.

•Bunun yerine FFT( Hızlı fourier dönüşümü) ile bileşen katsayıları bulunur.

Burada dikkat edilecek konunun dizinin 2’nin kuvvetleri sayısında elemandan oluşturulmasıdır.

Çoğu uygulamada Fourier görüntüsü, görüntünün merkezinde DC (Direct Current) değeri ( yani görüntü ortalaması, yani frekansın sıfır olduğu bölgeleri temsil eden frekans değerleri) F(0,0) görüntülenecek şekilde kaydırılır.

Merkezden uzak bir görüntü noktası, daha yüksek olan karşılık gelen frekanstır.

DC katsayısı ve kaydırma (shifting): DFT’deki DC katsayısı F(0,0) değeridir.

Aşağıdaki denklemde v=u=0 konulduğunda bulunur. Buna göre DC katsayısının değeri orijinal görüntü matrisindeki tüm eleman değerlerinin toplamı olarak ortaya çıkar. Bu değer yeni matrisin en üst sol köşesindedir.

Kaydırma: Görüntüleme amacı için; DC katsayısının matrisin orta nokta elemanı olarak oluşması uygundur. Bunun için kaydırma yapılabilir. Kaydırma işlemi, dönüşümden önce f(x,y) matrisinin tüm elemanlarının (-1) (X+Y) ile çarpılacağı anlamındadır.

Dönüşümün gösterilmesi

• F(x,y) görüntüsünden elde edilen F(u,v) fourier katsayılar matrisinin

elemanları kompleks sayılardır. Kompleks sayılar DOĞRUDAN görüntülenemez.

(18)

• Onların magnitüdleri (genlikleri) |F(u,v)|alınır. Bunlar bir takım double sınıfı büyük sayılardır. Bu büyük sahada uğraşmak için;

• 1-) |F(u,v)|’deki en büyük değer m bulunur (Bu DC değerdir) ve

| F(u,v)|/m işlemi yapılır. Böylece imshow ile görüntülenebilir.

• 2-) |F(u,v)| ‘yi görmek için mat2gray fonksiyonunu doğrudan kullanabiliriz.

>> x=[1 2;3 4];

>> y=mat2gray(x) y =

0 0.3333 0.6667 1.0000

• Genelde DC değerler çok büyük değerler olacağından; Bunun oluşturacağı görüntüde bu değer baskın çıkar. Bunun önüne geçmek için |F(u,v)| ‘nın logaritmasının alınması daha uygundur.

log(1+ |F(u,v)|)

• Fourier dönüşümün genliğinin görüntülenmesi, transformasyonun spektrumu

diye isimlendirilir.

(19)

MATLAB’da Fourier Dönüşümü

fft :Tek boyutlu DFT yapar(çıkışı vektördür) ifft : DFT vektörünün tersini alır. (inverse fft) fft2: 2 boyutlu DFT yapar. Çıkışı Matristir.

ifft2: DFT matrisinin tersini alır.

fftshift: Bir dönüşümü kaydırır.

Y = fftshift (X) sıfır frekans bileşenini dizinin merkezine kaydırarak X’in Fourier dönüşümünü yeniden düzenler.

Kaynak:

Yrd. Doç. Dr. İlhan AYDIN Ders Notları

Referanslar

Benzer Belgeler

Ankara Üniversitesi Elmadağ Meslek Yüksekokulu Öğretim Görevlisi : Murat Duman..

Daha önceki osilatör devrelerinde yükseltecin girişi ile çıkışı arasında 180֯ faz farkı oluştuğunu gördük.. Bu faz farkı Şekil 6.1.’de verildiği gibi R-C

okuyan Elif 3 haftada kaç sayfa kitap

aldım kutuların her birinde 9 tane lokum olduğuna göre toplam ne kadar lokum almışımdır?. Kırtasiyeden 4 düzüne kalem aldığıma göre ne kadar kalem

Bir kırtasiyeci her birinde 30 karton bulunan kolilerden 6 tane satarsak kaç lira

Çınar’ın bahçesinde 16 elma ağacı olduğuna göre Çınar kaç kilo elma toplamıştır.. bileziklerin 32 tanesi kaç

Taha’nın parası Semih’in parasının 12 katı kadar olduğuna göre Semih ile Taha’nın toplam kaç lirası

TV, uydu haberleşmesi, radyo dalgalarıyla görüntüleme merkezine meteorolojık data iletme, gözetleme radarı, denizcilik yardımı, mikrodalga fırınlar, mikrodalga