Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

1 DİJİTAL GÖRÜNTÜ İŞLEME Doç. Dr. Oğuz Güngör & Y. Doç. Dr. Esra Tunç Görmüş Karadeniz Teknik Üniversitesi Harita Mühendisliği Bölümü 61080 Trabzon

Benzer bir sunumlar


... konulu sunumlar: "1 DİJİTAL GÖRÜNTÜ İŞLEME Doç. Dr. Oğuz Güngör & Y. Doç. Dr. Esra Tunç Görmüş Karadeniz Teknik Üniversitesi Harita Mühendisliği Bölümü 61080 Trabzon"— Sunum transkripti:

1 1 DİJİTAL GÖRÜNTÜ İŞLEME Doç. Dr. Oğuz Güngör & Y. Doç. Dr. Esra Tunç Görmüş Karadeniz Teknik Üniversitesi Harita Mühendisliği Bölümü Trabzon 06/03/16

2 Kullanılan Kaynaklar “Digital Image Processing”, Rafael C. Gonzalez & Richard E. Woods, Addison-Wesley, 2002 Internetten “Goruntu Isleme” konusunda bulabileceginiz hersey 06/03/16

3 Bu Dersin Icerigi Matlab programında Dijital görüntü işlemenin temellerini öğrenmeye devam edeceğiz. Geçen ders; Görüntülerin okunması, gösterilmesi yazılması (imread, imwrite, imshow, vs.) Veri sınıfları: uint8, double, vs. Görüntü çeşitleri: İkili (Binary) ve yoğunluk (intensity) Veri sınıfları ve görüntü çeşitleri arasındaki dönüşümler (A=im2uint8(B); vs.) Dizi indexleri (Vektor (1D) ve matrislerin (2D) gösterilmesi ve kullanılması) Bu dersimizde; Matrislerin indexlenmesi Dizi boyutlarının seçilmesi Matlabda fonksiyon yazmak ve örnekleri 06/03/16

4 Matris İndeksleme Matrisler, köşeli parantezler içerisinde satır vektörler ve bunları noktalı virgüllerle birbirinden ayırarak oluşturulurlar. >> A=[ ; ; ]; % gösterimi 3x3 boyutunda matris oluşturur. Bu A matrisi içindeki 2.satır, 3. sütundaki elemanı bulmak istersek >> A(2,3); % 6 cevabını verecektir. >> C = A( :, 3) ; % ( : ) operatörü blok halinde elemanları seçer, burada tüm satırlar ama sadece 3. sütun anlamına gelmektedir. Bize sadece 3. sütun elemanlarını verecektir. Başka bir şekilde gösterimi ise >> A(1:3,3) ; >> T2 = A(1:2, 1:3) ; % ilk iki satırı ve 3 sütunu seçer. >> A ( :, 2 ) = 1; % A matrisinin tüm satırlarını ve sadece ikinci sütununun tüm elemanlarını 1 yapar. Örnek soru: Üçüncü sütunu 0 olan, ama diğer sütunları A’ya eşit olan bir B matrisini nasıl yapabiliriz ??

5 06/03/16 Matris İndeksleme Cevap >> B = A ; >> B ( :, 3 ) = 0 ; >> A = (end, end ) ; % end ifadesi en son satır ve en son sütunda bulunan elemanı gösterir, burada üçüncü satır, üçüncü sütunda 9 bulunmaktadır. >> A ( 2 : end, end : -2 : 1 ) ; % maximum satır sayısı 3 olduğu için end = 3, 2’den 3 e kadar olan satırlar, maksimum sütun sayısı 3 olduğu için sütun sayısı 3’ten 1’e kadar ama 2’şer atlayarak ( bu durumda sadece 3. ve 1. sütunlar gösterilecektir.) indekslemek için vektörleri kullanırsak; >> E =A ( [ 1 3 ], [ 2 3 ] ) ; % eleman (1,2), eleman ( 1,3); eleman (3,2), eleman (3,3) ‘ larını göstermek anlamına gelmektedir.

6 06/03/16 Matris İndeksleme Daha kompleks bir şekilde adreslemeye örnek vermek gerekirse A ( D ) ; ifadesi kullanılabilir. Burada D mantık matrisidir. >> D = logical ( [ ; ; ] ) ; >> A ( D ) ; % A matrisinin üzerine D matrisini yerleştirince, 0’a denk gelen yerler kaybolur ve bize sadece 1’ e denk gelen elemanları gösterir. Bu durumda cevap; >> ans = 1 6 V = T2 ( : ) % T2 matrinin tüm elemanlarını tek sütun şeklinde sıralar. Matrislerin tüm elemanlarını kullanarak işlem yapmak istediğimizde bize yardımcı olur. Örnek ; >> s = sum ( A ( : ) ) ; % Bu durumda A matrisinin tüm elemanlarının toplamını verir. Ancak sadece >> sum (A) ; olsaydı ayrı ayrı sütun toplamlarını verecekti.

7 06/03/16 Matris İndeksleme Dizi indeksleme kullanarak yapılan bazı görüntü işlemlerine örnek vermek gerekirse; >> f = imread ( ‘ rose.tif ’ ) ; % f görüntüsü 1024 x 1024 boyutunda, uint8 sınıflı >> fp = f ( end : -1 : 1, : ) ; % görüntüyü sondan başlayıp yazdıracağı için baş aşağı döndürür >> fc = f ( 257 : 768, 257 : 768 ) ; % görüntünün bir kısmını yazdırır, görüntünün diğer kısımlarını keser >> fs = f ( 1: 2 : end, 1 : 2 : end ) ; % görüntüyü örnekler, her iki pikselden sadece birini alarak görüntünün boyutunu azaltır. Görüntü hala orijinal haline benzemektedir. >> plot ( f ( 512, : ) ) ; % bize 512. satırındaki elemanlarını grafik üzerinde çizdirir.

8 06/03/16 Matris İndeksleme

9 06/03/16 Görüntülerin Matris Şeklinde Gösterilmesi Görüntünün ilk elemanı A(0,0) olmasına rağmen, matlab’da ilk piksel A(1,1)’den başlamaktadır

10 06/03/16 Görüntülerde basit matris işlemleri A Görüntüsünün transpozesini alırsak B'yi elde ederiz;

11 06/03/16 Görüntülerde basit matris işlemleri A Görüntüsünü y ekseni etrafında döndürüsek, yani düşey yönde ters çevirirsek B'yi elde ederiz;

12 06/03/16 Görüntülerde basit matris işlemleri A Görüntüsünden küçük bir B parçası çıkartabilmek için;

13 06/03/16 Örnek 1

14 06/03/16 Örnek 2

15 06/03/16 Örnek 3

16 06/03/16 Dizi Boyutunu Seçmek komut ( A, boyut) kalıbı kullanılır. Burada A ( M x N ) boyutunda bir dizi, boyut ise skalerdir (bir sayıdır). in >> k = size ( A, 1 ) ; % A nın birinci boyutunu verir, yani satır sayısını gösterir, >> k = size ( A, 2 ) ; % A nın ikinci boyutunu verir, yani sütun sayısını gösterir. Örnek: Önce ki slaytlarda >> plot ( f (512, : ) ) ile 1024x1024 gül görüntüsünün tam orta satırındaki tüm elemanları çizdirmiştik. Aynı işlemi ‘size’ komutu kullanarak nasıl yapabiliriz ?

17 06/03/16 Dizi Boyutunu Seçmek Cevap: 1024x1024 gül görüntüsünün tam orta satırı (512), satır sayısının tam yarısı olacağından ; >> plot ( f (size ( f, 1 ) / 2, : ) ) ile Renkli görüntüler veya multispektral görüntüler gibi 2 boyuttan büyük, çok boyutlu görüntülerin boyutlarını öğrenmek için ; >> ndim ( A ) % kullanılır. 512

18 06/03/16 Bazı Özel Standart Diziler Program yazarken üzerinde testler yapmak için, bazen kolayca örnek matrisler üretmemiz gerekebilir. Bu gibi durumlarda, 7 farklı komut ile değişik matrisler üretebiliriz. Bu komutların içerisine tek bir sayı yazarsak sonuç hep kare matris olur. Bu matris aşağıdaki gibidir; zeros ( M, N ) ; M x N boyutunda tüm elemanları sıfır olan sınıfı double bir matris oluşturur, ones ( M, N ) ; M x N boyutunda tüm elemanları bir olan sınıfı double bir matris oluşturur. true( M, N ) ; M x N boyutunda tüm elemanları bir olan mantık matrisi oluşturur. false( M, N ) ; M x N boyutunda tüm elemanları sıfır olan mantık matrisi oluşturur.

19 06/03/16 Bazı Özel Standart Diziler magic ( M ) ; M x M boyutunda sihirli bir matris oluşturur. Bu matrisin sihirli olmasının nedeni satırlarının, sütunlarının veya diagonal elemanlarının toplamının aynı olmasıdır. Sayıları tamsayı olduğundan çok kullanışlı matrislerdir. rand ( M, N ) ; M x N boyutunda tüm elemanları [ 0 1 ] arasında düzgün olarak dağıtılmış rastgele sayılardan bir matrisi oluşturur. randn ( M, N ) ; M x N boyutunda, sayıları normal dağılıma göre dağılmış (Gauss dağılımı gibi ) ortalaması sıfır, varyansı 1 olan rastgele sayılardan üretilmiş matrisi oluşturur. Örnek ; Aşağıdaki komutların nasıl sonuçlar vereceğini tartışınız. >> A = 5 * ones ( 3, 3 ) ; >> magic ( 3 ) ; >> rand (2, 4) ;

20 06/03/16 M-Fonksiyon Yazmaya Giriş M Dosyaları : Fonksiyon dosyalarıdır. Editörde içerisine bir dizi matlab komutu ve işlem adımlarını yazdığımız yerdir. Verilen input argümanlarını işleyerek, sonuç olarak bize bir veya birden fazla output (çıktı ) verir. m dosyasının bileşenleri ; Fonksiyonun tanımlandığı satır H1 satırı Help text Fonksiyonun gövdesi Komutlar

21 06/03/16 M-Fonksiyon Yazmaya Giriş Fonksiyonun tanımlandığı satır : aşağıdaki kalıp ile kullanılır function [ outputs ] = fonksiyonadı ( inputs ) Örneğin iki görüntünün toplamlarını ve çarpımlarını hesaplayan bir fonksiyon yazarsak, function [ t, c ] = toplacarp ( g1, g2) bu problemde input sayısı iki görüntü (g1 ve g2 ) ve output sayısı da biri iki görüntünün toplamı ( t ), diğeri iki görüntünün çarpımı ( c ) olmak üzere iki tanedir. Fonksiyonların isimleri harf ile başlamalıdır ve daha sonra rakam ile devam edebilir. Eğer tek bir ouput olacaksa köşeli parantez kullanmaya gerek yoktur; function k = fonksiyonadı ( p )

22 06/03/16 Fonksiyon komut penceresinde çağrılırken; >> [ t, c ] = toplacarp ( g1, g2) ; % şeklinde yazılır. H1 satırı : Fonksiyonun tanımlandığı satırdan sonra gelen tek satırlık yorum yazısıdır. Fonksiyonun ne işe yaradığının kısaca anlatır. Yuzde işareti ile başlar, örnek: % Bu fonksiyon iki görüntünün toplamlarını ve çarpımlarını hesaplayan bir fonksiyondur. Ve kullanıcı komut satırına >> help toplacarp % yazıldığı zaman bu açıklama satırı (H1 satırı) ekrana çıkar. M-Fonksiyon Yazmaya Giriş

23 06/03/16 Help text : H1 satırından sonra yorum varsa onları gösterir ve fonksiyon ile ilgili açıklamaları ekranda çıkartır. Fonksiyonun gövdesi : hesaplamaları yapan, çıktı değerlerine sonuçları atayan matlab kodunun hepsidir. Eğer fonksiyonu çağırıp edit etmek – değiştirmek - isterseniz komut satırına: >> edit toplacarp % yazarsanız fonksiyonunuz eğer çalıştığınız klasörde ise ekranda açılacaktır. Yoksa oluşturayım mı diye soracaktır kullanıcıya M-Fonksiyon Yazmaya Giriş

24 06/03/16 Örnek: mycrop isimli bir fonksiyon aşağıda verilmiştir. A görüntüsünden, n1 ve n2 noktasından başlayarak, N1 ve N2 boyutunda bir B görüntüsünün kesilmesi işini yapmaktadır.

25 06/03/16 Matlab operatörleri Aritmetik operatörler İlişkisel operatörler Mantık operatörleri Program akış kontrolü if, else, end; switch; break; continue; vs. Hücre diziler ve yapılar ( cell arays and structure) Gelecek Ders


"1 DİJİTAL GÖRÜNTÜ İŞLEME Doç. Dr. Oğuz Güngör & Y. Doç. Dr. Esra Tunç Görmüş Karadeniz Teknik Üniversitesi Harita Mühendisliği Bölümü 61080 Trabzon" indir ppt

Benzer bir sunumlar


Google Reklamları