Professional Documents
Culture Documents
Sekil Taninma WwwJavaDiliCom
Sekil Taninma WwwJavaDiliCom
Ödev Raporu
m
Yazan : Şadi Evren ŞEKER
(www.sadievrenseker.com ,ses@sadievrenseker.com)
Dersin Hocası: M. Elif Karslıgil
o
(http://www.ce.yildiz.edu.tr/myindex.php?id=6,elif@ce.yildiz.edu.tr)
i.c
hazırlanmış olan bu ilave yazılımlar ve
m
tutmaktadır. Buna göre 7. kişinin 3. resmi
2 Yazılımın tasarımı 0703 ismine sahip olmalıdır. Toplamda
Yazılımı bir kara kutu (blackbox) olarak 500 adet resim olacağı düşünülür ve her
modelleyecek olursak, yazılımın girdileri, kişiye ait 10 adet resim olduğu
o
bir dizin içerisinde bulunan ve isimlerine hesaplanırsa, resimlerin matrix bilgilerini
göre sıralanmış, 500 adet resimden çıkaran ve resim okuyan modül için, 10ar
i.c
oluşmaktadır. Kara kutunun çıkışında ise olarak grup (bundle) oluşturmasını
50 adet öz yüzden oluşan resim dosyası söyleyebiliriz. Burada karşılaşılacak risk,
beklenmektedir. eğitim setinin içinden bir resmin ileride
test bilgisi için kullanılabilecek olması ve
İşlenecek
resimler (500
adet)
dil resim
sorunu
sayılarının
çözmek
karşılaşılması
dengesizliğidir.
için,
durumunda
test resmi
bu
Bu
ile
resmi
atlaması gerekmektedir.
Proje
Giriş değerleri ile ilgili bir sorun da bu
va
(Kara Kutu)
değerlerin “pgm” yapısında (format)
verilmiş olmasıdır. Bu dosya yapısını
Öz yüzler
JAVA ile okumanın yolu, bu proje
(her kişi için
1 adet) kapsamında ne yazık ki bulunamamıştır.
ja
m
kapsamında işlendikten sonra ekranda bir projenin kodlanması ve gerçekleştirilmesi
java frame (Java frame’ler, java bu bölümde anlatılacaktır. Projenin
programlama dilinde yazılan ve işletim kodlaması daha öncede bahsedildiği gibi
o
sisteminde bir pencere olarak gösterilen JAVA dilinde yapılmış olup, kodda
java component (bileşen)leridir. Programın bulunan kritik noktalara, bu bölümün
i.c
çıktısı olarak bu değerler ekranda içerisinde alınmıştır. Ayrıca karşılaşılan
gösterilmiştir. ) içerisinde gösterilmekte ve güçlükler ve çözümleri de bu bölümde
bir resim dosyasına kaydedilmektedir. anlatılmaktadır.
dil
ja va
w.
ww
m
aşağıdaki şekildedir.
TestFaceRecognition: Bu sınıf, ana sınıfımız
olup, eigenfacecreator class’ını çağırmaktadır.
Bu sayede, verilen parametreleri işlemiş ve Fig. 3. Örnek giriş resmi
o
eigenfacecreator, class’ının işleyebileceği
şekle getirmiş olur. Giriş değerlerinden örnek bir resim yukarıdaki
i.c
EigenFaceCreator: Bu sınıfın görevi, figürde gösterilmiştir
çıkartılmıştır.
va
3.1 Giriş değerlerini okuyan
modlün gerçeklemesi
Giriş değerlerinin atlamasını söyleyen bir
koşul yazılmıştır.
Fig. 4. Eigen Face Algoritması
if(sadifile.equals((String)fil
ja
m
satır 1.double[] distance = new
double[MAGIC_NR];
modül
Proje’nin hesaplama ve öz yüzleri
satır 2.double[] minDistance = new
double[MAGIC_NR]; bulmasından sonra, projenin bu sonuçlarını
o
satır 3.idx = 0; gösteren bir modül yazılması ihtiyacı
satır 4.for (image = 0; image <
doğmuştur. Ayrıca bulunan değerler, bir
nrfaces; image++) {
double dizide (array) bulunduğu için bu
i.c
satır 5.temp = 0.0;
satır 6.for (j = 0; j < MAGIC_NR; değerlerin direk olarak ekran görülmesini
j++) { sağlayan ilave bir sınıf (class) yazılmış olup
satır 7.distance[j] = bu sınıf kullanılmıştır. Kısaca, JAVA’da
Math.abs(input_wk[j] - ekrana resim basmak için kullanılan canvas
wk[image][j]);
satır 8.//System.out.print(distance[
j]+"\t");
satır 9.}
dil sınıfından nesneler kullanılmıştır. Ancak bu
canvas sınıfının içinde bulunan Image nesnesi,
dosya kaydetme işlemleri için kullanılan
satır 10.if (image == 0) BufferedImage nesnesi ile birbirine
satır 11.System.arraycopy(distance,0
va
dönüşememektedir. Bunu çözmek için geçici
,minDistance,0,MAGIC_NR);
bir graphics2d objesi yapılmış ve bunun içine
satır 12.if (sum(minDistance) >
sum(distance)) { resim çizdirilerek sonuç, dosyaya aktarılmıştır.
satır 13.this.idx = image;
satır 14.System.arraycopy(distance,0
ja
,minDistance,0,MAGIC_NR);
satır 15.}
satır 16.}
w.
m
height, pix, 0, width));
o
;
i.c
satır 4.paint(g2); hesaplanacağı, ve mesafe hesapla yöntemleri
satır 5.g2.dispose(); incelenmiş ve yapılan araştırmalar sonucunda
elde edilen bilgiler ile bir yazılım
satır 6.try{
geliştirilmiştir. Yazılımın çıktısının renkli bir
satır 7.ImageIO.write(image,
"png", new
File(""+id+".png"));
satır 8.}catch(IOException
dil resim olması, beklenmeyen bir durumdur
ancak bunun resimleri pgm formatından jpg
formatına çevirmekten kaynaklandığı tahmin
e){} edilmektedir. Ayrıca her ne kadar projenin
va
Yukarıdaki kod parçasında, 1. satırda, canvas
amacı yüz tanıma işlemi olmasa da, one-
içerisine yüklü olan resim parçası, hafıza
against-all metodu kullanılarak basit bir
görüntüsü olarak saklanıyor. 2. satırda
tanıma işlemi yazılmış ancak mesafe
BufferedImage tipindeki class’tan yapılmış
hesaplama fonksiyonlarının tam
olan bir nesne içerinse bu hafız resmi
ja