MATLAB & IMAGE PROCESSING – Sayfa 2 – Mobile Application Developer

All Posts All Posts

Category: MATLAB & IMAGE PROCESSING
Matlab Genel Bilgiler

MATLAB, yüksek performanslı bir uygulama yazılımı ve bir programlama dilidir. MATLAB, MATrix LABoratory sözcüklerinden gelir ve temelde sayisal ve analitik olarak matematiksel fonksiyonların ifadelerinin kullanıldığı başta mühendislik alanında olmak üzere birçok sayısal analizi kullanan bilimlerde son yıllarda oldukça sık kullanılan bir hazır yazılım paketidir. Özellikle yüksek performans gerektiren algoritma hazırlama ve geliştirme, sayısal analiz, simülasyon, mühendislik problemlerinin sayısal ve grafik çözüm tekniklerinde son derece etkindir.

Matlab yazılım paketinde kullanılacak olan her hazır fonksiyon yanında kullanıcının da kendi yazılımını oluşturma imkani saglar. Matlab’in gerek kişisel bilgisayarlarda (PC) gerekse diğer işletim sistemlerinde (UNIX, LINUX) gibi bazi ufak farklılıklar dışında kullanımı, ya doğrudan kendi çalışma ve komut ekranında ya da ‘m’ uzantılı program dosyası oluşturmak suretiyle (script) olmaktadir. Program çalıştırıldığında çalışma ekranına ilk olarak ‘>>’ komut ekrani gelecektir. Matris ve vektörler [ ] köşeli parantezleri ile tanımlanır.

MATLAB’in temelindeki yapı, boyutlandırma gerektirmeyen matrislerdir. Yaptığımız tüm girdi ve çıktılar, belirteç gerektirmeksizin bir matris tanımlar. İlk olarak Fortran dili ile yazılan MATLAB, daha sonra C ile yazılmıştır.

Tek Noktalı Yöntem ile Kist Bulma Rekursif (Matlab)

Projenin Kodları

Gist Kodları

Ekran görüntüleri:

2 1

İki ve Üç Noktalı ile Kist Bulma (Matlab)

Projenin Kodları

Gist Kodları

Ekran görüntüleri:

Tek Noktalı ile Kist Bulma (Matlab)

Projenin Kodları

Gist Kodları

Ekran görüntüleri:

4
3

2

1

Göz Bebeği Hareketi Belirleme (Matlab)

Projenin Kodları

Tüm projeyi Github İndir

Giriş

Bu projede web kamera yardımıyla göz bebeğinin takip edilmesi gerçekleştirilmiştir. Yüz geometrisinin tanımlanması ve yüz bölgelerinin belirlenmesi için OpenCV’nin Viola Jones gerçekleştirimi kullanılmıştır. Uygulama MATLAB R2008b üzerinde geliştirilmiştir.

Uygulamanın başarımı yüzün kamera üzerindeki konumu, açısına ve ortam ışıklandırmasına bağlı olarak değişmektedir.

Uygulama

Uygulamanın göz bebeklerini tespit etme ve takibi aşamaları aşağıda sıralanmıştır:

  1. Kameradan çekilen görüntü ayıklanması için OpenCV’nin Viola Jones algoritmasına gönderilir. Kamera saniyede 2 kare görüntü alır.
  2. Gönderilen görüntüler algoritma tarafında ayıklanır ve göz bölgeleri belirlenir.
  3. Belirlenen yüz ve bu yüzlere ait göz bölgelerinden kameraya en yakın olan bölgeler seçilir. Bu sayede ekranda birden çok yüz varsa kameraya en yakın olan gözler işlenmek için seçilir.

sekıl 1

Şekil 1. İki Yüzden Önde Olanının Seçilmesi

  1. Seçilen göz bölgeleri çeşitli görüntü işleme filtrelerinden geçirilerek sol ve sağ göz bebekleri belirlenir.
  2. Bundan sonra üstteki adımlar sürekli tekrar edilerek göz bebeklerinin takibi sağlanır.

Snake ile Görüntü Bölütleme (Matlab)

Projenin Kodları

Tüm projeyi Github İndir

Giriş

Bu projede eşik yöntem dışında bir yöntem ile bölütleme işlemi gerçekleştirilmiştir. Kullanılan yöntem, Active Contour olarak da bilinen yılan(snake) yöntemidir. Uygulama MATLAB R2008b üzerinde geliştirilmiştir.

