10.07.2015 Views

Akademik Bilişim '10 10 - 12 Şubat 2010 Muğla

Akademik Bilişim '10 10 - 12 Şubat 2010 Muğla

Akademik Bilişim '10 10 - 12 Şubat 2010 Muğla

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Görüntü İşlemede Yeni Bir Soluk, OPENCVEzgi EriştiXML desteği de sağlayan bir kütüphanedir.Son olarak CvAux bileşeni, şablon eşleştirme(template-matching), şekil eşleştirme (shapematching), bir objenin ana hatlarını bulma (findingskeletons), yüz tanıma (face-recognition),ağız hareketleri izleme (mouth-tracking), vücuthareketlerini tanıma (gesture recognition)ve kamera kalibrasyonu gibi daha pek çokdeneysel algoritmaları bünyesinde barındırankütüphanedir [1].OpenCV kütüphanesi, BSD lisansı ile lisanslanmıştır.Özgür lisanslar içinde en özgürü olarakbilinen bu lisansta kodu alan kişi, istediğigibi kullanma özgürlüğüne sahiptir [2]. <strong>Akademik</strong>ve ticari kullanımı ücretsiz olan bu kütüphaneWindows, Linux, MacOS X gibi farklıplatformlarda kullanılabilir [3].Intel’in görüntü işleme laboratuarlarındageliştirilen ve hız açısından optimize edilenOpenCV kütüphanesi, gerçek zamanlı uygulamalarhedef alınarak geliştirilmiştir. USB2.0 teknolojisi ile birlikte artık standart birbilgisayarda bile gerçek zamanlı uygulamalarçalıştırılabilmektedir. Tüm bu gelişmeler oyuncakyapımından endüstriyel üretime kadar pekçok alanda bu kütüphanenin kullanılmasınayol açmıştır [4].2. OpenCV ile Temel UygulamalarBu bölümde OpenCV kütüphanesini etkin birşekilde kullanabilmek için basit örneklere yerverilmiştir. Tüm örnekler Windows XP işletimsistemi üzerinde OpenCV_1.1pre1a sürümü veVisual Studio 2005 Yazılım Geliştirme Ortamı(IDE) kullanılarak çalıştırılmıştır. ÖzellikleWindows işletim sistemi ile OpenCV kütüphanesinikullanırken pek çok sorunla karşılaşılmıştır.Bu yazıda karşılaşılan problemlerin nelerolduğuna ve çözümlerine de yer verilmiştir.2.1 Bir Resmin GörüntülenmesiAşağıdaki program dosya yolu verilen bir resminOpenCV kütüphanesi ile nasıl açılacağınıgöstermektedir [1].224//PROGRAM 1#include int main(){IplImage* img;img = cvLoadImage(“C:\\Lenna.jpg”);cvNamedWindow(“LENNA”, 1);cvShowImage(“LENNA”, img );cvWaitKey(0);cvReleaseImage(&img);cvDestroyWindow(“LENNA”);return 0;}IplImage veri yapısı, çeşitli resim dosyalarınıhafızaya alabilmek için oluşturulmuş özelbir veri yapısıdır. Program 1’de istenen resimIplImage tipinde bir değişkene cvLoadImagefonksiyonu yardımıyla atanır. Bu fonksiyon,BMP, DIB, JPEG, JPG, JPE, PNG, PBM,PGM, PPM, SR, RAS, TIFF ve TIF uzantılıresim dosyalarını okuyabilir [5]. Okunabilenresim dosyaları cvShowImage Fonksiyonu ileform üzerinde gösterilir. İşlem bittikten sonrayaratılan bütün nesneler hafızadan silinir.Şekil 2. Lenna – Standart Test İmajıŞekil 2’de Program 1 çalıştırıldığında elde edilensonuç görülmektedir.Belirtilen resim dosyası okunamadığı durumlardaaşağıdaki kontroller ve işlemler yapılmalıdır.• Programda resim dosyasına ait dosya yolunun(path) doğru şekilde belirtildiğindenemin olunuz.• Visual Studio 2005 yazılım geliştirmeortamı ile çalışıyorsanız “Visual Studio2005 Sevice Pack 1” yükleyiniz.• Seçtiğiniz yazılım geliştirme ortamı ileOpenCV kütüphanesini çalıştırabilmekiçin gerekli ayarları kontrol ediniz.2.2 Resimlere Filtre UygulamaAşağıdaki programda, seçilen bir resme GaussianFiltresi uygulanmıştır.//PROGRAM 2#include “cv.h”#include “highgui.h”int main(){IplImage* img;img = cvLoadImage(“C:\\Lenna.jpg”);cvNamedWindow(“Filtre_Oncesi”,1);cvShowImage( “Filtre_Oncesi”,img);cvNamedWindow(“Filtre_Sonrasi”,1);IplImage* img2;CvSize boyut;boyut=cvGetSize(img);img2 = cvCreateImage(boyut,8,3);cvSmooth(img,img2,CV_GAUSSIAN,5,5);cvSmooth(img2,img2,CV_GAUSSIAN,5,5);//Filtre Seçenekleri//0 CV_BLUR_NO_SCALE//1 CV_BLUR//2 CV_GAUSSIAN//3 CV_MEDIAN//4 CV_BILATERALcvShowImage(“Filtre_Sonrasi”,img2);cvWaitKey(0);cvReleaseImage(&img);cvReleaseImage(&img2);cvDestroyWindow(“Filtre_Oncesi”);cvDestroyWindow(“Filtre_Sonrasi”);return 0;}Şekil 3. Gaussian Filtresi Uygulanmış ResimYukarıdaki programda Şekil 2’deki resme ardarda 2 defa Gaussian Filtresi uygulanarak Şekil3’deki resim elde edilmiştir.<strong>Akademik</strong> Bilişim’<strong>10</strong> - XII. <strong>Akademik</strong> Bilişim Konferansı Bildirileri<strong>10</strong> - <strong>12</strong> Şubat 20<strong>10</strong> Muğla Üniversitesi225Şekil 3. Gaussian Filtresi Uygulanmış ResimProgramda “cvsmooth” fonksiyonunun parametrelerideğiştirilerek resme farklı filtreler deuygulanabilir.2.3 Kenar Bulma UygulamalarıBütün kenar bulma işlemlerinde verilen resimönce Gri-Tonlu (Gray-Scale) resme çevirilirdaha sonra istenen alt ve üst eşik değerlerinegöre resim üzerindeki kenar noktaları tespitedilir. Kenar bulma yöntemlerinden bazılarıCanny, Sobel ve Laplace Kenar Bulma (EdgeDetector) yöntemleridir.OpenCV kütüphanesi, Canny kenar bulmayöntemi için, ‘cvCanny’, Sobel kenar bulmayöntemi için ‘cvSobel’ ve Laplace kenar bulmayöntemi için, ‘cvLaplace’ isimli fonksiyonlarıiçermektedir. Bu fonksiyonlara gerekli parametrelerverilerek, resimdeki kenarlar tespitedilebilir.Program 3’te bu fonksiyonların kullanımı gösterilmiştir.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!