T.C. TRAKYA ÜNİVERSİTESİ

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "T.C. TRAKYA ÜNİVERSİTESİ"

Transkript

1 T.C. TRAKYA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ Gerçek Zamanlı İnsan Yüzü Belirleme Nadir SUBAŞI Yüksek Lisans Tezi Bilgisayar Mühendisliği Anabilim Dalı Danışman: Yrd. Doç Dr. Rembiye Kandemir Edirne 2011

2 T.C. TRAKYA ÜNİVERSİTESİİ FEN BİLİMLERİ ENSTİTÜSÜ Gerçek Zamanlı İnsan Yüzü Belirleme Nadir SUBAŞI Yüksek Lisans Tezi Bilgisayar Mühendisliği Anabilim Dalı Bu tez 18/01/2011 tarihinde aşağıdaki jüri tarafından kabul edilmiştir. Yrd.Doç.Dr Rembiye KANDEMİR Danışman Yrd.Doç.Dr Hilmi KUŞCU Üye Yrd.Doç.Dr Deniz TAŞKIN Üye

3 iii Yüksek Lisans Tezi, T.C. Trakya Üniversitesi, Fen Bilimleri Enstitüsü, Bilgisayar Mühendisliği Anabilim Dalı. ÖZET Son yıllardaki askeri, ticari ve yasal uygulamaların artması nedeniyle yüzlerin gerçek zamanlı olarak tanınması sıklıkla üzerine çalışmalar veren bir konu başlığıdır. Yüz bulma bu konu başlığının en zorlu ve karmaşık alt başlığı olarak literatürde yer almaktadır. Doğru, güvenilir ve gerçek zamanlılıktan ödün vermeden hazırlanması gereken yüz bulma işleminin zorluğu, yüzün çok boyutlu karmaşık ve anlamlı görsel objelere sahip olmasında yatmaktadır. Bu çalışmada gerçek zamanlı akan video görüntüsü üzerinde insan yüzü aday bölgelerinin yerinin saptanması üzerine çalışmalar yapılmıştır. Görünüm tabanlı ve Özellik tabanlı yüz bulma uygulaması olarak iki uygulama tasarlanarak bu iki uygulamanın performansı karşılaştırılmıştır. Özellik tabanlı yüz bulma uygulamasında MATLAB Simulink ortamında hazırlanmış olup ten rengine göre bir yüz aday seçimi gerçekleştirilmiştir. Görünüm tabanlı yüz bulma uygulamasında ise yüzün boyut ve pozuna bağımlı olmayan değişimlerine karşı güçlü olan Haar özniteliklerini kullanan Haar Peşpeşe Sınıflayıcılar (Haar Cascade Classifier, HPS) kullanılmıştır. Uygulama da MATLAB programlama dili Image Acquisition ve Image Processing toolları, Intel OpenCV kütüphanesi kullanılmış ve grafiksel kullanıcı ara yüzü ile görselleştirilmiştir. Bu tez, Trakya Üniversitesi 2008/84 nolu proje kapsamında TÜBAP tarafından desteklenmiştir. Bu tez 2010 yılında yapılmıştır ve 70 sayfadan oluşmaktadır. Anahtar Kelimeler: Gerçek zaman, Yüz Belirleme, Haar Cascade, Adaboost, Özellik Tabanlı, Görünüm Tabanlı, Simulink, MATLAB

4 iv Master Thesis Trakya University Graduate School Of Natural And Applied Sciences Department Of Computer Engineering. ABSTRACT Recent years, military, commercial and legal practices due to the increase in real-time face recognition are a major subject that often works on. Face detection the most challenging and complex sub-heading as the title of this topic is described in the literature. The Face detection system needs be accurate,reliable and without compromissing of real-time.the Difficulty of face detection system is faces have got multi-dimensional and meaingfull visual objects. In this study, real-time streaming video images of human faces on the detection of the location of candidate regions studied on. Appearance-based and Feature-based face detection application is designed and these two applications are compared. In feature-based face detection application, From the MATLAB Simulink environment has been prepared and carried out by the color of a face candidate selection. In appearancebased face detection application, Haar Cascade Classifier (HPS) which use Haar Features, are used. In this study, MATLAB Programming Language, Image Acquisition, Image Processing Tools and OpenCV Library are used. And it is visualized with the graphical user interface This thesis has been supported by the Trakya University TÜBAP project No. 2008/84. This thesis is made in 2010 and consists of 70 pages. Keywords: Real Time, Face Detection, Haar Cascade, Adaboost, Feature Based, Appearance Based, Simulink, MATLAB

5 v TEŞEKKÜR Çalışmalarım sırasında bilimsel katkıları ile beni yönlendiren tez danışman hocam Sayın Yrd. Doç Dr. Rembiye KANDEMİR e çok teşekkür ederim. Tezime katkıda bulunan ve tez konusunda yapıcı düşüncelerini paylaşan Yrd.Doç.Dr Hilmi KUŞCU ve Yrd.Doç.Dr Deniz TAŞKIN hocalarıma teşekkür ederim. Yüksek lisans, tez sürecinde benden maddi manevi desteğini esirgemeyen aileme ve eşime en içten teşekkürlerimi sunarım.

6 vi İÇİNDEKİLER ÖZET... iii ABSTRACT... iv TEŞEKKÜR... v İÇİNDEKİLER... vi ŞEKİL LİSTESİ... viii ÇİZELGELER LİSTESİ... x KISALTMA LİSTESİ... xi 1. GİRİŞ YÜZ TESPİTİNE YÖNELİK ARAŞTIRMALAR Yüz Bulmada Kullanılan Yöntemler Bilgi tabanlı yüz bulma Özellik tabanlı yüz bulma Şablon eşleme yöntemi ile yüz bulma Görünüm tabanlı yüz bulma Doku tabanlı yüz bulma yöntemi Yüz Bulma İşleminde Karşılaşılan Problemler Pozlar Yüz boyutu Ten rengi ve farklı ırklar Yüz ifadeleri Engeller Yüz özellikleri... 12

7 vii Işık durumu MATERYAL VE METHOD Sayısal İmge İşleme Sayısal imge işleme nedir? Renk Uzayları RGB modelleri Renk doygunluk modelleri Renk uzaylarında dönüşümler Mahalanobis uzaklığı MATLAB Hakkında Genel Bilgi MATLAB ile yazılım geliştirmek Sabit görüntünün elde edilmesi Görüntü işleme de kullanılan MATLAB komutları Hareketli görüntünün elde edilmesi Simulink OpenCV Kütüphanesi Haar Peşpeşe Sınıflayıcılar (HPS) GELİŞTİRİLEN UYGULAMA VE SONUÇLARI Özellik Tabanlı Yüz Bulma Uygulaması Görünüm Tabanlı Yüz Bulma Uygulaması SONUÇ, DEĞERLENDİRME VE ÖNERİLER KAYNAKÇA EK-A GÖRÜNÜM TABANLI YÜZ BULMA UYGULAMASI ARAYÜZ KODU ÖZGEÇMİŞ... 69

8 viii ŞEKİL LİSTESİ Şekil 2.1. Farklı Açı/Pozlardaki İnsan Yüzü Şekil 2.2. Farklı Boyutlardaki Yüzler Şekil 2.3. Farklı Irk ve Renkteki İnsan Yüzleri Şekil 2.4. Farklı Yüz İfadelerindeki Yüzler Şekil 2.5. Engellemeler Şekil 2.6. Aynı Kişiye Ait Farklı Yüz Özellikleri Şekil 2.7. Aydınlatma Farklılığı Şekil 3.1. Newton Prizması Şekil 3.2. Temel Renk Sistemleri ve Aralarındaki İlişkiler Şekil 3.3. RGB Renk Uzayı Köşegen Noktalarındaki Renk Karşılıkları Şekil 3.4. RGB Uzayında Renk Oluşumu Şekil 3.5. HSV Renk Uzayının Konik ve Silindirik Görünümleri Şekil 3.6. H-S-V Değerlerinde Değişimler ve Etkileri Şekil 3.7. RGB uzayından HSV uzayına dönüşüm Şekil 3.8. MATLAB Çalışma Ortamı Şekil 3.9. Görüntünün Sayısallaştırılması Şekil Resmin okunup filtre edilip görüntülenmesi Şekil Simulink Blok Diyagramları Şekil İntegral Blok Diyagramı Şekil 3.13 Kazanç Blok Diyagramı Şekil İntegral Bloğunun parametre ekranı Şekil OpenCV İle Hazırlanan Bir Uygulama Şekil HPS de kullanılan Haar öznitelikleri Şekil HPS Basit Yapılı Sınıflandırıcılar Şekil 4.1. Özellik Tabanlı Yüz Bulma Uygulamasının Akış Diyagramı Şekil 4.2. Simulink Model Tasarımı Şekil 4.3. Özellik tabanlı yüz bulma uygulamasının tek kişilik çalışma ekranı Şekil 4.4. Özellik tabanlı yüz bulma uygulamasının çoklu kişi için çalışma ekranı Şekil 4.5. Görünüm tabanlı yüz bulma uygulamasının akış diyagramı... 57

9 ix Şekil 4.6. HPS'nin alt sistemi Şekil 4.7. Geliştirilen görünüm tabanlı yüz bulma uygulamasının aydınlık ortamdaki çalışma şekli Şekil 4.8. Geliştirilen görünüm tabanlı yüz bulma uygulamasının aydınlık olmayan ortamdaki çalışma şekli Şekil 4.9. Geliştirilen görünüm tabanlı yüz bulma uygulamasının çalışma şekli Şekil Deney Grubundan Yanlış Yüz Adaylarına Örnek Şekil Deney grubundan Engellemeler olsa dahi Yüz adayı olarak Bulunanlar Şekil Deney Grubu içerisinden Bulunan Başarılı Yüzler... 60

10 x ÇİZELGELER LİSTESİ Çizelge 3.1. Elektromanyetik Spektrumda Renk Dalga Boyları ve Frekansları Çizelge 3.2. RGB Uzayında Köşegen Noktaların Oluşturduğu Renk Karşılıkları Çizelge 3.3. HSV 0.75 Değerinde köşegen noktaların oluşturduğu renk karşılıkları Çizelge 3.4. Temel MATLAB Operatörleri Çizelge 3.5. Bazı Temel MATLAB Fonksiyon ve Komutları Çizelge 4.1. Özellik Tabanlı Yüz Bulma Uygulaması için deney grubu başarısı Çizelge 4.2. Görünüm Tabanlı Yüz Bulma Uygulaması için deney grubu başarısı... 61

11 xi KISALTMA LİSTESİ BSD CMYK GUI HPS HSI HSV MATLAB OpenCV RGB YCbCr :Berkeley yazılım dağıtım lisansı(berkeley Software Distribution) :(Cyan Magenta Yellow Dark) :Grafik Kullanıcı Arayüzü (Grafic User Interface) :Haar Peşpeşe Sınıflayıcılar (Haar Cascade Classifier) :(Hue Saturation Intensity), :(Hue Saturation Value) :MATrix LABoratory : Açık kaynak Bilgisayarlı Görü (Open Source Computer Vision) :Kırmızı Yeşil Mavi (Red, Green, Blue) :(Luminance Chorama Blue Chorama Red)

12 1 1. GİRİŞ Yüz tanıma problemi görüntü işleme, bilgisayarla görü ve örüntü tanıma konularında çalışan araştırmacıların yoğun olarak üzerinde çalıştıkları güncel, önemli ve zor problemlerden biridir. Bu konuda uzun zamandır çok sayıda bilim adamı çalışıyor olmasına karşın, problemin zorluğu nedeniyle gerçek yaşamda karşılaşılan sorunları çözmeye yetecek başarıma sahip yüz tanıma sistemleri hala geliştirilememiştir. Özellikle yakın geçmişte ve günümüzde ortaya çıkan saldırılar sonucu giderek artan güvenlik gereksinimleri diğer biyometrik yöntemlere olduğu gibi yüz tanımaya olan gereksinimi ve ilgiyi artırmıştır. Bilgisayarlı görü ve her türlü görüntü işleme uygulamaları, savunma sanayinden (robotik), güvenlik sistemlerine (akıllı kamera sistemleri), robot endüstrisinden (yapay zekâ), tıp bilimlerine (optik), ticari amaçlardan (sinyal işleme), web sayfalarındaki filtrelemeye (makine öğrenmesi) kadar çok geniş bir yelpazede kendisine yer bulur. Görüntünün dış dünyadan yakalanması ve sayısal dönüşümün sağlanıp işlenebilir hale getirilmesi kameralar ve yazılımdaki kamera sürücüleri vasıtasıyla yapılır. Hareket algılama; ardışık iki çerçeve arasında aynı olmayan piksellerin bulunarak bu çerçeveler arasında mantıksal ilişki kurmayı temel alır. Böylece önceki çerçevede tespit edilen pikseller, sonraki çerçevedeki yeni konumuna göre belirli bir yönde hareket ettiği düşünülür. Temel olarak öbek, bölge veya piksel düzeyinde taramalar yapılabilir. Öbek (Blok) düzeyinde taramalar da imge basit küçük öbeklerine ayrılmakta ve seçilen bu öbeğe en iyi karşılık gelen sonraki çerçevedeki öbek aranmaktadır (Telatar, 2009). Bölge bazlı yöntemler de birbirini takip eden her çerçevede meydana gelen değişim aranır. Değişim gösteren bölgenin hareket ettiği düşünülür. Piksel bazlı yöntemler de ise işlenmiş piksel grubunun taraması yapılarak değişim oranı ölçülmektedir. Günümüzde yüz tespiti ve analizi farklı alanlar da kullanılmaktadır. Örneğin, bir futbol maçında ortalama seyirci sayının çıkartılması, açık alanlarda (miting, toplantı)

13 2 kişilerin sayılması, belirlenen yüzlerde bir şüphelinin aranması, kişilerin ruhsal durumu ve ön görülebilir hareketinin tespiti ve takibi yapılabilmektedir. Örneğin, yüz tespit sistemine yakalanan bir şüphelin mimik ve jestlerinden o andaki hareket planı çıkartılabilir. Bir video konferansında hareket halinde kişilerin sistemler tarafından sürekli taranması ve görüş çerçevesinin merkezinde tutulmaları sağlanabilir. Bir araç sürücüsünün dikiz aynasına konulan standart bir kameradan yüz tespiti yapılarak uykusuzluk durumu takip edilebilir olumsuz durumlar da araç güvenlik sistemi çalıştırılıp aracın sürücüyü sarsıp uyandırması sağlanabilir. Askeri ve güvenlik uygulamaların da kameranın etkin görüş sahasındaki yasa dışı birimlere ait yüzlerin tespiti ve bunların ateşli unsur tarafından takibi ve imhası sağlanabilir. Bilgisayarlı görü, görüntü algılama, hareket takibi, insan yüzünün tespiti konusunda çok sayıda akademik ve ticari çalışmalar mevcuttur. Bu çalışmada, günlük yaşamımızda farklı amaçlarla kullanılabilecek gerçek çalışma koşullarında yüz bulma sisteminin geliştirilmesi amaçlanmaktadır. Bu amaçla iki farklı yüz bulma tekniği ile hazırlanan MATLAB ortamında geliştirilen iki farklı uygulama karşılaştırılmıştır. Birinci uygulama içerisinde Simulink ortamında geliştirilen temeli ten rengi seçimine dayanan bir özellik tabanlı yüz bulma uygulaması geliştirilmiştir. Ten rengi seçiminde ise Mahalanobis Uzaklığı algoritması ve MATLAB ın görüntü işleme araç kutusu kullanılmıştır. İkinci uygulama içerisinde ise Intel in OpenCV Kütüphanesi, HPS ve MATLAB ın görüntü işleme araç kutusu kullanılmıştır. HPS eğitilmesi ise Adaboost algoritması ile gerçekleştirilmiştir. Birinci Bölümde, çalışmada kullanılan temel yaklaşımlar hakkında literatür araştırması hakkında bilgi verilmiştir. İkinci Bölümde, çalışmada kullanılan yöntemler ve araçlar açıklanmıştır. Bu kapsamda Sayısal imge işleme hakkında bilgi verilmiş, sıklıkla kullanılan renk uzayları ve dönüşümlerinden bahsedilmiştir.

14 3 Üçüncü Bölümde, geliştirilen uygulamalar için yapılan çalışmalar açıklanmıştır. Geliştirilen yüz bulma sistemlerinde kullanılan ve geliştirilen yöntemler açıklanmaktadır. Dördüncü Bölümde, geliştirilen uygulamaların deneysel sonuçları belirtilmiştir. Son Bölümde ise uygulamaların değerlendirilmesi yapılmış ve gelecekte yapılabilecek çalışmalardan bahsedilmiştir.