Uygulama, medikal görüntülerde test edilmiştir ve başarımının oval nesnelerin tespitinde daha başarılı olduğu görülmüştür.

Uygulama

Bu çalışmada nesne tespitinde kullanılan algoritmaya yardımcı olarak DIPImage kütüphanesi kullanılmıştır. Nesne tespitinde yapılan işlemler aşağıda sıralanmıştır:

  1. Kullanıcıdan nesne tespitine başlamak için 4 adet nokta girmesi istenir.
  2. Alınan 4 nokta yardımı ile bir ilk sınır çizilir. Alınan 4 noktanın x ve y koordinatlarının ortalaması alınarak merkez nokta belirlenir. Her nokta arası uzaklıklar birbirleri ile kıyaslanarak en büyük farkın olduğu x ve y değerleri çap olacak şekilde bir daire çizilir.

t

Şekil 1. Alınan Noktalar ile Oluşturulan Daire

  1. Alpha, beta, gamma ve iterasyon parametreleri aranacak nesnelerin tipine göre belirlenmiştir. Test için daha çok oval nesneler arandığından dolayı beta yüksek verilmiştir. Çünkü betanın yüksek olması aramanın daha oval hale getirilmesine sebep olur. Alpha ve beta parametreleri de gamma parametreleri ile zıt hareket etmektedir. Alpha ve beta ne kadar yüksek ise gamma aynı biçimde küçük olur.
  2. Parametreler de verildikten sonra yılan modeli yerleştirilmeye çalışılır. Yılan yerleştirilirken toplam enerjinin minimizasyonuna çalışılır. Toplam enerji iç ve dış enerjilerin toplamına eşittir.
  3. Toplam enerji her iterasyonda hesaplandığında belli bir enerji eşik değerinden yüksek ise iç enerji oranınca sınırlar yeniden hesaplanır. Bu sayede aranılan bölgeye doğru kayma gerçekleştirilmiş olur.
  4. İstenen eşik enerjisine ulaşıldığında veya belli bir iterasyon sayısına ulaşıldığında sistem en son bulunduğu noktayı gösterir.

Pişti Oyunu Consol (Matlab)

Proje adımları javada yazılan bir oyunun matlaba dönüştürülmesi şekildedir.

Bir deste 52 karttan oluşmaktadır.

  1. 4 çeşit (çeşit) kart bulunmaktadır: Kupa (♥), Karo (♦), Maça (♠) ve Sinek (♣).
  2. Her çeşitten 13 kart bulunmaktadır (1 veya A, 2, 3 …, 10, J, Q, K). Bu değerler kartın numarası olarak adlandırılır.
  3. J (Joker), Q (Kraliçe) ve K (Kral) için sırasıyla 11, 12 ve 13 kullanabilirsiniz.

Oyuncu ve bilgisayar ellerinde 4 kart bulundurur. Oyun, oyuncu ve bilgisayarın sırasıyla yere bir kart bırakmaları şeklindedir. Yere kart bırakma işlemi oynama olarak adlandırılır. Kart K oyuncu O tarafından oynandığında aşağıdaki 3 durumdan biri ortaya çıkar:

  1. Yerde sadece 1 kart bulunmaktadır. Bu kartı T olarak adlandıralım. Eğer C ile T aynı sayıya eşitse, oyuncu P pişti yapmış olur ve 10 puan kazanır. Oyuncu P yeri temizleyerek C ve T kartlarını kasasına koyar. Bu noktada yer boş durumdadır.
  2. Yerde birden fazla kart vardır. Yerde en üstte bulanan kartı T olarak adlandıralım. Eğer C ile T aynı sayıya eşitse oyuncu P yeri temizleyerek yerdeki tüm kartları kasasına koyar.
  3. Yerdeki kart sayısı ne olursa olsun, eğer C kartı Joker kartına veya yerde bulunan kartların en üstündekine eşit değilse, C kartı yerde kalır ve en üstteki kart olur. Kimse yeri temizlemez.

Oyun sonunda pişti puanlarına ek olarak; her oyuncu, kasasındaki pişti olmayan her kart için 1 puan kazanır. En çok puanı toplayan oyuncu kazanır.

Her pişti oyunu aşağıdaki şekilde devam eder: