DİJİTAL GÖRÜNTÜ İŞLEME Y. Doç. Dr. Esra Tunç Görmüş

Slides:



Advertisements
Benzer bir sunumlar
2. HAFTA MATrix LABoratory MATLAB, mühendislik ve bilimsel uygulamaları ile tüm dünyada bir çok alanda yaygın olarak kullanılan yazılımdır.
Advertisements

Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
SAYISAL DEVRELER BÖLÜM-2 Sayı Sistemleri ve Kodlar
Dosya Yönetimi Dosya, Klasör ve Sürücüler HÜSEYİN ALİOSMANOĞLU.
Hatırlatma Ortogonal bazlar, ortogonal matrisler ve Gram-Schmidt yöntemi ile ortogonaleştirme vektörleri aşağıdaki özeliği sağlıyorsa ortonormaldir: ortogonallik.
Determinant Bir kare matrisin tersinir olup olmadığına dair bilgi veriyor n- boyutlu uzayda matrisin satırlarından oluşmuş bir paralel kenarın hacmine.
% A10 B20 C30 D25 E15 Toplam100.  Aynı grafik türü (Column-Sütun) iki farklı veri grubu için de kullanılabilir. 1. Sınıflar2. Sınıflar A1015 B20 C3015.
LUCA Bilgisayarlı muhasebe programı
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
BİLGİSAYAR PROGRAMLAMA MATLAB Yrd.Doç.Dr. Cengiz Tepe.
Örnek 1 Kullanıcının girdiği bir sayının karesini hesaplayan bir program yazınız.
1. Ders Bir, İki ve Üç Yazarlı Eserlerin Kataloglanması Prof. Dr. Bülent Yılmaz Arş. Gör. Tolga Çakmak.
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
9. HAFTA 25 Nisan2016. Fonksiyon M-Dosyaları Fonksiyon dosyaları ilk satırda “function” kelimesi bulunan “.m” uzantısı bulunan dosyalardır. MATLAB içinde.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
DİJİTAL GÖRÜNTÜ İŞLEME Y. Doç. Dr. Esra Tunç Görmüş
ÇOK BOYUTLU SİNYAL İŞLEME
Bölüm 2 C Dilinin Temelleri
BİLGİSAYAR PROGRAMLAMA DERSİ
Excel 2007.
İÇİNDEKİLER NEGATİF ÜS ÜSSÜ SAYILARIN ÖZELLİKLERİ
Ayrık Zaman Hopfield Ağı ile Çağrışımlı Bellek Tasarımı
BM-103 Programlamaya Giriş Güz 2016 (3. Sunu)
BM-103 Programlamaya Giriş Güz 2016 (8. Sunu)
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
BM-103 Programlamaya Giriş Güz 2016 (7. Sunu)
Problem Çözme ve Algoritmalar
APARTMANLAR OYUNU NEDİR?
Yapay Sinir Ağı Modeli (öğretmenli öğrenme) Çok Katmanlı Algılayıcı
PROGRAMLAMA TEMELLERİ
MODEL YETERSİZLİKLERİNİ DÜZELTMEK İÇİN DÖNÜŞÜMLER VE AĞIRLIKLANDIRMA
Yrd. Doç. Dr. Mustafa Akkol
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H05
BİLGİSAYAR PROGRAMLAMA Ders 11: İşaretçi (Pointer) Kullanımı
Spektral Teori ters dönüşümler bunların genel özellikleri ve asıl
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
Çiğdem ÇOBAN Bilgisayar Mühendisi
BİYOİNFORMATİK NEDİR? BİYOİNFORMATİKTE KULLANILAN SINIFLAMA YÖNTEMLERİ
RESİM VE RESİM DÜZENLEME İŞLEMLERİ
DOSYA BÜYÜKLÜKLERİ İkili Sistem Dosya Büyüklükleri ve Hesaplamalar
Klavye Kullanımı.
Temel Bilgisayar Bilgileri
PROBLEM ÇÖZME VE ALGORİTMALAR
Bilgisayar Mühendisliğine Giriş
KUVVET, MOMENT ve DENGE 2.1. Kuvvet
1. Konfigürasyon oluşturma
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
PARAMETRİK HİPOTEZ TESTLERİ
Bölüm 7 İfadeler ve atamalar.
Bölüm 4: Kontrol Yapıları I (Seçim Yapma)
YAPISAL PROGRAMLAMA Hafta-4
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
B- Yaygınlık Ölçüleri Standart Sapma ve Varyans Değişim Katsayısı
Bilgisayar Bilimi Koşullu Durumlar.
Bilgisayar II 8 Mart Mart
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
Fonksiyonlar ve Alt Programlar
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
Bilgisayar Bilimi Fonksiyon Yazma.
Değerler ve Değişkenler
NİŞANTAŞI ÜNİVERSİTESİ
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
Kesikli Olay benzetimi Bileşenleri
İleri Algoritma Analizi
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

DİJİTAL GÖRÜNTÜ İŞLEME Y. Doç. Dr. Esra Tunç Görmüş 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 ogungor@ktu.edu.tr, etunc@ktu.edu.tr 06/03/16 1 1

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

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 3 3

Matris İndeksleme Matrisler, köşeli parantezler içerisinde satır vektörler ve bunları noktalı virgüllerle birbirinden ayırarak oluşturulurlar. >> A=[ 1 2 3 ; 4 5 6 ; 7 8 9 ]; % 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 ?? 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. 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 ( [ 1 0 0 ; 0 0 0 ; 0 0 1 ] ) ; >> 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. 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. 06/03/16

Matris İndeksleme 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 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; 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; 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; 06/03/16

Örnek 1 06/03/16

Örnek 2 06/03/16

Örnek 3 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 ? 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 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. 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) ; 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 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 ) 06/03/16

M-Fonksiyon Yazmaya Giriş 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. 06/03/16

M-Fonksiyon Yazmaya Giriş 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 06/03/16

Örnek: mycrop isimli bir fonksiyon aşağıda verilmiştir Ö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. 06/03/16

Gelecek Ders 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) 06/03/16