15 4 2. YÜZ TESPİTİNE YÖNELİK ARAŞTIRMALAR Yüz tespitine yönelik çalışmalar akademik, ticari, güvenlik ve askeri ve benzeri farklı alanlarda kullanımı yaygınlaşmaktadır. Bu konuda ilk çalışmalar Yang G. ve S.H Thomas tarafından 1992 yılında ivme kazanması sağlanmıştır (Yang G. ve S.H Thomas, 1992). Yüksek ivmeli devam eden gelişmeler ile şuan ki karmaşık yapıya ulaşılmıştır. Yüz bulma işlemlerinde sıklıkla kullanılan yöntemler ve karşılaşılan zorluklar aşağıda belirtilmiştir Yüz Bulmada Kullanılan Yöntemler Son yıllarda askeri, ticari ve yasal uygulama alanlarının artması nedeniyle yüzlerin otomatik olarak tanınması çok popüler bir konu haline gelmiştir. Yüz tanıma, en kabul edilebilir biyometriklerden birini karşılar. Genellikle yüz tanıma 3 parçadan oluşur. Bunlar; yüz tespiti, özellik çıkarımı ve tanımadır. Yüz bulma problemi için bir bilgisayar modeli kurmak oldukça zordur. Bu yüzden doğru, güvenilir, gerçek zamanlı yüz tanıma sistemi için yüz bulma işleminin doğru olması gereklidir. Bu zorluk yüzlerin çok boyutlu, karmaşık ve anlamlı görsel objeler olmalarından kaynaklanmaktadır(yılmaz, 2001). Oysa insan beyni, bir an gördüğü bir yüzü yıllar sonra bile yaşlanma, saç uzaması gibi değişikliklere rağmen birkaç saniye içerisinde hatırlayabilmektedir. Yüz bulma, insan gözüne göre basit bir olay olmasına rağmen, bir bilgisayara süreci otomatikleştirmek için çeşitli görüntü işleme tekniklerinin kullanımını gerektirir.

16 5 Yüz bulma verilen bir resimdeki veya resim dizisindeki, ayrı sahnelerdeki yüz veya yüzlerin yerini bulma işlemidir. Yüz bulma tekniklerinden öne çıkan metotlar aşağıdaki gibidir. Bilgi Tabanlı Metot Özellik Tabanlı Metot Şablon Eşleme Metodu Görünüm Tabanlı Metot Doku Tabanlı Metot Bilgi tabanlı yüz bulma 1994 yılında Yang ve Huang tarafından ilk bilgi tabanlı yüz bulma uygulaması gerçekleştirilmiştir. Bu metotta daha önce tanımlanan kişinin yüz bilgisi, ilgili kurallar ile yüzün özellikleri arasındaki ilişkiyi karşılaştırır(sütçüler, 2006). Çeşitli kurallar tanımlanıp elde edilen bilgiler kullanılarak sonuca yaklaşılır. Bu kurallar yüzün karakteristiğinin özeti ile yüzün özellikleri arasındaki ilişkilerdir. Bu kurallara en basit örnek, kişinin yüzünde her zaman iki göz, bir burun ve bir ağız bulunmasıdır. Ancak biz yüz ile ilgili daha yeterli ve karmaşık kurallara ihtiyaç duyulur. Bu kuralları tanımlama bu yöntemin en büyük zorluğudur. Örneğin, kişi bilgilerinin iyi bir koda dönüştürülerek ifade edilmesi oldukça zordur. Eğer kurallar basit olarak tanımlanırsa, genellikle yüzün yanında diğer objelerde tespit edilir. Eğer kuralları daha kesin ve özel tanımlarsak büyük olasılıkla sadece bir tane doğru yüz bulunabilir. Genellikle kullanılan iki yöntem bulunmaktadır: Farklı çözünürlüklerde odaklanma Yukarıdan Aşağıya yaklaşımı

17 6 Farklı çözünürlüklerde odaklanma, çözüm olarak kullanılan resimde düşük çözünürlükte yüzün merkez ve çevresini renk yoğunluklarını ayarlar ve belirgin hale getirir. Yukarıdan aşağı yaklaşımda kurallar yüksek bilgili olanlardan düşüklere doğru sıralanarak belirlenir. Bu yüzden yöntemin adı Yukarıdan Aşağıya yöntem olarak kabul edilmiştir. Bilgi tabanlı yüz bulma metodunun diğer yöntemlere göre avantajları şunlardır: Yüze ait kuralları belirlemek oldukça kolaydır. Kodlanarak elde edilen test verisinden özellikler çıkarılarak aday yüzlerin tanımlanması oldukça kolaydır. Karmaşık olmayan arka plan resimlerde başarılı sonuçlar verir. Dezavantajları aşağıdakilerdir: Yüze ait bilgileri kurallara çevirmek zor bir iştir. Çok fazla detaya inilirse yüzü bulmak zor olurken, genel bilgilerle de birden fazla yüz bulunabilir. Yüzün ışık, poz durumuna göre bulma işlemi zorlaşır Özellik tabanlı yüz bulma Özellik tabanlı yüz bulma yöntemi, insan yüzünde bulunan değişmeyen özellikleri kullanarak hedefe ulaşmayı amaçlayan yaklaşımdır. Bu işlem, aşağıdan yukarıya yöntemi kullanarak gerçekleştirir(xiong, 2004). Öncelikle yüze ait karakteristik özellikler belirlenir ve yüz bulma işlemi gerçekleştirilir. Avantajları şunlardır: Yüze ait karakteristik bilgiler pozdan bağımsız olduğundan bulma işlemi bundan etkilenmez.

18 7 Farklı yüz bulma yöntemleri ile bütünleşik olarak çalışabilir. Dezavantajları ise şunlardır: Resimlerde bulunan gürültü, ışığın şiddeti bu yöntemi olumsuz olarak etkiler. Uygulama yapılan resim karışık arkalana sahip olduğunda bu yaklaşım optimum sonucu vermekte zorlanır Şablon eşleme yöntemi ile yüz bulma Şablon eşleme yöntemi yüz tespitinde etkin kullanılan yöntemlerden biridir. Yüzün tespiti için hazır yüz şablonları kullanılır. Şablon eşleme tekniği, bir görüntüde şablon görüntüsüne benzeyen küçük parçaların bulunması esasına dayanmaktadır. Şablon görüntüsü büyük görüntü üzerinde dolaştırılır ve her pikselde eşleme yapılarak benzerlik ölçülür. Benzer şekillerin piksel koordinatları kaydedilir. Şablon ön cepheden çekilmiş insan yüzleri için oluşturulur temel olarak yüz, burun, göz kısımları belirlenir(yang,2002). Avantajı şudur: Diğer metotlara göre gerçekleştirilmesi kolaydır. Dezavantajları ise şunlardır: Şablonlar yüze yakın seçilmelidir. Farklı döndürülmüş pozlarda sonuca ulaşmak oldukça zordur. Ön cepheden çekilmiş pozlarda başarıya ulaşırlar.

19 Görünüm tabanlı yüz bulma Görünüm tabanlı yaklaşımda daha önceden tanımlı yüz şablonu ya da öznitelik şablonların özelliklerinden faydalanarak yapılan yüz bulma işlemi çok yaygın olarak kullanılır. Yüzün görünüşünü örnek eğitim setiyle birlikte öğrenebilen yüz bulma yöntemidir(park,2003). Metodun aşamaları şunlardır: Eğitim verilerinin belirlenmesi Sınıflama ve eğitim metotları Sunuş Önişleme Eğitim Arama stratejisinin belirlenmesi Yüzün tespiti Görünüm tabanlı yüz bulma yöntemi eğitim verilerinin belirlenmesi aşamasında pozitif ve negatif örneklerle gerçekleşir. Pozitif örnekler yüz olan resimleri negatifler ise yüz olmayanları temsil eder. Sınıflama ve eğitim metotları dağıtım tabanlı, ağ tabanlı ya da diğer istatistik tabanlı metotlardır. Dağıtım tabanlı metotta girilen kişinin yüz resimleri tüm resim uzayının alt uzayı olarak belirlenir. Temel Bileşen Analizi bu yöntemi kullanır. Ağ tabanlı yaklaşımda yapay ağlar kullanılarak yüz tespitinde bulunulur. Yapay sinir ağları yaklaşımı bu yöntemi kullanır. İstatistikî yöntemde güçlü matematik yapısı kullanılarak yapılan yaklaşımdır. Destek vektör makineleri örnek olarak verilebilir. Ön işlemede maskeleme, aydınlık seviyesinin belirlenmesi, histogram eşitliği işlemleri yapılır. Eğitim kısmında ise eldeki verilerle ilgili eğitim metotları kullanılarak eğitim tamamlanır. Temel Bileşen Analizi, destek vektör makinesi, adaboost sıkça kullanılan görünüm tabanlı yüz bulma yöntemlerindendir(park, 2003).

20 Doku tabanlı yüz bulma yöntemi Doku tabanlı yüz bulma yöntemi, yüz belirlemede dokusal özellikleri kullanır. Yüzün yapısal belirgin özelliklerini kullanır. Eğitim için az sayıda örnek kullanarak sonuca giden yöntem olarak bilinir. Özellik uzayını yüksek boyutlardan daha alt seviyelere indirir ve algoritmada bulunan karmaşık hesaplamaları azaltır(ross, A., Manian,V., 2004) Yüz Bulma İşleminde Karşılaşılan Problemler Sabit veya hareketli görüntüler içerisinde olması muhtemel yüzler çerçevenin farklı bölgelerinden verilebilir. Genellikle insan yüzünü bulmada karşılaşılan problemlerinden öne çıkanları aşağıda verilmiştir.

21 Pozlar Bir görüntüde insan yüzü her hangi bir poz ile gözükebilir. Yani yüz üç eksenden her hangi bir açıda olabilir(şekil 2.1), veya bu açıların kombinasyonlarında bulunabilir. Her bir farklı açıdaki yüz bilgisayar için farklı bir yeni yüz tanımını gerektirir(gözlerin burunun veya ağzın yerlerinin değişmesi veya farklı açılardan görünüşlerinin farklı olması gibi). Şekil 2.1. Farklı Açı/Pozlardaki İnsan Yüzü Yüz boyutu Bir görüntü birden fazla yüz barındırabilir ve görüntü karesindeki her bir yüz farklı boyutlarda olabilir. Yani bir veya daha fazla yüz diğerlerinden küçük veya büyük olabilir. Bu durumda bir görüntü karesi içerisindeki farklı boyutlarda yüzleri algılamak ve yerlerini belirlemek gerekir. Böyle bir örnek Şekil 2.2 de gösterilmektedir. Şekil 2.2. Farklı Boyutlardaki Yüzler

22 Ten rengi ve farklı ırklar Bir görüntü içerisinde farklı ırklardan gelen insanlar olabilir. Her ırka ait ten rengi, yüz ifadeleri ve tanımlı özellikleri değişiklik gösterir. Bu durum Şekil 2.3 de gösterilmektedir. Şekil 2.3. Farklı Irk ve Renkteki İnsan Yüzleri Yüz ifadeleri İnsan yüzünün değişen ifadeleri değişik zamanlarda farklı gözükür. Örnek olarak ağlayan ve gülen yüzler arasındaki fark çok belirgindir (Şekil 2.4). Bu durumu algılama için kurulması gereken yüz modeli seçimi etkileyebilir. Şekil 2.4. Farklı Yüz İfadelerindeki Yüzler

23 Engeller Görüntüde yüz veya yüzlerin bir kısmı başka bir nesne tarafından engellenebilir. Örneğin başka bir yüz tarafından engellenme ile yüzün bir kısmının görülememesi, gözlük(özellikle güneş gözlüğünün gözlerin seçilmesini engellemesi), şapka veya başka bir yüz giysisi de benzer engellemeleri gündeme getirirler. Bu durum Şekil 2.5 te gösterilmektedir Şekil 2.5. Engellemeler Yüz özellikleri Aynı kişi bıyıklı ve bıyıksız, sakallı ve sakalsız görüntülerine farklı gözükebilir. Ayrıca değişik yüzler için genişlik, uzunluk ve yüz çevresi farklıdır ve bu nedenle yüzün genel bir matematiksel modelinin geliştirilmesinde zorluklarla karşılaşılır. Şekil 2.6 da farklı özelliklere sahip yüzler gösterilmektedir. Şekil 2.6. Aynı Kişiye Ait Farklı Yüz Özellikleri

24 Işık durumu Farklı ışık şiddeti durumlarında görüntü içerisindeki yüz değişik biçimlerde gözükebilir. Böyle durumlarda gölge vs. gibi etkiler nedeniyle aynı yüzün bazı özellikleri netleşebilir ve bazılar da daha kötü algılanabilir. Şekil 2.7 de aynı kişi farlı ışık durumları için gösterilir. Burada ilk resimde yüzün yarısı son resimde ise farklı açıdaki aydınlatma nedeniyle diğer yarısı seçilememektedir. Böylesi bir problem için yüz simetrisi yaklaşımları kullanılabilir. Şekil 2.7. Aydınlatma Farklılığı Yukarıda bahsedilen sınırlayıcı etkilerden dolayı yüz bulma işinin zor olduğu söylenebilir. Bilgisayar ortamında iki boyutlu sabit görüntü için yüz algılama probleminin yüz sayısı, yüz boyutu ve yerinin bilgisi önceden olmadan çözülmesi daha da zordur. Buna karşılık görüntü dizilerinde bu iş nispeten kolaydır. Çünkü yüzün yeri yüzün hareketinden kolayca tahmin edilebilir. Bu konuda geliştirilen bazı ticari yazılımlarda örneğin BioID ve FaceIt, yüz ve gözlerin hareketinden faydalanır ve yüz yeri ve boyutunun bir kısım önsel bilgisi kabulü yaparak yüz bulma işi gerçekleştirilir. Yüz tanıma, yüz onaylama ve yüz ifadesi tanıma sistemleri için önceden yüz bulmak gerekmektedir.

25 14 3. MATERYAL VE METHOD Tez çalışmasında kullanılan metotlar ve bilgi alt yapısı olarak sayısal imge işleme, renk uzayları ve dönüşümleri, gerçekleştirilen uygulamanın programlama tarafında MATLAB ve Simulink hakkındaki bilgiler bu bölümde anlatılacaktır Sayısal İmge İşleme Sayısal imge işleme gerçek ortamda bulunan (görünen) imgelerin sayısal bilgisayar ortamına aktarılmış haline denmektedir. İmge bilgisayar ortamına aktarılması sırasında en az kayıp amaçlanmaktadır. Gelişen algılayıcılar sayesinde bu kayıp miktarı ihmal edilebilecek oranlardadır Sayısal imge işleme nedir? İmge, iki boyutlu f(x,y) fonksiyonu olarak tanımlanabilir ve herhangi bir (x,y) koordinatı için / fonksiyonunun genliği, o noktada imgenin yoğunluğu olarak adlandırılır. Bütün x,y ve fonksiyon genlikleri sonlu ve tamsayı ise bu imge, sayısal imge olarak adlandırılır. Sayısal imge işleme, sayısal imgelerin sayısal bilgisayar ile işlenmesi anlamını taşır. Her sayısal imge sonlu sayıda elemandan oluşur ve her bir elemanın kendine özel bir yeri ve değeri vardır. Bu elemanlar, en yaygın kullanımı ile piksel olarak adlandırılır. Sayısal imge işlemenin iki önemli uygulama yöntemi vardır:

