8 Haziran 2016 Çarşamba

Adım Adım OpenCV (Eclipse & Java)

Adım adım ilerleyelim. İlk kez OpenCV kullanmak için bir proje oluşturuyoruz diyelim...


A) Eclipse ile yeni proje oluşturmak


Burada anlatacaklarımın doğru işlemesi için daha önceki yayınımda anlattığım ilk 7 adımı anlattığım gibi yapmış olmanız gerekiyor. Burada da o yayında anlattığım 8'den sonraki adımlar yer alıyor...

1) Eclipse JavaEE IDE'mizi açtıktan sonra menüden File > New > Java Project

2) Project Name kutusuna OpenCvProjesi_001 diyelim ve Finish diyerek projeyi oluşturalım.

3) Soldaki Package Explorer'den proje adına (OpenCvProjesi_001) sağ tık > Properties seçelim.

4) Açılan pencerede soldan Java Build Path seçelim.

5) Sağdan Add Library butonuna tıklayıp, gelen pencerede User Library seçip Next diyelim.

6) OpenCV-2.4.13 seçip OK diyelim. Ortada beliren OpenCV-2.3.13'ün yanındaki oka tıklayıp açalım ve içinden Native Library Location seçip sağdan Edit diyelim.

7) C:/OpenCV-2.4.13/build/java/x64 yazıp OK ve tekrar OK diyerek kütüphanelerimizi de dahil etme işini bitirelim.

8) Soldaki Package Explorer'den projemizin altındaki src'ye sağ tıklayıp New > Class seçelim.

9) Açılan pencerede Package kısmına bir paket adı belirtelim. (Ben, com.ebykdrms dedim) Name kısmına da class adı belirtelim. (Ben, Class1 dedim) Altta da Which method stubs would you like to create? kısmında public static void main(String args[]) onay kutusunu da işaretleyelim. Nihayet Finish'e basarak class'ımızı da oluşturmuş olalım.


B) Boş bir Mat (matris) oluşturmak


Bildiğiniz gibi dijital görüntüler, renk kodlarıyla ifade edilen noktalardan oluşuyor. Bu noktalar, satır ve sütunlar halinde yan yana gelerek görüntüyü oluşturuyor. Her bir nokta, renk kodlarını tutuyor. Eğer görüntümüzün 3 kanallı bir tipi varsa, her bir nokta üç kanalın (Örn: Red/Green/Blue) renk kodlarını tutuyor. 
OpenCv, bu görüntüleri matris halinde tutuyor. Yani görüntünün her bir noktasındaki her bir renk kodunu, matrisin satır ve sütunlarına sırayla yerleştirerek tutuyor. OpenCv'de görüntülerin tutulduğu bu matris nesnesine Mat nesnesi diyoruz.
Başlangıç olarak hiçbir görüntü barındırmayan boş bir Mat nesnesi oluşturmayı görelim. kod sayfamız aşağıdaki gibi görünsün:

package com.ebykdrms;

import org.opencv.core.*;

public class YuzTespiti {

    public static void main(String[] args) {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        Mat mat = Mat.zeros(3, 3, CvType.CV_8UC1);
        System.out.println("mat = \r" + mat.dump());
    }
}

Şimdi biraz bu kodların ne işe yaradığını inceleyelim.

import org.opencv.core.*;
OpenCv'nin core adlı kütüphanesinin tüm alt kütüphanelerini sayfamıza çağırdık.

public static void main(String[] args) { }
Projemiz çalıştırıldığında ilk çalışacak olan metodumuz olan main() metodu...

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
OpenCv kullanmak istiyorsak, bu satırımızı unutmuyoruz ve kütüphanemizi yüklüyoruz.

Mat matris = Mat.zeros(3, 3, CvType.CV_8UC1);
matris adında bir Mat nesnesi oluşturuyoruz ve ilk değer atamasını hemen yapıyoruz.
Mat.zeros() metodu ile tüm elemanları sıfır değeriyle dolu bir matris oluşturuyoruz. Burada
1.parametre: matrisin satır(row) sayısı veya yüksekliği(height) diyebiliriz. (tür: int)
2.parametre: matrisin sütun(col) sayısı veya genişliği(width) diyebiliriz. (tür: int)
3.parametre: matrisin tipi... Biz burada CvType altında bir sabit değişken kullandık. Bu sabit değişkenin anlamı şudur:
    CV_ dediğimiz kısım, bunun bir OpenCv kodu olduğunu belirtiyor. Başına bu CV_ ekini koyarak, bizim kendi sabit değişkenlerimizle karışmasının önüne geçilmiş oluyor.
    8U dediğimiz kısım, 8 bitlik bir renk türü tutacağımızı anlatıyor.
    C1 dediğimiz kısım 1 kanallı renk tutacağımızı anlatıyor. (Yani gri bir görüntüden bahsediyoruz.)
OpenCv, sabit değişkenlerinde buna benzer bir yapı kullanıyor. Aslında buraya CvType.CV_8UC1 yerine, bu sabit değişkenin karşılığı olan int değeri de yazsak aynı anlama gelecekti.

System.out.println("matris = " + matris.dump());
Konsol çıktısı olarak ekrana matris adlı nesnemizin içeriğini yazdırıyoruz. Projeyi çalıştırdığınızda Eclipse'nin altındaki Console kısmında, 3x3'lük matrisimizin tüm değerlerinin 0 olduğunu göreceksiniz.


C) Devam edecek...


...





<< AnaSayfa - << Önceki Yayın - Sonraki Yayın >>

Hiç yorum yok:

Yorum Gönder