26 15 İnsan algılaması için görüntü kalitesindeki iyileştirme amacına yönelik uygulamalara tıp, uzay programları, nükleer tıp, biyoloji, jeoloji, arkeoloji, astronomi, savunma ve endüstriyel uygulamalar örnek olarak verilebilir. İmge işlemenin nerede bittiği ve imge analizi ya da bilgisayarla görü gibi ilgili diğer konuların ne zaman başladığı hakkında tam bir görüş birliği oluşmamıştır. Bazen hem girişi hem de çıkışı imge olan işlemlerin imge işleme olduğu ayrımı yapılır. Ancak bu her zaman doğru olmayabilir. Örneğin bir imgenin ortalama yoğunluğunun hesaplanması, çıkışta tek bir sayı vermesine rağmen, imge işlemede çok sıradan bir görevdir. Bilgisayarla görü insan görme duyusunu taklide çalışan bir alandır. İmge analizi ise imge işleme ile bilgisayarla görü arasında bir yerdedir. İmge işleme ile diğer alanlar arasında kesin çizgiler olmamakla birlikte bilgisayarlarla gerçekleştirilen işleme üç farklı seviyede incelenebilir: düşük, orta ve yüksek seviyede işleme. Düşük seviyede işleme, gürültü azaltma, kontrast artırımı ve imge keskinleştirme gibi saha giriş seviyesi işlemleridir. Düşük seviye işlemede hem giriş hem de çıkış bir imgedir. Orta seviyede işleme, segmentasyon ve nesnelerin sınıflandırılması gibi işlemleri ifade eder. Orta seviyede işlemede giriş bir imge iken çıkış genellikle bu girişten elde edilen, giriş imgesinin kenarları, dış sınırları veya nesnelerin benzerlik durumları gibi özellikleridir. Yüksek seviyede işleme ise tanınan nesnelerin gruplandırılması gibi işlemleridir Renk Uzayları İngiliz fizikçi Isaac Newton ( ) 1666 da bir odayı kararttıktan sonra güneş ışığının ince bir delikten odaya girmesini sağlamış, bu ışığın önüne bir prizma koyarak ışığın parçalanmış halini, tıpkı gökkuşağında olduğu gibi yedi renge (Kırmızı,

27 16 Turuncu, Sarı, Yeşil, Mavi, Lacivert, Çivit Mavi, Menekşe Moru) yukarıdan aşağıya doğru bir perdeye aksettirmeyi başarmıştır(şekil 3.1)(Bunting, 1998). Yapılan bu deney sonucu renk tayfı ortaya çıkmış (Çizelge 3.1) ve devam eden çalışmalar neticesinde Renk Bilimi doğmuştur. Renk, ışığın değişik dalga boylarının gözün retinasına ulaşması ile ortaya çıkan bir algılamadır. Bu algılama, ışığın maddeler üzerine çarpması ve kısmen soğurulup kısmen yansıması nedeniyle çeşitlilik gösterir ki bunlar renk tonu veya renk olarak adlandırılır(hardeberg, J.Y, 1999). Tüm dalga boyları birden aynı anda gözümüze ulaşırsa bunu beyaz, hiç ışık ulaşmazsa siyah olarak algılarız. İnsan gözü 380nm ile 780nm arasındaki dalga boylarını algılayabilir, bu sebepten elektromanyetik spektrumun bu bölümüne, görünen ışık denir. Şekil 3.1. Newton Prizması Çizelge 3.1. Elektromanyetik Spektrumda Renk Dalga Boyları ve Frekansları Renk Dalga boyu Frekans Kırmızı ~ nm ~ THz Turuncu ~ nm ~ THz Sarı ~ nm ~ THz Yeşil ~ nm ~ THz Çivit Mavisi ~ nm ~ THz Mavi ~ nm ~ THz Mor ~ nm ~ THz

28 17 Renk uzayları, renkleri tanımlamak için kullanılan matematiksel modellerdir. Renk uzaylarında amaç bütün renklerin temsil edilmesidir. Bu sebeple rengin belirlenmesi için üç bağımsız değişkene ihtiyaç duyulur ve uzay 3 boyutlu olarak tasarlanır. Renklerin renk uzayındaki yerleri de bu değişkenlere göre belirlenir. Her renk uzayının kendine özgü renk oluşturma standardı olup, uzaylar arası dönüşüm doğrusal veya doğrusal olmayan yöntemlerle yapılır (Şekil 3.2). Tristimulus sistemler de RGB (Red, Green, Blue) insan gözünün, renkleri algılama işleminin matematiksel olarak modellenmesi amacıyla yapılan bir takım hesaplar sonucunda elde edilen X, Y ve Z renk koordinat bilgilerini içerirken, rengin üretimi cihazın nitelik ve niceliğine bağlıysa oluşan renk uzayı cihaz bağımlı (RGB, HSV (Hue Saturation Value), HSI (Hue Saturation Intensity), CMY (Cyan Magenta Yellow), CMYK vb.), üretilen renk her ortamda, aynı özellikleri taşıyorsa cihaz bağımsız (CIE (International Commission on Illumination) L*a*b ve CIE L*u*v tek tip, CIE XYZ ise tek tip olmayan), Işık değişimlerinin kolaylıkla tanınabildiği algısal (HSV, LCH), Video, televizyon sistemlerinde renk oluşumunda (YCbCr (Luminance Chorama Blue Chorama Red), YUV, YIQ), çiftler halinde kodlanmış, PCA ve ticari amaçlı üretilmiş (Munsell, Ostwald, RAL, NCS vb.) olmak üzere birçok çeşit ve standartta renk uzayları olarak tasniflenebilir (Trémeau, 2006).

29 18 Şekil 3.2. Temel Renk Sistemleri ve Aralarındaki İlişkiler RGB modelleri Kırmızı, Yeşil ve Mavi dalga boylarının çeşitli oran ve miktarlarda kullanılmasıyla elde edilen bir renk uzayıdır. Her dalga boyunun %100 oranında karıştırılması aydınlığı yani beyaz, %0 oranında karıştırılması ise karanlığı yani siyah rengin elde edilmesini sağlar. RGB modeli bilgisayar ekranları veya katodik televizyon tüpleri gibi, doğrudan emilimle çalışan cihazlarda kullanılır. Üç ana renk her oranda karıştırılarak ara renkler elde edilebilir. RGB renk uzayı çok sıklıkla kullanılmasına rağmen alt yapı materyali rengin elde edilmesinde belirleyici faktördür. Öyle ki alt yapının değişmesiylee renk de değişecek, dolayısıyla televizyon, tarayıcı veya bir monitör üçlemesinde aynı renk elde edilemeyecektir. Dolayısıylaa üç ana rengi kullanıp,

30 19 diğer ana renkleri göz ardı ettiğinden (camgöbeği, sarı, eflatun) %100 fonksiyonel olmayacaktır. RGB görüntüsünü meydana getiren üç boyutlu matris de üçüncü boyuttaki her renk (Kırmızı, Yeşil ve Mavi) 8 bit ile temsil edilir. Basit bir hesaplama ile (2 8 )*3= renk oluşturulabilir. Dolayısıyla 1 piksel 24 bit ile temsil edilir. RGB Uzayında bütün renkler teorik olarak bir küpün içersinde veya üzerinde yer alır. Küpün köşegen noktalarında gri tonlar birikir. Şekil 3.3 ve Şekil 3.4. de köşegen noktalarda renk oluşumu, Çizelge 3.2 de ise renk oluşumlarına karşılık renk karşılıkları görülmektedir. Şekil 3.3. RGB Renk Uzayı Köşegen Noktalarındaki Renk Karşılıkları Çizelge 3.2. RGB Uzayında Köşegen Noktaların Oluşturduğu Renk Karşılıkları Beyaz Sarı Cam Göbeği Yeşil Eflatun Kırmızı Mavi Siyah R G B

31 20 Şekil 3.4 de Kırmızı, Yeşil ve Mavi Köşegenlerin oluşturduğu kübik şekil rengi oluşturmaktadır. (R80G200B130) Şekil 3.4. RGB Uzayında Renk Oluşumu Şekil 3.4 de de görüleceği gibi rengin oluşabilmesi için her üç RGB bileşeni de aynı bant genişliğin de olmalıdır. Dolayısıyla RGB bileşenlerini tutan diyagonal çerçeve aynı piksel çözünürlüğüne ve derinliğe sahip olmalıdır (Jack, 1995). Bu durum en genel anlamda hesaplamayı zorlaştırmaktadır. Çünkü her durumda her üç RGB değeri okunmalı, hesaplanmalı ve tekrar yerine yazılmalıdır. Bunun yerine ten rengi saptama da ve hareket kestiriminde uzay dönüşümü yapılarak kestirme adımlarla işlem kolaylığı sağlanabilir Renk doygunluk modelleri Renkli görüntülerde ışık yoğunluğu ve doygunluğunun tespiti ve değiştirilmesi RGB renk uzayında oldukça yoğun matematiksel işlem gerektirmektedir. Bu durum iş yükünü artırmakta ve renkli görü uygulamalarında araştırmacıyı daha basit çözümler bulmaya yönlendirmektedir. Bu amaçla daha basit ve sezgisel olarak daha kolay renk seçimi yapılabilmesi için HSI ve HSV renk uzayları geliştirilmiştir. HSV renk uzayında ortamda bulunan renkler, RGB renk uzayından farklı olarak renk özü, doygunluk ve parlaklık olarak tanımlanmaktadır. Bu sebepten dolayı HSV renk uzayında ışık

32 21 değişimleri kolaylıkla tanınabilmekte ve görüntü işleme sırasındaki zorluklar ortadan kaldırılabilmektedir(smith, 1978). Renk özü, rengin baskın dalga uzunluğunu belirler, örneğin sarı, mavi, yeşil, vb. Açısal bir değerdir 0-360, bazı uygulamalarda ise arası olağanlaştırılır. Doygunluk, rengin "canlılığını" belirler. Yüksek doygunluk canlı renklere neden olurken, düşük olasılık rengin gri tonlarına yaklaşmasına neden olur arasında değişir. Parlaklık ise rengin aydınlığını yani içindeki beyaz oranını belirler arasından değişir. HSV renk uzayı 1978 yılında Alvy Ray Smith tarafından tanımlanmıştır. Amacı RGB uzayına göre insan görü düzeneğine daha yakın bir yapı oluşturmaktır. HSV, RGB renk uzayından doğrusal olmayan bir dönüşüm ile elde edilir (Agoston, 2005). Şekil3.5. HSV uzayının konik ve silindirik görünümleri, Şekil 3.6 de ise HSV değerlerindeki değişimin, renklere etkisi gözükmektedir. Her ne kadar HSV ve HSB aynı uzayı tanımlasalar da HSL farklı bir renk uzayıdır. HSV ayrıca aygıt bağımlıdır. Yani bu uzayda tanımlı bir renk, rengi üreten aygıt cihazına göre değişim gösterebilir. HSV uzayı, ilk tanımlandığı zamanlarda konik bir biçime sahipti ancak sonraki yıllarda, gerçek zamanlı geçerli koordinat denetimi için zamanın bilgisayarları yeterli olmadığından silindir biçimine dönüştürüldü. Açmak gerekirse, konik biçimde, aydınlık düzeyi azaldıkça koninin genişliği azalır, dolayısıyla, insan görüsüne uygun olarak, düşük aydınlıkta algılanabilen farklı doygunluk düzeyleri de azalırlar. Diğer yandan, silindir biçimi ile sıfır aydınlık düzeyinde bile yüksek doygunluk düzeyleri tanımlanabilir ve böylece geçersiz renkler elde edilebilir. Dolayısıyla görüntü işleme uygulamalarında konik biçimi tercih edilirken, renk seçimi görevlerinde silindir biçimi kullanılma eğilimini gösterir.

33 22 Şekil 3.5. HSV Renk Uzayının Konik ve Silindirik Görünümleri HSV uzayınınn konik biçimi her ne kadar silindir haline göre bazı olumlu yanlara sahip olsa da, aydınlık ölçüsü olarak R, G, B değerlerinin basitçe en büyüğünün kullanılıyor olması, insan görüsünün dalga uzunluğu hassasiyetlerinin dikkate alınmamasına neden olabilmektedir (Poynton, 1997). Şekil 3.6. H-S-V Değerlerinde Değişimler ve Etkileri Şekil 3.6 deki konik görünümün en alt kısmı V=0 iken S=0 ise siyah, tepe noktası V=1 iken S= =0 ise beyaz rengi göstermektedir. Şekilde s ile gösterilen 0 ile 1 arasındaki değere oran denilmektedir. S=0 iken H değerinin bir önemi yoktur. V değerini değiştirmeden S değeri azaltılırsa oluşan renge beyaz, S değeri değiştirmeden V değeri azaltılırsa renge siyah eklenebilir. Tonlama ise S ve V değerleri ile oynanarak elde edilebilir (Jack, 1995). Çizelge 3.3 de HSV 0.75 değerindee köşegen noktalarında renk karşılıkları verilmiştir.

34 23 Çizelge 3.3. HSV 0.75 Değerinde köşegen noktaların oluşturduğu renk karşılıkları Renk uzaylarında dönüşümler RGB renk uzayından HSV uzayına dönüşüm 1. İlk olarak Hue (Renk Özü), Saturation (Doygunluk) ve Value (B:Parlaklık, L Işık) değerleri hesaplanır. H- Eğer Hue (Renk Özü) Renk 1 Max ise H = (Renk 2- Renk 3)/ (Max-Min) S- Saturation (Doygunluk) S = Max- ( Min /Max) V- Value (Değer) V = R, G ve B değerlerinden biri 2. Değerler normalize edilir. Genel H, S, V değer aralıkları ; 0 <= Renk Özü (H) <=360 0 <= Doygunluk(S) <= <= Değer(V) <=255

35 24 3. H- Hue (Renk Özü) Dominant renk üzerinde kurulur. 3 temel renk aralığındaki renkler belirlenir; Eğer Kırmızı ise H *= 60 Eğer Yeşil ise H +=2; H * =60 Eğer Mavi ise H +=4; H *= 60 Hue : değerleri arasında renk özü tanımlanır. Sat veya S* =100 ile 0 ile 1 arasındaki özel şartlar tanımlanır. V, V *=255 dir. Şekil 3.7 de RGB küpünden HSV ve HSL uzaylarına dönüşümün şekli verilmiş, Aşağıdaki eşitlikte ise matematiksel olarak formülleştirilmiştir. Bu yöntemde HSV renk uzayında hue [0, 180] ve sat [0, 255] olarak kullanılmıştır. Kırmızı renk için, (hue <15 veya hue>165) ve (sat>90) Mavi renk için, (110< hue<130) ve (sat>90) koşulunu sağlayan pikseller renk temelli ikili arama alanını oluşturulabilir.

36 25 Şekil 3.7. RGB uzayından HSV uzayına dönüşüm RGB renk uzayından YCbCr uzayına dönüşüm RGB renk uzayından YCbCr renk uzayına dönüşüm için Denklem 1, 2 ve 3 den yararlanılır. Y' = 16 + ( * R' * G' * B') (1) Cb = ( * R' * G' * B') (2) Cr = (112.0 * R' * G' * B') (3)

37 Mahalanobis uzaklığı Regresyon analizinde doğrusallık ve normallik varsayımlarının karşılanmasını güçleştiren uç değerlerin olup olmadığını anlamak üzere kullanılan bir değerdir. Çok-lu regresyon modelinde kullanılan bağımsız değişkenler uzayındaki merkezden veya örneklem ortalamasından tek bir veri noktasının uzaklığını ölçen bir istatistiktir. Birçok örnek alındıktan sonra, bunların kullanılacak belirgin özellikleri ölçülür. Daha sonra özellik uzayında her bir örnek bir noktayı temsil edecek şekilde işaretlenir. Bu noktalara göre sınıfların ortalamaları belirlenir. Daha sonra her bir yeni bilinmeyen örneğin hangi sınıfa ait olduğu bu sınıf ortalamalarından hangisine daha yakın olduğu hesaplanarak belirlenir. Tek bir özellik kullanıldığında "özellik doğrusu" (özellik histogramı), iki özellik kullanıldığında "özellik düzlemi", üç ve daha fazla özellik kullanıldığında ise "n-boyutlu özellik uzayı" üzerinde bu hesaplamalar yapılır. Uzay kaç boyutlu olursa olsun aradaki mesafe önemlidir. Bu uzaklık da, genel "Öklid uzaklığı" olarak alınabileceği gibi, "Mahalanobis uzaklığı" da kullanılabilir. Bu yeni uzaklığın faydası, sadece merkezlere bakmak yerine, sınıfın yapısına da bakmaktır. Yani artık sınıflarımız sadece çembersel değil, elips şeklinde de olabilmektedir. Uzaklıklar bu yapıya göre ölçeklendirilerek değerlendirilir. Renk aralığını belirleme ve çıkarım işleminde her pikselin Denklem 4 de belirtilmiş olan Mahalanobis uzaklığı karesi ile tez deneylerinde saptanan ten rengi eşik değeri ile karşılaştırılmıştır. SquaredDistance(Cb,Cr) = (x-m)'*inv(c)*(x-m), where x=[cb; Cr] (4) Ten renginin tespitinden sonra verinin verimli işlenmesi için medyan filtreden geçirilmiştir. Tanımlanmış birbirilerine bağlı pikseller tanımlı miktarlarda ve oranlardaysa işaretlenerek piksellerin belirlenmesi sağlanır.

38 MATLAB Hakkında Genel Bilgi MATLAB, teknik hesaplamalar ve matematiksel problemlerin çözümü ve analizi için tasarlanmış bir yazılım geliştirme aracıdır. MATrix LABoratory kelimesinin kısaltması olan MATLAB, adında da anlaşılacağı üzere matrisler yani diğer bir deyişle diziler ile çalışır. Özellikle mühendislik alanındaki sistemlerin analizinde kullanılan MATLAB, görüntü işleme, yapay sinir ağları, sayısal işaret işleme, optimizasyon, veri elde etme, veritabanı, süzgeç tasarımı, bulanık mantık, sistem kimliklendirme, dalgacıklar gibi araçları ile kullanıcılara için mükemmel bir ortam sunmaktadır. MATLAB de yazılan programlar, MATLAB in kendine özgü dili kullanılarak yazılır ve MATLAB içinden çalıştırılmaktadır. Ayrıca yazılmış olan programları DLL ve EXE olarak oluşturabildiği gibi C/C++ kodlarına da çevirebilmektedir. MATLAB çalışma ortamı Şekil 3.8 de gösterilmektedir. Şekil 3.8. MATLAB Çalışma Ortamı Problemleri MATLAB de komut satırında çalışmakta olan programlar yazılarak çözülebileceği gibi MATLAB GUI (Grafic User Interface) geliştirme aracını kullanarak, formlar ve butonlar gibi nesnelerden oluşan görsel yazılımlar geliştirilebilir. MATLAB in şu an için Windows ve Linux ortamlarında çalışan sürümleri mevcuttur. Bugün için geliştirilen en son sürüm R2010b sürümü mevcuttur. (Aralık 2010)

39 28 MATLAB ile ; Veri elde etme Veri analizi ve inceleme Görsellik ve görüntü işleme Algoritma prototipi oluşturma ve geliştirme Modelleme ve simülasyon Programlama ve uygulama geliştirme yapılabilir. Bugün den fazla akademisyen, araştırmacı, bilim adamı ve öğrenci tarafından kullanılan MATLAB, içinde gömülü pek çok ara yüzü ile bilgisayar dünyasının en gelişmiş teknik ve bilimsel problem çözme ve uygulama geliştirme aracıdır MATLAB ile yazılım geliştirmek MATLAB de geliştirdiğimiz yazılımlar prosedür veya fonksiyon şeklindedir. Konsolda edit yazıp <enter> tuşuna basıldığında MATLAB editörü açılacaktır Prosedürler Düz yazı şeklinde yazılan komutlardır. Arka arkaya çalıştırmak istenilen komutlar yazılır. File->Save (Ctrl+S) komutu ile yazdığımız programı diske kaydedilmektedir. MATLAB de yordamlar ve fonksiyonlar M-dosyaları (M-files) olarak adlandırılır ve.m uzantısını alır.

40 29 Örneğin aşağıdaki komutlar editörde yazılıp hesapla.m ismi ile diske kaydedilirse, MATLAB içinden bu dosyayı çalıştırmak için hesapla yazıp <enter> tuşuna basmak yeterli olacaktır. hesapla.m ort=sum(sum(a)); hiz=x/t; sonuc=ort*hiz; Yalnız burada dikkat edilmesi gereken nokta, MATLAB içinden bu dosya çalıştırılmak istendiğinde, dosyanın çalışma dizininde olması gerekmektedir. Çalışma dizinini görüntülemek için cd komutu kullanılır. >> cd C:\matlab\work >> Çalışma dizinini değiştirmek için de cd komutundan faydalanılır. Örneğin; >> cd c:\calismadizinim Ayrıca dikkat edilmesi gereken bir diğer nokta da, M-dosyası çalışırken bazı değişkenlere başvuruyorsa bunların daha önceden tanımlanmış ve değerleri atanmış olması gerekir. Yukarıdaki örnekte ort=sum(sum(a)) satırında a isminde bir matrisisin toplamı hesaplanıp ort değişkenine atanmaktadır. Ancak program çalıştırılmak istendiğinde eğer a dizisi mevcut değilse, M-dosyası hata verecektir. Yukarıdaki M- dosyası çalışabilmek için, x ve t değişkenlerine de ihtiyaç duyulmaktadır. M-dosyası çalıştırıldıktan sonra, M-dosyası içinde tanımlanan değişkenler MATLAB çalışma ortamında (workspace) atanır. O an için tanımlanmış değişkenleri görmek için whos komutu kullanılabilir. Her hangi bir değişkeni silmek için clear degisken_ismi şeklinde clear komutu kullanılır. MATLAB ortamındaki tüm değişkenleri silmek için clear komutu tek başına kullanılabilir.

41 30 >> hesapla >> whos Name Size Bytes Class a 5x5 200 double array ans 0x0 0 char array b 1x1 8 double array c 1x double array d 3x3 72 double array e 5x5 200 double array hiz 1x1 8 double array Grand total is 162 elements using 1296 bytes >> Fonksiyonlar Diğer programlama dillerinde olduğu gibi MATLAB de de fonksiyon tanımlamak mümkündür. Fonksiyonlar içine değer alabilen ve bir sonuç döndüren program parçalarıdır. Örneğin MATLAB editöründe, function donendeger=toplakare(x,y) %Bu fonksiyon x ve y nin toplaminin karesini hesaplar %Kullanim : toplakare(3,5) seklindedir. toplam=x+y; donendeger=toplam^2;

42 31 şeklinde bir fonksiyon yazılıp, toplakare.m dosyası şeklinde kaydedilsin. Fonksiyondaki ilk satır, fonksiyonun isminin toplakare olduğunu, donendeger değişkeni ile sonucun kullanıcıya aktarılacağı, x ve y olarak iki değişkeni dışarıdan aldığını belirtir. İkinci ve üçüncü satırlar yorum satırlarıdır. Derleyici tarafından icra edilmezler. Fonksiyonlarda ilk satırdan sonra kullanılan yorum satırları, yazılan m-dosyasının yardım metnini oluşturur. Konsolda help toplakare yazıp <enter> tuşuna basıldığında, yukarıda % işareti ile başlayan iki satır görüntülenmektedir. En son satırda donendeger değişkenine hesaplanan ifade atanır ve böylelikle kullanıcıya sonuç aktarılmış olur. MATLAB de a=toplakare(3,5) yazıldığında, a değişkenine fonksiyondan dönen 64 değerini atanmış olur Temel MATLAB operatörleri MATLAB da diziler arası matematiksel operatörler aşağıdaki gibidir. Ancak dikkat edilmesi gereken bazı noktalar vardır. Örneğin iki matris toplanacağı zaman, matrislerin aynı boyutlarda olması gerektiğidir. 3x3 tipindeki bir matris ile 2x2 tipindeki bir matris toplanamaz. Ancak 1x1 tipindeki skaler değerlerde bu problem yoktur. Örneğin 5x5 tipindeki bir matrisin tüm elemanlarına 2 eklemek için a+2 şeklinde bir komut kullanılabilir. MATLAB bazı temel operatörleri Çizelge 3.4 de gösterilmektedir. Toplama Çıkarma Çarpma Bölme Üs alma Çizelge 3.4. Temel MATLAB Operatörleri ARİTMETİK OPERATÖRLER a+b a-b a*b a/b a^b KARŞILAŞTIRMA OPERATÖRLERİ Küçük < Küçük eşit <= Büyük >

43 32 Büyük eşit >= Eşit == Eşit değil ~= MANTIKSAL OPERATÖRLER And & Ve Or Veya Not ~ Değil Şartlı Deyimler ve Döngüler Program içinde bir değişkenin içeriğine bağlı olarak program akışı değiştirilmek isteniyorsa şartlı deyimler kullanılabilir. En çok kullanılan şartlı deyim if-else-end komutudur. Örneğin; if a>5 disp('a besten büyüktür'); x=1; else disp('a besten kücüktür'); x=0; end şeklinde bir M-dosyası olarak kaydedil. Eğer a değişkenin değeri 5 den büyükse, konsola 'a besten büyüktür' ifadesi yazdırılacak ve x değişkenine 1 değeri atanacaktır. Eğer a, 5 ten küçük veya eşitse konsola 'a besten kücüktür' ifadesi yazdırılacak ve x değişkenine 0 değeri atanacaktır. En çok kullanılan bir döngü çeşidi olan for döngüsü aşağıdaki gibi tanımlanır. top=0; for i=1:100 top=top+i;

44 33 end 1 den 100 e kadar olan sayıların toplamını bulan bu döngüde i döngü indeksidir. 1:100 ifadesi ile 1 den başlayıp 100 e kadar, döngünün birer artması sağlanmıştır. Bir diğer döngü tanımlaması while komutu ile yapılabilir. Yukarıdaki örneği while komutu ile şu şekilde yapabiliriz. top=0; i=0; while i<100 top=top+i; i=i+1; end Verileri kaydetmek ve tekrar kullanmak MATLAB de oluşturduğunuz matrisleri kaydetmek için save komutu kullanılır. save calisma yazıp <enter> tuşuna basarsanız, o an için çalışma ortamında tanımlı tüm matrisler MATLAB in kendine özel bir formatında, diske calisma.mat olarak kaydedilir. Daha sonra bu dosyayı tekrar çağırmak için load calisma yazmak yeterli olacaktır. Sadece bir matrisi kaydetmek için save dosya_ismi degisken_ismi şeklinde bir komut kullanmak uygun olacaktır. Eğer kaydedilen verilere harici programlardan erişilecekse ASCII formatında ve diziler arasına TAB atılarak kaydetme yapılabilir. Bunun için save calisma.txt xtoplam ascii tabs komutu kullanılabilir. xtoplam ismindeki matris, diske calisma.txt dosyası olarak kaydedilmiştir. Ancak MATLAB, bu dosyayı kendi formatında değil, düz yazı

45 34 (TEXT) biçiminde kaydeder. Matrisin elemanları arasına TAB karakteri basarak Excel gibi diğer programlardan erişimi kolaylaştırır Grafikler MATLAB de veriler ile çalışırken bu verileri görüntülemeniz gerekebilir. Analizde çok önemli olan grafiklerin oluşturulması için plot komutu ve surf komutu kullanılabilir. Plot komutu ile 1xN tipindeki vektör biçimindeki bir veya daha fazla veri için grafik oluşturulabilir. Örneğin; >> t=-pi:0.1:pi; >> y=sin(t); >> plot(y) komutlarını yazarak den e kadar 0.1 aralıklarla artan bir vektör tanımlayalım. Sin fonksiyonu ile bu vektörün tüm değerlerinin sinüslerini hesaplayarak plot komutu ile ekrana çizdirir. (pi ön tanımlı bir değişken olup değerini atamanıza gerek yoktur) İki vektörü aynı pencere içinde üst üste görüntülemek istersek 1xN vektörleri Nx1 tipine çevirmek ve bunları yan yana sütün şeklinde yerleştirmek gerekir. Örneğin yukarıdaki örnekte t ve y yi aynı anda görmek için plot([t' y']) komutu kullanılmalıdır. Plot komutu ile ilgili daha fazla bilgi elde etmek için MATLAB konsolda help plot yazabilirsiniz. MATLAB de MxN tipindeki matrislerin 3 boyutlu topografik grafiklerini incelemek için surf veya mesh komutları kullanılır. >> a=randn(20); >> surf(a);

46 35 Yukarıdaki komutlar ile 20x20 tipinde, elemanları 0-1 arasında rastgele değer alan bir verinin 3boyutlu grafiği çizdirilmiştir Bazı temel fonksiyonlar ve komutlar MATLAB de kullanılan bazı temel fonksiyonlar ve açıklamaları Çizelge 3.5 de gösterilmiştir. Çizelge 3.5. Bazı Temel MATLAB Fonksiyon ve Komutları Clear Whos Clc Disp Sum Mean Max Min Size Sqrt Cos Sin Tan Exp Log Log10 Abs Round Floor Load Save Strcat Break Rand Edit Plot BAZI TEMEL FONKSİYON VE KOMUTLAR Workspace deki değişkenleri siler Workspace deki değişkenleri listeler Ekranı temizler Ekrana mesaj yazdırır Matris elemanları toplamı Matris elemanları ortalaması Matris elemanlarının en büyük değerli olanı Matris elemanlarının en küçük değerli olanı Matrisin boyutları Karekök alma Kosinüs Fonksiyonu Sinüs Fonksiyonu Tanjant Fonksiyonu Eksponansiyel (e) Doğal algoritma (ln) 10 tabanında logaritma Mutlak değer Yuvarlama Tam değer Workspace e diskten veri yükleme Workspace deki veriyi diske kaydetme String leri birleştirme Döngüden çıkma 0-1 arasında rastgele sayı üretme MATLAB Editörü 2boyutlu grafik çizme

47 Sabit görüntünün elde edilmesi Sayısal bir görüntü f(x,y) şeklinde tanımlanmaktadır. =, Yukarıdaki denklemde x,y görüntü üzerindeki konumsal koordinatlar (spatial coordinates) ve f fonksiyonunun değeri ise parlaklık değeri (intensity, grayscale) olarak isimlendirilmektedir. (x,y) değerleri ve f fonksiyonun değerlerinin tümü sonlu olduğunda ise eldeki görüntü sayısal görüntü olarak isimlendirilmektedir. Bir görüntü x,y koordinatları boyunca sürekli olabilir. Aynı durum x,y koordinatlarında olduğu gibi grilik seviyesinde de olabilir. Bir görüntünün sayısal hale getirilebilmesi için koordinat ve grilik seviyesinin diğer bir değişle yoğunluğunun sayısallaştırılması gerekir. Koordinat değerlerinin sayısallaştırılmasına örnekleme (sampling), bu koordinatlardaki yoğunluğun sayısallaştırılmasına ise kuantalama (quantization) denir. Şekil 3.9 de örnekleme ve kuantalama görülmektedir. Şekil 3.9. Görüntünün Sayısallaştırılması

48 Görüntü işleme de kullanılan MATLAB komutları MATLAB ortamında sabit görüntüyü çalışma alanına(workspace) aktarmak için imread() komutu kullanılır. Resim Çalışma ortamına aktarıldıktan sonra artık dizi olarak işlemlerine devam etmektedir. >> f =imread( cameraman.tif ); >> f =imread(.\resim\cameraman.tif ); >> f =imread( D:\resimlerim\cameraman.tif ); Çalışma alanına aktarılmış olan resmin(dizi) boyutunu öğrenmek için size() komutu kullanılmaktadır. Yanıt dizinin yatayda ve dikeyde kaç adet piksel olduğunu tanımlamaktadır. >>size(f) ans = >>[ M, N ] =size(f); Yukarıdaki komut sayesinde ise f matrisindeki satırların sayısı M değişkenine sütunların sayısını ise N değişkenine atama işlemi gerçekleştirir. MATLAB ortamında görüntüyü ekranda görüntülemek için imshow fonksiyon kullanılır. Kullanımı: >>imshow ( f ) Ayrıca imshow komutu ile resmin sınır değerlerini değiştirmemiz mümkündür. >>imshow( f, [ low high ]) Komut satırında ise low ile belirtilen değerinden küçük ve eşit olan parlaklık değerlerini 0 a; high ile belirtilen değerden büyük veya eşit olan parlaklık değerlerini ise 1 e eşitler. Arada kalan değerlerde ise değişiklik olmaz.

49 38 >>f=imread( cameraman.tif ); >>imshow(f); >>figure,imshow(f,[ ]); Satırlarından sonra program ekran çıktısı şekil 3.10 da gösterilmiştir. Şekil Resmin okunup filtre edilip görüntülenmesi Çalışma alanına aktarılmış olan resmin(dizi) daha sonradan kullanılmak üzere kaydedilebilmesi için imwrite komutu kullanılmaktadır. >>imwrite(f, filename ) >>imwrite(f, kayit01.tif ) >>imwrite(f, kayit01, tif )

50 Hareketli görüntünün elde edilmesi Görüntü yakalama araç kutusunda bulunan fonksiyonlar sayesinde, bilgisayar ile uyumlu görüntü yakalama kartlarından (Frame-grabber cards) görüntü alma cihazlarına bağlanılabilir, özellikleri değiştirilebilir ve görüntü alınabilir. Araç kutusu geniş bir spektrumdaki görüntü yakalama işlemlerini desteklemektedir ( Profesyonel seviyedeki görüntü yakalama cihazlarından, USB tabanlı web cam e kadar geniş bir yelpazedeki birçok tipteki görüntü cihazı ile görüntü elde edilmesi, Donanıma bağlanma ve donanımın özelliklerini ayarlama, Video görüntü ön izlemesi, Görüntü yakalamayı başlatma işlemleri, Görüntüyü işlemek ve analiz etmek için doğrudan MATLAB çalışma alanına getirme. Donanıma bağlanmak için, görüntü yakalama araç kutusu, bilgisayar ile uyumlu görüntü yakalama cihazlarını tespit ediyor. MATLAB komut satırına yazılan komutlarla tespit edilen cihazlar görülebilir ve yine komut satırı kullanılarak tespit edilen cihazlardan kullanılmak istenilen seçilebilir ( Araç kutusunu kullanarak, kameranın istenilen özellikleri değiştirilerek konfigüre edilir. Bunu yaparken komutlar kullanabileceği gibi, grafiksel özellik denetleyici ( Property Inspector) ara yüzünü de kullanarak yapabilir. Araç kutusu bize iki grup özellikleri Bize iki grup özellikleri ayarlamamızı sağlıyor: Temel özellikler ve cihaza özgü özellikler. Temel özellikler bütün kameralar tarafından desteklenen ortak özellikleri içermektedir. Cihaza özgü özellikler kullandığımız kameranın modeline bağlı olarak değişen özelliklerdir (

51 40 Görüntü yakalama araç kutusunu kullanarak, 3 değişik şekilde görüntü yakalama(trigger) işlemini başlatabiliriz: Immediate, Manual, Hardware. Elde edilen görüntüler belleğe ya da diske alınabildiği gibi aynı anda her ikisine de alabilir. Ayrıca her görüntü karesi kayıt edilebileceği gibi, sadece belirtilen aralıktaki görüntü kareleri de kayıt edilebilir. Görüntü akışından tek bir görüntü karesini alıp, sabit diske standart formatta kayıt edebiliriz: BMP, JPEG ve TIFF ( Görüntü işleme araç kutusu Görüntü işleme araç kutusu görüntüyü işlemek, analiz etmek ve algoritma geliştirmek için bize kapsamlı grafiksel araçlar ve standart referans algoritmalar sunmaktadır. MATLAB de yaklaşık 250 fonksiyondan oluşan çok özel görüntü işleme araç kutusu vardır. Bu fonksiyonlar şu alt başlıklara ayrılmıştır (Çetin A. E.2003): Görüntüleme Dosya işlemleri Görüntü Aritmetiği (toplama, çıkarma, vb.) Geometrik transformasyon Görüntü kayıt işlemleri Piksel değerleri ve istatistiksel analiz Görüntü analizi Görüntü iyileştirme (yoğunluk ayarlama, filtreleme, vb.) Görüntü transformasyonları (Fourier, vb.) Görüntüyü bloklar halinde işleme (Block processing) Morfolojik işlemler (açma, kapama, vb.) Bölgesel işleme (renge göre bir bölgenin seçilmesi, vb.) Renk uzayı dönüşümleri (RGB den HSV ye, RGB den NTSC ye, vb.) Resim veri türü dönüşümleri

52 41 Görüntü işleme araç kutusu sayısal kamera, tıbbi görüntüleme cihazı, mikroskop, teleskop vb. birçok cihazdan gelen görüntüyü desteklemektedir. MATLAB bilgisayarda kayıtlı görüntüyü ya da dışarıdan bir görüntüyü almak için birkaç yol sunmaktadır: Web cam, sayısal kamera ya da başka bir cihazdan görüntü almak için MATLAB deki görüntü yakalama araç kutusu kullanılır. Veri tabanı araç kutusunu (Database Toolbox) kullanarak ODBC/JDBC veritabanından kayıtlı resimlere ulaşılabilir ve çalışma alanına getirilebilir. MATLAB standart veri ve görüntü formatlarını desteklemektedir. Bunlar: JPEG, TIFF, PNG, HDF, HDF-EOS, FITS, Microsoft Excel, ASCII ve binary dosyalar. Ayrıca tıbbi görüntüler için, görüntü işleme araç kutusu DICOM dosya formatını desteklemektedir ( Görüntünün alınması Görüntünün alınması kısmında, MATLAB görüntü yakalama araç kutusu kullanılarak bilgisayardaki görüntü alma cihazları tespit edilmesi, görüntü alma cihazı seçilmesi, cihazının özelliklerini ayarlanması gerçekleştirilmektedir. Ardından görüntü elde etme işlemi başlatılır. I=videoinput('winvideo',1); triggerconfig(i,'immediate'); start(i); preview(i); mk=getsnapshot(i);. stop(i); delete(i);

53 42 Winvideo : Bu komut sayesinde, görüntü alınmak istenilen cihaz seçilebilir. Sistemimizde hangi görüntü alma cihazlarının olduğunu öğrenmek için imaqhwinfo komutunu kullanılabilir. Görüntü yakalama araç kutusu, MATLAB yazılımı ile donamım arasında köprü kurmak için bize 5 tane adaptör seçeneği sağlamaktadır. Biz USB ve IEEE 1399 (FireWire) kameralarına bağlanmamız için gerekli Windows Driver Model (WDM) ve Video For Windows (VFW) sürücülerini sağlayan winvideo adaptörünü seçtik. Triggerconfig : Görüntü yakalamayı başlatma özelliklerinin ayarlanmasını sağlar. Görüntü almayı 3 türlü başlatabiliriz: Immediate, Manual, Hardware. Biz programımızda Immediate görüntü alma işlemi yapmak üzere ayarladık. Immediate, start fonksiyonunu kullandıktan sonra görüntü almaya başlıyor. Biz istediğimiz görüntü karesini almak için getsnapshot fonksiyonu kullandık. Start: Görüntü yakalama aygıtının çalışmasını başlatıyor. Preview: Görüntü alma aygıtından ön izleme yapmayı sağlıyor. Getsnapshot: Görüntü alma aygıtından tek bir görüntü karesi almaya sağlıyor. Stop: Görüntü alma ve kayıt işlemini durdurmayı sağlıyor. Delete: Bellekten görüntü alma nesnesini silmemizi sağlıyor Simulink Simulink, karmaşık sistemleri tasarlama ve simülasyon yapma olanağı vermektedir. Mühendislik sistemlerinde simülasyonun önemi gün geçtikçe artmaktadır. Sistemlerin tasarımında büyük oranda bilgisayar simülasyonlarından faydalanmakta, mümkün olduğunda tasarımın test aşamaları da bilgisayarlar yardımıyla yapılmaktadır.

54 43 Bu da prototiplere olan ihtiyacı azaltarak maliyetlerin büyük oranda düşmesini sağlamaktadır. Günümüzde mühendislik alanında en çok kullanılan programlardan birisi MATLAB'dir. Simulink, MATLAB ile birlikte bütünleşik olarak çalışan bir simülasyon ortamıdır. Sürekli zamanlı ve ayrık zamanlı sistemleri veya her ikisini de içeren hibrit sistemleri desteklemektedir. İçinde birçok alt sistemi blok olarak barındırdığından sürükle-bırak yöntemiyle birçok sistemi birkaç dakikada kurarak simule edilebilir, değişik durumlardaki cevabını test edilebilmektedir. Bunun için Simulink kullanıcılara zengin bir blok kütüphanesi sunmaktadır. Bunlardan bazıları aşağıda tanıtılmıştır. Simulink Kütüphanesi: Simulink çalıştırıldığında ekrana ilk olarak Simulink Kütüphanesi gelmektedir. Simülasyon yaparken kullanılacak bloklar kategorilere ayrılmış biçimde burada bulunmaktadır. Blok Diyagramlar Her bir blok sürekli zamanda ya da ayrık zamanda çıkış veren temel bir dinamik sistemleri ifade etmektedir. Hatlar blokların giriş ve çıkışları arasındaki bağlantıları göstermektedir. Blok diyagramdaki her bir blok belirli bir tip bloğun örneğidir. Bloğun tipi, bloğun giriş ve çıkışları, durumları ve zaman arasındaki bağıntıyı belirler.

55 44 Bloklar Bloklar, Simulink in nasıl simule edileceğini bildiği temel dinamik sistemleri temsil eder. Simulink Blokları, programlama dillerinde kullanılan fonksiyonlara benzemektedir. Her biri dinamik sistem için yazılmış hazır fonksiyonlardır. Simulink blokları Şekil 3.11 de görülmektedir. Şekil Simulink Blok Diyagramları Durumlar: Bloklar durumlara sahip olabilirler. Durum, bloğun çıkışını belirleyen ve şimdiki değeri, bloğun önceki durumları ve/veya girişlerinin fonksiyonu olan bir değişkendir. Duruma sahip olan bir blok şimdiki durumunu belirlemek için geçmiş değerlerini kaydetmek zorundadır. Duruma sahip olan bloklara, hafızalı blok da denmektedir.

56 45 Simulink İntegral alıcı (integrator) bloğu (Şekil 3.12) duruma sahip bloklara bir örnektir. İntegral alıcı bloğu simülasyonun başlangıcından o anki zamana kadar giriş sinyalinin integralini çıkış olarak verir. O anki zaman adımındaki integral değeri, İntegral alıcı bloğunun geçmişteki giriş değerlerine bağlıdır. Dolayısıyla integral, İntegral alıcı bloğunun durumudur. Şekil İntegral Blok Diyagramı Durumlu bloklara bir başka örnek de Simulink Hafıza (memory) bloğudur. Hafıza bloğu girişlerindeki değerleri o anda kaydedip ileriki bir zamanda çıkışına verir. Hafıza bloğunun durumları önceki giriş değerleridir. Simulink Kazanç bloğu (Gain)(Şekil 3.13) durumsuz bloklara bir örnektir. Kazanç bloğu girişindeki değeri kazanç adı verilen bir sabitle çarparak çıkışına verir. Kazanç bloğunun çıkışı tamamı ile o anki giriş değeri ve sabit olan kazanç ile belirlenir. Dolayısı ile Kazanç bloğunun durumu yoktur. Diğer bazı durumsuz bloklar Toplam (Sum) ve Çarpım (product) bloklarıdır. Bu blokların çıkışları tamamıyla girişlerinin bir fonksiyonudur. Dolayısıyla bu blokların durumları yoktur. Şekil 3.13 Kazanç Blok Diyagramı Blok Parametreleri: Birçok standart bloğun anahtar özellikleri parametrik hale getirilmiştir. Örneğin, Kazanç Bloğunun kazancı bir parametredir. Her bir parametrik blok, blok parametrelerini belirleyebildiğimiz bir diyalog kutusu sunmaktadır. Blok parametrelerini belirlemek için MATLAB ifadeleri kullanılabilmektedir. Simulink bu ifadeleri simülasyonu çalıştırmadan önce hesaplar. Kullanıcı Parametrelerin değerlerini

57 46 simülasyon esnasında değiştirebilmektedir. Bu parametrenin en uygun değerini interaktif bir şekilde belirlenmesine olanak sunmaktadır. Örneğin İntegral blok diyagramının parametreleri Şekil 3.14 de görülmektedir. Şekil İntegral Bloğunun parametre ekranı Parametrik bloklar etkili bir biçimde benzer blok ailelerini temsil ederler. Örneğin, bir model oluştururken modeldeki her bir Kazanç bloğunun kazanç değerlerini ayrı ayrı belirleyerek her bir Kazanç Bloğunun farklı davranmasını sağlanabilmektedir. Blokların parametrik hale getirilmesi, her bir standart bloğun bir blok ailesini temsil etmesini sağlayarak, Simulink in modelleme gücünü artırmaktadır. Değiştirilebilir Parametreler: Birçok blok parametresi değiştirilebilirdir. Simülasyon yapılırken değeri değiştirilebilen parametreler bulunmaktadır. Örneğin Kazanç bloğunun kazanç parametresi değiştirilebilir bir parametredir. Simülasyon çalışırken bloğun kazancını değiştirilebilmektedir. Bir parametre değiştirilebilir değilse ve simülasyon çalışıyorsa Simulink parametreyi ayarlayan diyalog kutusunu engellenmektedir. Simulink belirlenenlerin dışında bütün parametreleri değiştirilemez olarak belirlenmesine olanak

58 47 vermektedir. Bu büyük modellerin çalıştırılmasını hızlandırmakta ve modelinizden daha hızlı bir şekilde kod üretilmesini sağlamaktadır. Alt sistemler: Simulink kullanıcıya, karmaşık sistemleri, blok diyagramları ile temsil edilen birbirine bağlı alt sistemler şeklinde modellenmesine izin vermektedir. Alt sistemleri Simulink alt sistem (subsysytem) bloğuyla ve model editörüyle oluşturulabilmektedir. Alt sistemleri ana sistemlere istenilen derinliğe kadar gömerek hiyerarşik modeller oluşturulabilir. Bir geçiş durumu olduğunda, bir tetikleme veya yetkilendirme girişi geldiğinde çalıştırılan, şarta bağlı çalışan alt sistemler oluşturulabilmesine olanak tanır. Sinyaller: Simulink, sinyal terimini blokların çıkış değerlerini belirtmekte kullanır. Simulink kullanıcıya sinyal ismi, veri tipi (örn: 8-bit,16-bit veya 32-bit tamsayı), nümerik tip (Reel veya Kompleks), ve boyutluluk (tek boyutlu veya 2-boyutlu dizi) gibi sinyal özelliklerini belirlemeye olanak vermektedir. Birçok blok herhangi bir veri veya nümerik tipte ve boyutta çıkışı kabul edebilir. Diğerleri de kabul edebildikleri sinyal özellikleri ile ilgili kısıtlamalar taşımaktadırlar. Veri Tipleri: Veri tipi, verinin bilgisayardaki temsiline verilmekte olan isimdir. Simulink, MATLAB içinde desteklenen int8, double ve boolean gibi herhangi bir dâhili veri tipini kullanabilir. Bunlara ek olarak Simulink kendine özgü iki veri tipi daha tanımlamaktadır: Simulink.Parameter Simulink.Signal Bu iki özel veri tipi Simulink e özgüdür ve diğer genel veri tipleri ile tutulamayan Simulink e özgü bazı bilgilerin tutulmasında kullanılmaktadırlar. Simulink kullanıcıya Simulink veri objeleri denilen Simulink veri tiplerini kullanarak parametre değerleri ve sinyal olarak kullanılmak üzere yeni veri tipleri oluşturulmasına olanak vermektedir. Her iki Simulink veri tipini de kullanarak tasarlanan modellere özgü

59 48 bilgileri saklayabilen yeni ver tipleri yaratılabilmektedir (Simulink Using Guide OpenCV Kütüphanesi OpenCV, Intel tarafından geliştirilen özellikle gerçek zamanlı bilgisayar görme amaçlı programlama fonksiyonlarını kapsayan bir kütüphanedir. Şu anda ise Willow Garage tarafından desteklenmektedir. Bu açık kaynak Berkeley Software Distribution(BSD) lisansı altında kullanım için ücretsizdir. Kütüphane birden çok platform üzerinde çalışmaktadır. Berkeley Software Distribution License ya da bir başka deyişle BSD Lisansı, yazılım üzerinde neredeyse hiçbir sınırlama getirmeyen bir lisanslama modelidir. Diğer lisanslama türevlerinin aksine, açık olarak dağıtılan yazılımın kodlarını kapatıp yazılım üzerinden para kazanmaya izin verilmektedir. Kütüphane gerçek zamanlı görüntü işleme üzerinde yoğunlaşmaktadır. Eğer kütüphane sisteminizde Intel s Integrated Performance Primitives (IPP) kütüphanesi bulursa, kendisi hızlandırmak için bu ticari optimize edilmiş altyordamlar kullanacaktır. Resmi olarak 1999 yılında piyasaya sürülen OpenCV, başlangıçta Intel Araştırma Girişimi nin gerçek zamanlı ışın takibi ve duvarları üç boyutlu göstermeyi barındıran projeyi amaçlayan yoğun işlemci uygulamaları için üretilmiştir. Proje ekibi olarak Intel in Performans Kütüphane Takımı yanı sıra Intel Rusya daki bazı optimizasyon uzmanları da katkıda bulunmuşlardır. OpenCV hedefleri olarak aşağıdaki gibi listelenebilir: Temel Görüntü alt yapısı için sadece açık değil aynı zamanda optimize edilmiş gelişmiş görüntü araştırması yapmak. Proje Geliştiricilerin üzerine inşa edebileceği ortak bir altyapı oluşturarak görüntü bilgisini yaymayı amaçlamaktadır. Böylece kodun daha kolay okunabilir ve transfer olabilir.

60 49 Proje, taşınabilir, yüksek performanslı ve koda ücretsiz olarak ulaşılabilen ticari uygulamaların çoğalması amaçlamaktadır. OpenCV ilk defa alpha sürümü 2000 yılında Computer Vision and Pattern Recognition IEEE konferansında yayınlanmıştır. Ardından yılları arasında beş beta sürümü çıkarılmıştır yılında ise ilk 1.0 sürümü yayınlanmıştır. OpenCV, 2008 ortalarında alınan Willow Garage topluğunun kurumsal desteği ile şu an aktif gelişme içerisindedir. Ekim 2008 de 1.1 sürümü yayınlanmıştır. OpenCV nin ikinci büyük sürümü Ekim 2009 tarihinde oldu. OpenCV 2.0 deki en büyük gelişme C++ arayüzü eklenmesidir. Şekil 3.15 de OpenCV ile oluşturulan bir uygulama görülmektedir. Şekil OpenCV İle Hazırlanan Bir Uygulama Bu sürüm ile daha güvenli kolay erişilebilir yeni fonksiyonlar ve çok işlemcili sistemlerdeki performansı arttırmak için eklemeler yapılmıştır.

61 Haar Peşpeşe Sınıflayıcılar (HPS) Gerçek zamanlı akan video görüntüsü üzerinde insan yüzü aday bölgelerinin yerinin saptanmasında kararlı bir yöntem olan ve Haar özniteliklerini kullanan Haar Peşpeşe Sınıflayıcılar (Haar Cascade Classifier, HPS) kullanılmıştır. Birçok nesne bulucu uygulamada başarı ile kullanılan HPS ilk olarak Viola ve Jones (Viola,P.,Jones, M.J. 2001) tarafından önerilmiş ve yöntem Lienhart tarafından geliştirilmiştir. Sınıflandırıcı insan yüzüne ait bölgelerden alınmış, aynı ölçekteki resimlerle (pozitif örnekler) ve insan yüzü içermeyen diğer bölgelerden alınmış aynı ölçekteki(örn: 20x20) resimler(negatif örnekler) kullanılarak eğitilir. Eğitimden geçmiş sınıflandırıcıya insan yüzü içeren bir resim giriş olarak verildiğinde insan yüzünün bulunduğu bölge için sınıflandırıcı 1 çıkışını diğer bölgeler için 0 çıkışını üretmektedir. Kullanılacak Haar benzeri öznitelik vektörleri Şekil 3.16 de verilmiştir. Şekil HPS de kullanılan Haar öznitelikleri. Giriş resmindeki insan yüzlerine ait bölgelerin bulunması işlemi tüm resim taranarak gerçeklendirilmektedir. Sınıflandırıcı değişik boyutlardaki insan yüzlerini bulacak şekilde tasarlanabilmektedir. Bu ise resmin boyutlarını değiştirmekten daha etkin bir yöntemdir. Bu yüzden giriş resmi içerisindeki değişik ölçeklerdeki insan yüzlerini bulabilmek için sınıflandırıcı aynı arama sürecini değişik ölçek parametreleri için tekrar eder.

62 51 Sınıflandırıcının isminde yer alan peşpeşe kelimesi, oluşturulan sınıflandırıcının, basit yapılı birden fazla sınıflandırıcının bir araya gelerek karmaşık yapılı bir yapı meydana getirdiğini göstermek amacı ile kullanılmaktadır (Şekil 3.17). Şekil HPS Basit Yapılı Sınıflandırıcılar Basit yapılı bu sınıflandırıcılar, herhangi bir sınıflandırıcı katmanı ret (reject) vermediği sürece tüm katmanlar geçilene kadar giriş resmine art arda uygulanır. Yapı içerisindeki her sınıflandırıcı katmanı öznitelik uzayında farklı bir bölgeyi taramaktadır. Burada kullanılan basit sınıflandırıcılar en az iki yapraklı karar ağaçlarıdır. Haar öznitelikleri bu sınıflandırıcılara giriş olarak verilir. Tezde peş peşe zayıf sınıflandırıcıları eğitmek için Adaboost yöntemi kullanılmıştır. Adaboost Algoritması Viola ve Jones (Viola,P.,Jones, M.J. 2001) elde ettikleri peş peşe zayıf sınıflandırıcıları eğitmek için Adaboost (Uyarlamalı Boosting) yöntemini kullanmışlardır. Freund ve Schapire (Freund, Y., Schapire, R. E., 1995) nin 1995 yılında önerdiği bu yöntem, örnek uzayını temsil eden her bir öznitelik üzerinde bir zayıf sınıflandırıcı eğittikten sonra seçtiği bazı zayıf sınıflandırıcıların lineer birleşiminden kuvvetli sınıflandırıcıyı oluşturur. Her bir öznitelik üzerinde bir zayıf sınıflandırıcı eğitildikten sonra örnek uzayındaki yanlış sınıflandırılan örneklerin ağırlıkları arttırılırken doğru sınıflanan örneklerin ağırlıkları da azaltılmaktadır. Böylece her bir zayıf sınıflandırıcı eğitildikten sonra bu ağırlıklar kullanılarak genel bir hata

63 52 hesaplaması yapılmakta ve bir sonraki öznitelik üzerinde yeni bir zayıf sınıflandırıcı bu hata göz önünde bulundurularak eğitilmektedir. Adaboost algoritması (Viola,P.,Jones, M.J. 2001) şu şekildedir: 1. (Giriş) a. Eğitim kümesi = {,,, (, )} şeklinde verilmiş bir görüntü veritabanında N=a+b ve a pozitif örneklerin sayısı b negatif örneklerin sayısı olup pozitif örnekler için y i =+1 negatifler için ise y i =-1 dir. b. Maksimum zayıf sınıflandırıcı sayısı M max ile gösterilmektedir. 2. (Başlangıç Durumu) y i =+1 olan örnekler için w i (0) =1/(2a), y i =-1 olan örnekler için w i (0) =1/(2b) yapılır. 3. (Zayıf sınıflandırıcı ekleme döngüsü) a. + 1; b. Ağırlıklar Normalize edilir. ( ) = ( ) ( ) / c. h ( ) a göre seçilir. d. ( ) ( ) ( ) şeklinde güncellenir. Burada değeri 4. (Çıktı) (*): örneği doğru sınıflandırıldıysa 0 aksi halde 1 olur. = /(1 ) h = 1 [ h ( )] ğ i. Her öznitelik j için bir h j sınıflandırıcı eğitilir. Eğitilen ii. sınıflandırıcının hata oranı = h olarak hesaplanır. En küçük hata oranı ye sahip sınıflandırıcı h olarak seçilir.

64 53 4. GELİŞTİRİLEN UYGULAMA VE SONUÇLARI Uygulama geliştirme aşamasında MATLAB Programlama Dili kullanılmıştır. Bu dilin seçiminde, donanım ile etkileşimli, prosedürel bir dil olması ve görüntü elde etme araç ve fonksiyonları temel görüntü işleme fonksiyonları gerçek zamanlı olarak kullanılabilir olması en büyük etkendir. Uygulamanın geliştirildiği MATLAB sürümü R2008b kullanılmış olup, Intel Core Duo, 2.00 GHz İşlemci, 2GB RAM ve 256 MB paylaşımsız ekran belleğine sahip bir bilgisayarda çalıştırılmıştır. Beraberinde görüntü algılayıcı olarak 2 mega piksellik bir web kamerası kullanılmıştır. Uygulama içerisinde iki tane yüz belirleme algoritması ayrı ayrı kullanılmıştır. Özellik tabanlı yüz bulma uygulaması ve görünüm tabanlı yüz bulma uygulaması olarak iki aşamalı gerçekleştirilmiştir. Geliştirilen uygulamalar hakkında bilgi aşağıda belirtilmiştir Özellik Tabanlı Yüz Bulma Uygulaması İlk olarak gerçek zamanlı özellik tabanlı yüz belirleme uygulaması MATLAB programının Simulink ara yüzünde gerçekleştirilmiştir. Gerçek zamanlı görüntü kameradan RGB renk uzayında alınmış ve YCbCr renk uzayına dönüştürülmüştür. Bu dönüşüm, alınan görüntü üzerinde ten rengi aralığı tanımlanırken, görüntünün parlaklığından(y) bağımsız olabilmesi için gerçekleştirilmiştir. Ten rengine yakın aralıktaki pikselleri tanımlamak için Mahalanobis Uzaklığından yararlanılmıştır. Ardından video imge araç kutusu içerisindeki araçlar yardımıyla yüz adayları bulunmaya çalışılmıştır. Sonraki aşamada, bulunmuş olan adayların içerisinden gerçek yüzleri tespit etmeye yönelik olarak yüz özelliklerinden(en, boy ve euler sayısı) yararlanılmıştır. Belirlenen adayların Yüz ve Yüz Değil olarak etiketlenerek ekrana görüntülenmiştir.

65 54 görülmektedir. Özellik tabanlı yüz bulma uygulamasının akış diyagramı Şekil 4.1 de Şekil 4.1. Özellik Tabanlı Yüz Bulma Uygulamasının Akış Diyagramı Özellik tabanlı yüz bulma uygulamasında kullanılan Simulink modelinin tasarım görüntüleri Şekil 4.2 de görüntülenmektedir. Şekil 4.2. Simulink Model Tasarımı

66 55 Uygulamanın birinci bölümünde 100 kişi üzerinde denenerek her bir kişi için 3 farklı pozdan (el dâhil) 300 adet ve çoklu gruplar için 200 adet olmak üzere 500 adet yüz adayı üzerinde çalışılmıştır. Uygulamanın tek kişi için çalışma ekranı Şekil 4.3 de gösterilmiştir. Şekil 4.3. Özellik tabanlı yüz bulma uygulamasının tek kişilik çalışma ekranı Uygulamanın çoklu kişi için çalışma ekranı Şekil 4.4 de gösterilmiştir. Şekil 4.4. Özellik tabanlı yüz bulma uygulamasının çoklu kişi için çalışma ekranı

67 56 Uygulama tek kişilerde 300 aday resim alınmış ve bunların 37 tanesi yanlış bulunmuştur. Çoklu kişilerde ise 200 aday resim içerisinden 70 tanesi yanlış bulunmadır. Başarı yüzdesi ise tek kişilerde %88 çoklu kişilerde ise %65 olarak saptanmıştır(çizelge 4.1). Çizelge 4.1. Özellik Tabanlı Yüz Bulma Uygulaması için deney grubu başarısı Yüz Bulma Uygulaması Deney Grubundan Alınan Toplam Aday Yüz Sayı Yanlış Yüz Bulma Sayısı Başarı Yüzde Oranı Özellik Tabanlı Tek Kişi % Çok Kişi % 4.2. Görünüm Tabanlı Yüz Bulma Uygulaması Uygulamanın ikinci kısmı olarak görünüm tabanlı yüz bulma uygulaması olarak HPS kullanılmıştır. Bu sınıflayıcı için OpenCV kütüphanesindeki HPS kullanılmıştır. Çalışma, 100 kişi üzerinde denenerek her bir kişi için 40 farklı pozdan (gözlük ve sakal ilaveleri dâhil) 4000 adet ve çoklu gruplar için 500 adet olmak üzere toplam 4500 adet yüz adayı fotoğrafı elde edilerek veritabanına kaydedilmiştir. Bulunan yüz adaylarından program arayüzünde en son beş tanesi gösterilmekte ve sabit diske data[xx].jpg isim ile 60*60 piksel boyutlandırılması ile kaydedilmektedir. Ayrıca program her yüz adayı belirleme işleminde kaç milisaniye harcadığını sisteme kaydetmektedir. Görünüm tabanlı yüz bulma uygulamasının akış diyagramı Şekil 4.5 de gösterilmiştir.

68 57 Şekil 4.5. Görünüm tabanlı yüz bulma uygulamasının akış diyagramı Şekil 4.5 de görülen ve Adaboost eğitimi de içinde barındıran HPS nin alt sistemi ise Şekil 4.6 de gösterilmiştir. Şekil 4.6. HPS'nin alt sistemi

69 58 Uygulamanın çalışma esnasındaki görüntüleri Şekil 4.7, Şekil 4.8 ve Şekil 4.9 de gösterilmektedir. Şekil 4.7. Geliştirilen görünüm tabanlı yüz bulma uygulamasının aydınlık ortamdaki çalışma şekli Şekil 4.8. Geliştirilen görünüm tabanlı yüz bulma uygulamasının aydınlık olmayan ortamdaki çalışma şekli

70 59 Şekil 4.9. Geliştirilen görünüm tabanlı yüz bulma uygulamasının çalışma şekli Şeklin sağ tarafındaki o anki gerçek zamanlı görüntü işlenmemiş. Sol taraftaki figür penceresinde ise üstte yüz adaylarının işaretlenmiş görüntüsü bulunmaktadır. Alt sıradaki beş alanda ise yüzler gerçek zamanlı olarak kesilip görüntülenmekte ardından ise sabit diske kayıt işlemi gerçekleştirilmektedir. Uygulama testlerinde toplam 4500 yüz adayı resim toplanmıştır. Toplanan yüz adaylarının içerisinde yanlış olarak tanımlanan resimlerden bazıları Şekil 4.10 de gösterilmiştir. Şekil Deney Grubundan Yanlış Yüz Adaylarına Örnek

71 60 Ayrıca sakal gözlük ve benzer engel örneklerinden bazılarına karşılık gelen yüz adayları ise Şekil 4.11 de gösterilmiştir. Şekil Deney grubundan Engellemeler olsa dahi Yüz adayı olarak Bulunanlar Başarılı yüz adayları program ekranında gösterildikten sonra ise aday görüntü yakalama alanından çıktığında program gösterim alanını yenilemektedir. Başarılı Yüz adaylarından bazıları ise Şekil 4.12 da gösterilmektedir. Şekil Deney Grubu içerisinden Bulunan Başarılı Yüzler

MOD419 Görüntü İşleme

MOD419 Görüntü İşleme MOD419 Görüntü İşleme Ders Kitabı: Digital Image Processing by Gonzalez and Woods Puanlama: %30 Lab. %20 Vize %10 Quizes %40 Final %60 devam mecburiyeti Görüntü İşleme ye Giriş Görüntü İşleme Nedir? Özellikle

Detaylı

Bölüm 7 Renkli Görüntü İşleme

Bölüm 7 Renkli Görüntü İşleme BLM429 Görüntü İşlemeye Giriş Bölüm 7 Renkli Görüntü İşleme Dr. Öğr. Üyesi Caner ÖZCAN Genç sanatçının, rengin sadece tanımlayıcı değil aynı zamanda kişisel ifade anlamına geldiğini anlaması renge dokunmasından

Detaylı

Dijital (Sayısal) Fotogrametri

Dijital (Sayısal) Fotogrametri Dijital (Sayısal) Fotogrametri Dijital fotogrametri, cisimlere ait iki boyutlu görüntü ortamından üç boyutlu bilgi sağlayan, sayısal resim veya görüntü ile çalışan fotogrametri bilimidir. Girdi olarak

Detaylı

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir. MATRİS TRANSPOZU: Bir matrisin satırlarını sütun, sütunlarınıda satır yaparak elde edilen matrise transpoz matris denilir. Diğer bir değişle, eğer A matrisi aşağıdaki gibi tanımlandıysa bu matrisin transpoz

Detaylı

Bilgisayar Programlama MATLAB

Bilgisayar Programlama MATLAB What is a computer??? Bilgisayar Programlama MATLAB Prof. Dr. İrfan KAYMAZ What Konular is a computer??? MATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a) Geliştirme ortamı b) Komut penceresi

Detaylı

BİLGİSAYAR PROGRAMLAMA MATLAB

BİLGİSAYAR PROGRAMLAMA MATLAB BİLGİSAYAR PROGRAMLAMA MATLAB Arş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi Bu hafta? 1. Matlab ve Programlama Ortamı 2. Matlab Komut Penceresi 3. Matlab de değişken tanımlama 4.

Detaylı

MATLAB. Temel işlemler, Vektörler, Matrisler DOÇ. DR. ERSAN KABALCI

MATLAB. Temel işlemler, Vektörler, Matrisler DOÇ. DR. ERSAN KABALCI MATLAB Temel işlemler, Vektörler, Matrisler DOÇ. DR. ERSAN KABALCI İçerik Matlab Nedir? Matlab ın Kullanım Alanları Matlab Açılış Ekranı Matlab Programı İle Temel İşlemlerin Gerçekleştirilmesi Vektör İşlemleri

Detaylı

Görüntü İşleme. Dijital Görüntü Tanımları. Dijital görüntü ise sayısal değerlerden oluşur.

Görüntü İşleme. Dijital Görüntü Tanımları. Dijital görüntü ise sayısal değerlerden oluşur. Görüntü İşleme Görüntü işleme, dijital bir resim haline getirilmiş olan gerçek yaşamdaki görüntülerin bir girdi resim olarak işlenerek, o resmin özelliklerinin ve görüntüsünün değiştirilmesidir. Resimler

Detaylı

R ile Programlamaya Giriş ve Uygulamalar

R ile Programlamaya Giriş ve Uygulamalar R ile Programlamaya Giriş ve Uygulamalar İçerik R ye genel bakış R dili R nedir, ne değildir? Neden R? Arayüz Çalışma alanı Yardım R ile çalışmak Paketler Veri okuma/yazma İşleme Grafik oluşturma Uygulamalar

Detaylı

BM202 SAYISAL ÇÖZÜMLEME

BM202 SAYISAL ÇÖZÜMLEME BM202 SAYISAL ÇÖZÜMLEME DOÇ.DR. CİHAN KARAKUZU DERS-2 1 Ders2-Sayısal Hesaplamalarda Gerek Duyulabilecek Matlab İşlemleri MATLAB, çok paradigmalı (bir şeyin nasıl üretileceği konusunda örnek, model) sayısal

Detaylı

AMAÇ Araçlardaki Kamera Sistemleri

AMAÇ Araçlardaki Kamera Sistemleri SUNU PLANI AMAÇ OPEN CV GÖRÜNTÜ EŞİKLEME KENAR BULMA ŞEKİL BULMA GÖRÜNTÜ GENİŞLETME VE BOZMA GÖRÜNTÜ DOLDURMA AFFİNE DÖNÜŞÜMÜ PERSPEKTİF DÖNÜŞÜM KUŞ BAKIŞI GÖRÜNTÜ DÖNÜŞÜMÜ AMAÇ Araçlardaki Kamera Sistemleri

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Kodlarına Yorum Satırı Eklemek Java Paket Kavramı Java Kütüphane Kavramı Konsoldan Veri Çıkışı ve JOPtionPane Kütüphanesi JOptionPane Kütüphanesi Kullanarak

Detaylı

MatLab. Mustafa Coşar mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar

MatLab. Mustafa Coşar mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar MatLab Mustafa Coşar mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar Sunum Planı MatLab Hakkında Ekran Yapısı Programlama Yapısı Matlab da Programlamaya Giriş Sorular MatLab Hakkında MatLab;

Detaylı

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ BİLGİSAYAR PROGRAMLAMA DERSİ 3. DERS NOTU Konu: MATLAB de Temel İşlemler Hazırlayan: Yrd. Doç. Dr. Ahmet DUMLU 1 MATLAB (Matrix Laboratory) sayısal hesaplama dilidir. MathWorks firması tarafından geliştirilmiş

Detaylı

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ ( BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi 2018-19 Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (e-mail: edemir@sirnak.edu.tr ) 04.10.2018 1 MATLAB da Workspace ve Workspace

Detaylı

Yrd. Doç. Dr. A. Burak İNNER

Yrd. Doç. Dr. A. Burak İNNER Yrd. Doç. Dr. A. Burak İNNER Kocaeli Üniversitesi Bilgisayar Mühendisliği Yapay Zeka ve Benzetim Sistemleri Ar-Ge Lab. http://yapbenzet.kocaeli.edu.tr Ders Adı : Bilgisayar Mühendisliğinde Matematik Uygulamaları

Detaylı

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 11. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Fonksiyonlar Yük. Müh. Köksal Gündoğdu 2 C++ Hazır Fonksiyonlar Yük. Müh. Köksal Gündoğdu 3 C++ Hazır Fonksiyonlar 1. Matematiksel

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Grafik Programlama Bilgisayar kullanılırken monitörlerde iki tür ekran moduyla karşılaşılır. Bu ekran modları Text modu ve Grafik modu dur. Text modunda ekran 25 satır ve 80 sütundan

Detaylı

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ BİLGİSAYAR PROGRAMLAMA DERSİ 4. DERS NOTU Konu: M-dosya yapısı ve Kontrol Yapıları Hazırlayan: Yrd. Doç. Dr. Ahmet DUMLU 1 M-Dosya Yapısı Bir senaryo dosyası (script file) özel bir görevi yerine getirmek

Detaylı

Gama ışını görüntüleme: X ışını görüntüleme:

Gama ışını görüntüleme: X ışını görüntüleme: Elektronik ve Hab. Müh. Giriş Dersi Görüntü İşleme Yrd. Doç. Dr. M. Kemal GÜLLÜ Uygulama Alanları Gama ışını görüntüleme: X ışını görüntüleme: Uygulama Alanları Mor ötesi bandı görüntüleme: Görünür ve

Detaylı

1. GİRİŞ 1.1. GENEL BAKIŞ 1.2. KULLANICI ARAYÜZÜ

1. GİRİŞ 1.1. GENEL BAKIŞ 1.2. KULLANICI ARAYÜZÜ 1. GİRİŞ 1.1. GENEL BAKIŞ MATLAB (MATrix LABoratory) sayısal hesaplama ve dördüncü nesil programlama dilidir. MathWorks firması tarafından geliştiriliyor. MATLAB; - matris işlenmesine, - fonksiyonlar ve

Detaylı

Görüntü İşleme. K.Sinan YILDIRIM Cenk İNCE Tahir Emre KALAYCI. Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 2003

Görüntü İşleme. K.Sinan YILDIRIM Cenk İNCE Tahir Emre KALAYCI. Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 2003 Görüntü İşleme K.Sinan YILDIRIM Cenk İNCE Tahir Emre KALAYCI Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 2003 İçerik Görüntü İşleme Nedir? Görüntü Tanımlamaları Görüntü Operasyonları Görüntü İşleme

Detaylı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

Detaylı

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü MATLAB a GİRİŞ Doç. Dr. Mehmet İTİK Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü İçerik: MATLAB nedir? MATLAB arayüzü ve Bileşenleri (Toolbox) Değişkenler, Matris ve Vektörler Aritmetik işlemler

Detaylı

Bilgisayar Programlama

Bilgisayar Programlama Bilgisayar Programlama M Dosya Yapısı Kontrol Yapıları Doç. Dr. İrfan KAYMAZ Matlab Ders Notları M-dosyası Genel tanıtımı : Bir senaryo dosyası (script file) özel bir görevi yerine getirmek için gerekli

Detaylı

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular Önsöz Giriş İçindekiler V VII IX 1.1. Algoritma 1.1.1. Algoritma Nasıl Hazırlanır? 1.1.2. Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular 2.1. Programın Akış Yönü 19 2.2. Başlama

Detaylı

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ BİLGİSAYAR PROGRAMLAMA DERSİ Yrd. Doç. Dr. Fatih TOSUNOĞLU Erzurum Teknik Üniversitesi Mühendislik Fakültesi İnşaat Mühendisliği Bölümü DERS NOTU 3 KONU: M-dosya yapısı ve Kontrol Yapıları M-Dosya Yapısı

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon

Detaylı

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf İçindekiler 1. Giriş... 1 1.2. c++ Programı Yapısı... 2 1.3.Using Direktifi... 5 Bölüm 2. Veri türleri, değişken kavramı, sabit ve değişken bildirimleri ve c++ da kullanımı 7 2.1. Temel veri türleri...

Detaylı

Fonksiyonlar (Altprogram)

Fonksiyonlar (Altprogram) Fonksiyonlar (Altprogram) C Programlama Dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya gelmesi ile oluşur.

Detaylı

Dijital (Sayısal) Fotogrametri

Dijital (Sayısal) Fotogrametri Dijital (Sayısal) Fotogrametri Dijital fotogrametri, cisimlere ait iki boyutlu görüntü ortamından üç boyutlu bilgi sağlayan, sayısal resim veya görüntü ile çalışan fotogrametri bilimidir. Girdi olarak

Detaylı

GÖRÜNTÜ İŞLEME HAFTA 1 1.GİRİŞ

GÖRÜNTÜ İŞLEME HAFTA 1 1.GİRİŞ GÖRÜNTÜ İŞLEME HAFTA 1 1.GİRİŞ GÖRÜNTÜ İŞLEME Hafta Hafta 1 Hafta 2 Hafta 3 Hafta 4 Hafta 5 Hafta 6 Hafta 7 Hafta 8 Hafta 9 Hafta 10 Hafta 11 Hafta 12 Hafta 13 Hafta 14 Konu Giriş Digital Görüntü Temelleri-1

Detaylı

BÖLÜM12. 2- FORMÜLLER ve OTOMATİK TOPLAM. 2.1. Formüller

BÖLÜM12. 2- FORMÜLLER ve OTOMATİK TOPLAM. 2.1. Formüller BÖLÜM12 2- FORMÜLLER ve OTOMATİK TOPLAM 2.1. Formüller Formül, bir sayfadaki verilerin aritmetiksel, mantıksal, istatistiksel vb. işlemleri yapması için kullanılan denklemlerdir ve bize sonuç bildirirler.

Detaylı

Digital Görüntü Temelleri Görüntü Oluşumu

Digital Görüntü Temelleri Görüntü Oluşumu Digital Görüntü Temelleri Görüntü Oluşumu Işık 3B yüzeye ulaşır. Yüzey yansıtır. Sensör elemanı ışık enerjisini alır. Yoğunluk (Intensity) önemlidir. Açılar önemlidir. Materyal (yüzey) önemlidir. 25 Ekim

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

MATLAB A GİRİŞ. EE-346 Hafta-1 Dr. Ayşe DEMİRHAN

MATLAB A GİRİŞ. EE-346 Hafta-1 Dr. Ayşe DEMİRHAN MATLAB A GİRİŞ EE-346 Hafta-1 Dr. Ayşe DEMİRHAN MATLAB Teknik ve bilimsel hesaplamalar için yazılmış yüksek performanslı bir yazılım geliştirme aracı MATrix LABoratory (MATLAB) Boyutlandırma gerekmeyen

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

İM 205-İnşaat Mühendisleri için MATLAB. Irfan Turk Fatih Üniversitesi,

İM 205-İnşaat Mühendisleri için MATLAB. Irfan Turk Fatih Üniversitesi, İM 205-İnşaat Mühendisleri için MATLAB Irfan Turk Fatih Üniversitesi, 2013-14 MATLAB Nedir? MATLAB ın açılımı MATrix LABoratory dir. MATLAB yüksek performanslı tekniksel bir programlama dilidir. Matematik,

Detaylı

MATLAB Temelleri. EEM104 - Bilgisayar Programlama. Matlab ın Açılış Ekranı. Dr. Mehmet Siraç Özerdem EEM Dicle Üniversitesi. Launch Pad.

MATLAB Temelleri. EEM104 - Bilgisayar Programlama. Matlab ın Açılış Ekranı. Dr. Mehmet Siraç Özerdem EEM Dicle Üniversitesi. Launch Pad. MATLAB Temelleri EEM104 - Bilgisayar Programlama EEM Dicle Üniversitesi Matlab ın Açılış Ekranı Launch Pad Komut geçmişi penceresi Komut penceresi 1 Matlab ın Açılış Ekranı Çalışma alan penceresi Geçerli

Detaylı

MMT 106 Teknik Fotoğrafçılık 3 Digital Görüntüleme

MMT 106 Teknik Fotoğrafçılık 3 Digital Görüntüleme MMT 106 Teknik Fotoğrafçılık 3 Digital Görüntüleme 2010-2011 Bahar Yarıyılı Ar. Gör. Dr. Ersoy Erişir 1 Konvansiyonel Görüntüleme (Fotografi) 2 Görüntü Tasarımı 3 Digital Görüntüleme 3.1 Renkler 3.2.1

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

Dijital (Sayısal) Fotogrametri

Dijital (Sayısal) Fotogrametri Dijital (Sayısal) Fotogrametri Dijital fotogrametri, cisimlere ait iki boyutlu görüntü ortamından üç boyutlu bilgi sağlayan, sayısal resim veya görüntü ile çalışan fotogrametri bilimidir. Girdi olarak

Detaylı

UYDU GÖRÜNTÜLERİ VE SAYISAL UZAKTAN ALGILAMA

UYDU GÖRÜNTÜLERİ VE SAYISAL UZAKTAN ALGILAMA UYDU GÖRÜNTÜLERİ VE SAYISAL UZAKTAN ALGILAMA Son yıllarda teknolojinin gelişmesi ile birlikte; geniş alanlarda, kısa zaman aralıklarında ucuz ve hızlı sonuç alınabilen uzaktan algılama tekniğinin, yenilenebilir

Detaylı

Bilgisayarla Fotogrametrik Görme

Bilgisayarla Fotogrametrik Görme Bilgisayarla Fotogrametrik Görme Dijital Görüntü ve Özellikleri Yrd. Doç. Dr. Mustafa DİHKAN 1 Dijital görüntü ve özellikleri Siyah-beyaz resimler için değer elemanları 0-255 arasındadır. 256 farklı durum

Detaylı

GÖRÜNTÜ İŞLEME HAFTA 2 SAYISAL GÖRÜNTÜ TEMELLERİ

GÖRÜNTÜ İŞLEME HAFTA 2 SAYISAL GÖRÜNTÜ TEMELLERİ GÖRÜNTÜ İŞLEME HAFTA 2 SAYISAL GÖRÜNTÜ TEMELLERİ GÖRÜNTÜ ALGILAMA Üç temel zar ile kaplıdır. 1- Dış Zar(kornea ve Sklera) 2- Koroid 3- Retina GÖRÜNTÜ ALGILAMA ---Dış Zar İki kısımdan oluşur. Kornea ve

Detaylı

FORMÜLLER VE FONKSİYONLAR

FORMÜLLER VE FONKSİYONLAR C FORMÜLLER VE FONKSİYONLAR Konuya Hazırlık 1. Excel de formül kullanmanın faydalarını açıklayınız. Formüller, bir sayfadaki verileri kullanarak işlem yapan denklemlerdir. Bir formülde, aynı sayfadaki

Detaylı

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü MATLAB İLE PROGRAMLAMAYA GİRİŞ Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü nedimtutkun@gmail.com 1 2 1. Hafta nın Ders İçeriği Tanıtım MATLAB ile İlgili Temel Bilgiler Tanıtım MATLAB sayısal hesaplama,

Detaylı

DENEY 3: DTMF İŞARETLERİN ÜRETİLMESİ VE ALGILANMASI

DENEY 3: DTMF İŞARETLERİN ÜRETİLMESİ VE ALGILANMASI DENEY 3: DTMF İŞARETLERİN ÜRETİLMESİ VE ALGILANMASI AMAÇ: DTMF işaretlerin yapısının, üretim ve algılanmasının incelenmesi. MALZEMELER TP5088 ya da KS58015 M8870-01 ya da M8870-02 (diğer eşdeğer entegreler

Detaylı

Uzaktan Algılama Uygulamaları

Uzaktan Algılama Uygulamaları Aksaray Üniversitesi Uzaktan Algılama Uygulamaları Doç.Dr. Semih EKERCİN Harita Mühendisliği Bölümü sekercin@aksaray.edu.tr 2010-2011 Bahar Yarıyılı Uzaktan Algılama Uygulamaları GÖRÜNTÜ İŞLEME TEKNİKLERİ

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı Ders 7 LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ 1 LINUX Yapısı LINUX işletim sisteminin diğer işletim sistemleri gibi kendine özgü bir yapısı vardır. LINUX yapısı ve bileşenleri aşağıdaki

Detaylı

Yazılım Mühendisliği 1

Yazılım Mühendisliği 1 Yazılım Mühendisliği 1 HEDEFLER Yazılım, program ve algoritma kavramları anlar. Yazılım ve donanım maliyetlerinin zamansal değişimlerini ve nedenleri hakkında yorum yapar. Yazılım mühendisliği ile Bilgisayar

Detaylı

2.3. MATRİSLER Matris Tanımlama

2.3. MATRİSLER Matris Tanımlama 2.3. MATRİSLER 2.3.1. Matris Tanımlama Matrisler girilirken köşeli parantez kullanılarak ( [ ] ) ve aşağıdaki yollardan biri kullanılarak girilir: 1. Elemanları bir tam liste olarak girmek Buna göre matris

Detaylı

Görüntü İyileştirme Teknikleri. Hafta-8

Görüntü İyileştirme Teknikleri. Hafta-8 Görüntü İyileştirme Teknikleri Hafta-8 1 Spektral İyileştirme PCA (Principal Component Analysis) Dönüşümü. Türkçesi Ana Bileşenler Dönüşümü Decorrelation Germe Tasseled Cap RGB den IHS ye dönüşüm IHS den

Detaylı

KOCAELİ ÜNİVERSİTESİ ELEKTRONİK VE HABERLEŞME MÜHENDİSLİĞİ BÖLÜMÜ 2018/2019 GYY BİTİRME ÇALIŞMASI ÖNERİ FORMU. (Doç.Dr. M.

KOCAELİ ÜNİVERSİTESİ ELEKTRONİK VE HABERLEŞME MÜHENDİSLİĞİ BÖLÜMÜ 2018/2019 GYY BİTİRME ÇALIŞMASI ÖNERİ FORMU. (Doç.Dr. M. KOCAELİ ÜNİVERSİTESİ ELEKTRONİK VE HABERLEŞME MÜHENDİSLİĞİ BÖLÜMÜ 2018/2019 GYY BİTİRME ÇALIŞMASI ÖNERİ FORMU (Doç.Dr. M. Kemal GÜLLÜ) Derinlik kamerası ile alınan modellerin birleştirilmesi Derinlik kamerası,

Detaylı

TÜRKİYE CUMHURİYETİ DEVLETİNİN temellerinin atıldığı Çanakkale zaferinin 100. yılı kutlu olsun.

TÜRKİYE CUMHURİYETİ DEVLETİNİN temellerinin atıldığı Çanakkale zaferinin 100. yılı kutlu olsun. Doç.Dr.Mehmet MISIR-2013 TÜRKİYE CUMHURİYETİ DEVLETİNİN temellerinin atıldığı Çanakkale zaferinin 100. yılı kutlu olsun. Son yıllarda teknolojinin gelişmesi ile birlikte; geniş alanlarda, kısa zaman aralıklarında

Detaylı

SolidWorks Macro, SolidWorks API. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

SolidWorks Macro, SolidWorks API. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı SolidWorks Macro, SolidWorks API Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı 06.08.2014 SolidWorks Macro, SolidWorks API SolidWorks Makro Makro Kaydetme Kayıtlı Makro Çalıştırma Kayıtlı Makro

Detaylı

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK MATLAB de Bilgisayar Programlama Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK M-dosyası Genel tanıtımı : Bir senaryo dosyası (script file) özel bir görevi yerine

Detaylı

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği INPUTBOX KULLANIMI InputBox komutu, Basic programlama dilinde program algoritması içinde ekran aracışığı ile bir sorgu yönlendirerek, kullanıcının bilgi girmesini sağlamak amacıyla kullanılır. Bu komutun

Detaylı

24. Yazdırma ve Plot Alma

24. Yazdırma ve Plot Alma 24. Yazdırma ve Plot Alma Bu Konuda Öğrenilecekler: Yazdırma işlemini gerçekleştirmek Plot etme işlemini gerçekleştirmek PlotMaker programı ile çalışmak Projenin kağıda dökülme evresinde yazdırma ve plot

Detaylı

Bu uygulama saatinde, dinamik sistemlerin simülasyonu (benzetimi) için geliştirilmiş olan, oldukça kullanışlı bir arayüz, Simulink, tanıtılacaktır.

Bu uygulama saatinde, dinamik sistemlerin simülasyonu (benzetimi) için geliştirilmiş olan, oldukça kullanışlı bir arayüz, Simulink, tanıtılacaktır. Bu uygulama saatinde, dinamik sistemlerin simülasyonu (benzetimi) için geliştirilmiş olan, oldukça kullanışlı bir arayüz, Simulink, tanıtılacaktır. Simulink bir Grafik Kullanıcı Arayüzü (Graphical User

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri

Detaylı

DİJİTAL GÖRÜNTÜ İŞLEME

DİJİTAL GÖRÜNTÜ İŞLEME DİJİTAL GÖRÜNTÜ İŞLEME Prof. Dr. Oğuz Güngör Karadeniz Teknik Üniversitesi Jeodezi ve Fotogrametri Mühendisliği Bölümü 61080 Trabzon ogungor@ktu.edu.tr 1 Renk Nedir? 2 En basit anlamıyla renk maddelerden

Detaylı

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ BİLGİSAYAR PROGRAMLAMAYA GİRİŞ 5. ders notu Örnek program yazılımları İlişkisel operatörler Mantıksal operatörler Şartlı deyimler İf deyimi Kaynak: Dr.Deniz DAL ders sunumları Örnek : Dışarıdan girilen

Detaylı

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6 ix Yazılım Nedir? 2 Yazılımın Tarihçesi 3 Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5 Yazılımın Önemi 6 Yazılımcı (Programcı) Kimdir? 8 Yazılımcı Olmak 9 Adım Adım Yazılımcılık 9 Uzman

Detaylı

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü MATLAB İLE PROGRAMLAMAYA GİRİŞ Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü nedimtutkun@gmail.com 1 3. Hafta Ders İçeriği M Dosyası Oluşturma Fonksiyon Yazma Fonksiyonlar ve Alt Programlar MATLAB

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

MATLAB Semineri. EM 314 Kontrol Sistemleri 1 GÜMMF Elektrik-Elektronik Müh. Bölümü. 30 Nisan / 1 Mayıs 2007

MATLAB Semineri. EM 314 Kontrol Sistemleri 1 GÜMMF Elektrik-Elektronik Müh. Bölümü. 30 Nisan / 1 Mayıs 2007 MATLAB Semineri EM 314 Kontrol Sistemleri 1 GÜMMF Elektrik-Elektronik Müh. Bölümü 30 Nisan / 1 Mayıs 2007 İçerik MATLAB Ekranı Değişkenler Operatörler Akış Kontrolü.m Dosyaları Çizim Komutları Yardım Kontrol

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo Microsoft Excell Excel Nedir? Excel programı; veriler üzerinde hesap yapabilme, verileri tabloya dönüştürebilme, verileri karşılaştırıp sonuç üretebilme, grafik oluşturma, veri yönetimi yapabilir. http://mf.dpu.edu.tr/~eyup

Detaylı

İstatistik ve Olasılık

İstatistik ve Olasılık İstatistik ve Olasılık KORELASYON ve REGRESYON ANALİZİ Doç. Dr. İrfan KAYMAZ Tanım Bir değişkenin değerinin diğer değişkendeki veya değişkenlerdeki değişimlere bağlı olarak nasıl etkilendiğinin istatistiksel

Detaylı

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ BİLGİSAYAR PROGRAMLAMA DERSİ Yrd. Doç. Dr. Fatih TOSUNOĞLU Erzurum Teknik Üniversitesi Mühendislik Fakültesi İnşaat Mühendisliği Bölümü DERS NOTU 5 KONU: Matlab de Diziler ve Matrisler İÇ İÇE FOR DÖNGÜSÜ

Detaylı

BLG 1306 Temel Bilgisayar Programlama

BLG 1306 Temel Bilgisayar Programlama BLG 1306 Temel Bilgisayar Programlama Öğr. Grv. M. Mustafa BAHŞI WEB : mustafabahsi.cbu.edu.tr E-MAIL : mustafa.bahsi@cbu.edu.tr Bilgisayar ile Problem Çözüm Aşamaları Programlama Problem 1- Problemin

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

Ders Adı : Nesne Tabanlı Programlama-I Ders No : Teorik : 3 Pratik : 1 Kredi : 3.5 ECTS : 4. Ders Bilgileri.

Ders Adı : Nesne Tabanlı Programlama-I Ders No : Teorik : 3 Pratik : 1 Kredi : 3.5 ECTS : 4. Ders Bilgileri. Image not found http://bologna.konya.edu.tr/panel/images/pdflogo.png Ders Adı : Nesne Tabanlı Programlama-I Ders No : 0690130114 Teorik : 3 Pratik : 1 Kredi : 3.5 ECTS : 4 Ders Bilgileri Ders Türü Öğretim

Detaylı

DENEY 1: Matlab de Temel Uygulamalar

DENEY 1: Matlab de Temel Uygulamalar DENEY 1: Matlab de Temel Uygulamalar I. AMAÇ Bu deneyde MATLAB (MATrix LABoratory) programının temel özellikleri anlatılmakta, öğrencinin sinyal işleme ve haberleşme uygulamalarında kullanabilmesi için

Detaylı

İLERİ GÖRÜNTÜ İŞLEME Ders-1

İLERİ GÖRÜNTÜ İŞLEME Ders-1 İLERİ GÖRÜNTÜ İŞLEME Ders- Elektromanyetik Spektrum Görünür Bölge 7 nm 4 nm Temel Kavramlar (Prof. Dr. Sarp ERTÜRK) 9/24/24 2 Hazırlayan: M. Kemal GÜLLÜ Sayısal İmge Gösterimi f x, y imgesi örneklendiğinde

Detaylı

Programlama Dilleri 1. Ders 3: Rastgele sayı üretimi ve uygulamaları

Programlama Dilleri 1. Ders 3: Rastgele sayı üretimi ve uygulamaları Ders 3: Rastgele sayı üretimi ve uygulamaları Ders 3 Genel Bakış Giriş Rastgele Sayı Rastgele Sayı Üreteci rand Fonksiyonunun İşlevi srand Fonksiyonunun İşlevi Monte Carlo Yöntemi Uygulama 1: Yazı-Tura

Detaylı

Okut. Yüksel YURTAY. İletişim : (264) Sayısal Analiz. Giriş.

Okut. Yüksel YURTAY. İletişim :  (264) Sayısal Analiz. Giriş. Okut. Yüksel YURTAY İletişim : Sayısal Analiz yyurtay@sakarya.edu.tr www.cs.sakarya.edu.tr/yyurtay (264) 295 58 99 Giriş 1 Amaç : Mühendislik problemlerinin bilgisayar ortamında çözümünü mümkün kılacak

Detaylı

13 Aralık 2007. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

13 Aralık 2007. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz 13 Aralık 2007 Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL Đlgili Modül/ler : Raporlar KULLANICI TANIMLI RAPORLAR Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz Kendi isteklerinize özel rapor tasarımları

Detaylı

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21 İÇİNDEKİLER VII İÇİNDEKİLER 1 PYTHON 1 Neden Python? 2 Python Sürümleri 2 Python Kurulumu 3 Windows Üzerinde Python 3 Ubuntu Üzerinde Python 6 Komut Satırında Python Çalıştırma 6 Windows komut istemi üzerinde

Detaylı

Matlab da Dizi ve Matrisler. Mustafa Coşar

Matlab da Dizi ve Matrisler. Mustafa Coşar Matlab da Dizi ve Matrisler Mustafa Coşar MATLAB Değişkenleri Matlab da değişkenler; skaler, dizi(vektör), matris veya metin (string) türünde olabilirler. Örnek olarak: a=1; b=-3.2e3; c=22/5; metin= mustafa

Detaylı

GÖRÜNTÜ İŞLEME - (7.Hafta) KENAR BELİRLEME ALGORİTMALARI

GÖRÜNTÜ İŞLEME - (7.Hafta) KENAR BELİRLEME ALGORİTMALARI GÖRÜNTÜ İŞLEME - (7.Hafta) KENAR BELİRLEME ALGORİTMALARI Bu konuda bir çok algoritma olmasına rağmen en yaygın kullanılan ve etkili olan Sobel algoritması burada anlatılacaktır. SOBEL FİLTRESİ Görüntüyü

Detaylı

Digital Görüntü Temelleri Görüntü Oluşumu

Digital Görüntü Temelleri Görüntü Oluşumu Digital Görüntü Temelleri Görüntü Oluşumu Işık 3B yüzeye ulaşır. Yüzey yansıtır. Sensör elemanı ışık enerjisini alır. Yoğunluk (Intensity) önemlidir. Açılar önemlidir. Materyal (yüzey) önemlidir. 06 Kasım

Detaylı

Sıklık Tabloları, BASİT ve TEK değişkenli Grafikler Ders 3 ve 4 ve 5

Sıklık Tabloları, BASİT ve TEK değişkenli Grafikler Ders 3 ve 4 ve 5 Sıklık Tabloları, BASİT ve TEK değişkenli Grafikler Ders 3 ve 4 ve 5 Sıklık Tabloları Veri dizisinde yer alan değerlerin tekrarlama sayılarını içeren tabloya sıklık tablosu denir. Tek değişken için çizilen

Detaylı

Excel' de formüller yazılırken iki farklı uygulama kullanılır. Bunlardan;

Excel' de formüller yazılırken iki farklı uygulama kullanılır. Bunlardan; 7. FORMÜLLER SEKMESİ Excel in en çok kullanılan yönü hesaplama yönüdür. Hesaplamalar Formüller aracılığıyla yapılır. Formüller sekmesi anlatılırken sık kullanılan formüller ve formül yazımı da anlatılacaktır.

Detaylı

EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI

EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI 2015-2016 EĞİTİM-ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ 6. SINIF 2. DÖNEM 2. SINAV ÇALIŞMA NOTLARI MİCROSOFT EXCEL PROGRAMI Programın Açılışı: Başlat Tüm Programlar Microsoft Office Microsoft

Detaylı

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

İnternet Programcılığı Öğr. Gör. Serkan AKSU  PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler PHP de Dizi-Değişkenler, Nesneler Dizilerle ilgili örneklere geçmeden önce aşağıdaki tabloyu inceleyelim. Tabloda dizi kavramının mantığı açıklanmaktadır. Tablonun tamamını bir dizi olarak düşünün ve bu

Detaylı

RENK İLE İLGİLİ KAVRAMLAR

RENK İLE İLGİLİ KAVRAMLAR RENK İLE İLGİLİ KAVRAMLAR Tanımlar Renk Oluşumu Gökyüzünde yağmur sonrasında olağanüstü bir renk kuşağı ( gökkuşağı ) görülür. Bunun nedeni yağmur damlalarının, cam prizma etkisi ile ışığı yansıtarak altı

Detaylı

EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER

EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER LAGRANGE YÖNTEMİ Bu metodu incelemek için Amaç fonksiyonu Min.z= f(x) Kısıtı g(x)=0 olan problemde değişkenler ve kısıtlar genel olarak şeklinde gösterilir. fonksiyonlarının

Detaylı

Algoritma ve Programlamaya Giriş

Algoritma ve Programlamaya Giriş Algoritma ve Programlamaya Giriş Algoritma Bir sorunu çözebilmek için gerekli olan sıralı ve mantıksal adımların tümüne Algoritma denir. Doğal dil ile yazılabilir. Fazlaca formal değildir. Bir algoritmada

Detaylı

Ġşlem tablosu kavramını tanımlamak ve işlem tablolarının işlevlerini öğrenmek. Ġşlem tablolarının temel kavramlarını tanımlamak.

Ġşlem tablosu kavramını tanımlamak ve işlem tablolarının işlevlerini öğrenmek. Ġşlem tablolarının temel kavramlarını tanımlamak. Amaçlarımız 2 Ġşlem tablosu kavramını tanımlamak ve işlem tablolarının işlevlerini öğrenmek. Ġşlem tablolarının temel kavramlarını tanımlamak. Microsoft Excel 2010 da bilgi girişi yapabilmek. Excel de

Detaylı

Algoritmalar ve Programlama. DERS - 4 Yrd. Doç. Dr. Ahmet SERBES

Algoritmalar ve Programlama. DERS - 4 Yrd. Doç. Dr. Ahmet SERBES Algoritmalar ve Programlama DERS - 4 Yrd. Doç. Dr. Ahmet SERBES Geçen Derste Değişken oluşturma Skaler Diziler, vektörler Matrisler Aritmetik işlemler Bazı fonksiyonların kullanımı Operatörler İlk değer

Detaylı

MATLAB Temelleri. EE-346 Hafta 2 Dr. Ayşe DEMİRHAN

MATLAB Temelleri. EE-346 Hafta 2 Dr. Ayşe DEMİRHAN MATLAB Temelleri EE-346 Hafta 2 Dr. Ayşe DEMİRHAN Komut Penceresi Çalışma Alanı Komut Satırı Geçerli Klasör Komut Geçmişi Preferences (Tercihler) Command Window bölümünden satır arası boşlukları ve sayı

Detaylı

Uzaktan Algılama Teknolojileri

Uzaktan Algılama Teknolojileri Uzaktan Algılama Teknolojileri Ders 8 Multispektral Görüntüleme ve Uygulamaları Alp Ertürk alp.erturk@kocaeli.edu.tr Multispektral Görüntüleme Her piksel için birkaç adet spektral kanalda ölçüm değeri

Detaylı

I=[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1] % 4x4 lük birim matris

I=[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1] % 4x4 lük birim matris Değişken Türleri ve Atamalar - Marislerin Değişken Olarak Atanması Matrislerin birden fazla elamanları olduğundan herhangi bir satır herhangi bir sütundaki elamanı ayrı ayrı tanımlanmak yerine [ ] sembolü

Detaylı

Bölüm-4. İki Boyutta Hareket

Bölüm-4. İki Boyutta Hareket Bölüm-4 İki Boyutta Hareket Bölüm 4: İki Boyutta Hareket Konu İçeriği 4-1 Yer değiştirme, Hız ve İvme Vektörleri 4-2 Sabit İvmeli İki Boyutlu Hareket 4-3 Eğik Atış Hareketi 4-4 Bağıl Hız ve Bağıl İvme

Detaylı

4. Bölüm Programlamaya Giriş

4. Bölüm Programlamaya Giriş 4. Bölüm Programlamaya Giriş Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 4.1. C# ile Program Geliştirme Net Framework, Microsoft firması tarafından açık internet protokolleri ve standartları

Detaylı

Temel Bilgi Teknolojileri - II Ayrıntılı Ders İçerikleri

Temel Bilgi Teknolojileri - II Ayrıntılı Ders İçerikleri Temel Bilgi Teknolojileri - II Ayrıntılı Ders İçerikleri Hesap Tabloları(Excel 2007) HAFTA 1 1. Hesap Tablolarına Giriş 1.1. Hesap tablosu tanımı, kullanım amacı ve yerleri 1.2. MS Excel Uygulamasına giriş

Detaylı