Görüntü İşlemede Yeni Bir Soluk, OPENCV



Benzer belgeler
GörüntüĐşlemede Yeni Bir Soluk, OpenCV

Görüntü Đşlemede Yeni Bir Soluk, OPENCV

AMAÇ Araçlardaki Kamera Sistemleri

Araç Destek Sistemleri İçin Kuş Bakışı Görüntü Dönüşümü. Bird s Eye View Transformation For Vehicle Assistance Systems

Araç Destek Sistemleri İçin Kuş Bakışı Görüntü Dönüşümü. Bird s Eye View Transformation For Vehicle Assistance Systems

OpenCV ile Kamera Kalibrasyonu. Camera Calibration with OpenCV. Eser SERT 1, Deniz TAŞKIN 2, Cem TAŞKIN 3, Nurşen TOPÇUBAŞI 4, İrfan KÖPRÜCÜ 5

Görüntüden OpenCV ile Duygu Analizi

Görüntüden OpenCV ile Duygu Analizi

OpenCV ile Kamera Kalibrasyonu

4. Bölüm Programlamaya Giriş

PROGRAMLAMAYA GİRİŞ DERS 2

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Android Platformunda OpenCV İle Görüntü İşleme

İMGE İŞLEME Ders-2. İmge Dosya Tipleri ve Temel İşlemler. (Yrd. Doç. Dr. M. Kemal GÜLLÜ)

Archive Player Divar Series. Kullanım kılavuzu


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

Bazı Gömülü Sistemlerde OpenCV ile Performans Analizi

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.


BLM 111 Algoritma ve Programlama I Güz 2018

İMGE İŞLEME Ders-2. İmgeler, Dosya Tipleri ve Temel İşlemler. (Prof. Dr. Sarp ERTÜRK)

Eln 1002 Bilgisayar Programlama II

C# nedir,.net Framework nedir?

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Data Structures Lab Güz

Bilgisayar Grafiğine Giriş Ders Notları

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

Bilgisayar Sistemlerine Genel Bakış

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

Android Ders Notları

Strings(Karakter Dizisi)

Webcam ile Kullanıcıların Sayfa Odaklanma Noktalarının Tespiti. The Determination of Users Focus Points of Through the Webcam

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

İŞLETİM SİSTEMLERİ. İŞLETİM SİSTEMİ Kavramı. Klasör ve Dosya Mantığı. Klasör ve Dosya Mantığı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

E-fatura Yenilikler. E-fatura uygulaması ile ilgili çeşitli yenilikler seti ile birlikte yayınlandı:

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Hazırlayan: Cihan Aygül BT Rehber ÖĞRETMENİ

R ile Programlamaya Giriş ve Uygulamalar

C Programlama Dilininin Basit Yapıları

C PROGRAMLAMA DİLİNE GİRİŞ

Hafta 12 Karakter Tutan Diziler

Adım Adım C. Dr. Hidayet Takcı

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Türkçe. Giriş. Özelliklere Genel Bakış

Bilgisayarla Görme (EE 430) Ders Detayları

BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ

Visual Basic. Dosya İşlemleri

Metin Dosyaları. Metin Dosyaları Dosya Açma ve Kapama Dosya Okuma ve Yazma Rastgele Erişim Standart Girdi/Çıktı Hata Kontrolü

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

Algoritma ve Programlama: Karar Yapıları ve Döngüler

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

791. Linux Kullanıcıları Derneği Üyesi

Elektronik Kitap İndirme Kılavuzu. EBSCO ebooks.

. ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

HSancak Nesne Tabanlı Programlama I Ders Notları

MENÜ AYARLAMA 1. MENÜ AYARLAMA. [X] [X] Standard. [X] [X] Yeni Fonksiyon

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

1. Kurulum. Tam ekranda iken MENU tuşuna. Başlat sekmesine gelin ve sonra [ / ] basın ve menüye girin. [ / ]

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Yazılım Mühendisliği 1

ALP OĞUZ ANADOLU LİSESİ EĞİTİM ÖĞRETİM YILI BİLGİSAYAR BİLİMİ DERSİ 2.DÖNEM 2.SINAV ÖNCESİ ÇALIŞMA SORULARI VE YANITLARI

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

1.1.1 Network Konfigürasyonu

Tomcat Uygulama Sunucusunun Kurulumu. İlk olarak adresine gidiyoruz.

C Konsol ve Komut Satırı

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Ethercat 1S Servo Kütüphanesi

BİL-142 Bilgisayar Programlama II

Eln 1001 Bilgisayar Programlama I

Temel Bilgisayar Bilimleri Ders Notu #4-1. kısım

AMAÇLAR: Boot CD/USB Bellek Oluşturmak, İmaj Almak, Driver Yüklemek, ÖDEV-1

Görüntü İşleme Teknikleri ile Elma Tanıma

Linux ve Windows Üzerinde C ve C++ Kullanımı

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

SiberLojikCV Sayısal Görüntü İşleme Platformu

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı

İŞLEM COĞRAFİ BİLGİ SİSTEMLERİ MÜHENDİSLİK VE EĞİTİM LTD. ŞTİ. ArcGIS 10.1 Desktop Ücretsiz Deneme Lisanslaması

AKINSOFT CMS (İçerik Yönetim Sistemi)

Dr. Fatih AY Tel: fatihay@fatihay.net

1.4. BİT Nİ KULLANMA ve YÖNETME

NB Macro Kullanımı Hakkında Genel Bilgiler

ROKAY. Robot Operatör Kayıt Cihazı KULLANMA KILAVUZU V:1.0

SIRMA Bilgisayar Eğitim Danışmanlık San. ve Tic. Ltd. Şti Plaka Tanıma - Plaka Okuma Sistemi

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

Döngü Komutları. Komutu. while Komutu Diğer Operatörler Bileşik Komut for Komutu. İçiçe Döngüler break ve continue Komutları

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

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

Kets DocPlace LOGO Entegrasyonu

Spss 14 İçin İhtiyaç Duyulan Minimum Donanım Ve Yazılım Gereçleri; SPSS 14.0 programını License sunucusu üzerinden kurulumu:

GÖRÜNTÜ TABANLI ALGILAMA İLE QUADROTORUN HAREKETLİ BİR CİSMİ TAKİBİ

Bilgisayar Yazılımları

ALGORİTMA VE PROGRAMLAMA II

ETA:MOBİL KURULUM TALİMATI

Transkript:

Akademik Bilişim 10 - XII. Akademik Bilişim Konferansı Bildirileri Görüntü İşlemede Yeni Bir Soluk, OPENCV İstanbul Ticaret Üniversitesi, Bilgisayar Mühendisliği Bölümü, İstanbul eeristi@iticu.edu.tr Özet: OpenCV, Intel tarafından geliştirilerek BSD lisansı ile lisanslanmış, Bilgisayarla Görü/ Görme kütüphanesidir. Özellikle gerçek zamanlı uygulamalar hedef alınarak geliştirilmiş olması, ticari kullanımı dahil ücretsiz olması ve Windows, Linux, MacOS X gibi farklı platformlarda kullanılabilmesi bu kütüphaneyi diğer görüntü işleme araçlarından bir adım öne çıkarmaktadır. Anahtar Sözcükler: OpenCV, Görüntü İşleme, Bilgisayarla Görü/Görme. A Novel Refreshment for Image Processing, OPENCV Abstract: OpenCV is a computer vision library which was developed by INTEL and released under a BSD license. Furthermore it was developed for real time computer vision applications and its free of charge usage is aimed for both academic and commercial clients. Featuring portability for different operating systems like Windows, Linux, MacOS X, OpenCV brings forward this library from other image processing tools. Keywords: OpenCV, Image Processing, Computer Vision. 1. Giriş OpenCV, bir resim ya da video içindeki anlamlı bilgileri çıkarıp işleyebilmek için INTEL tarafından C ve C++ dilleri kullanılarak geliştirilmiş, açık kaynak kodlu bir Bilgisayarla Görme kütüphanesidir. Şekil 1. OpenCV Bileşenleri[1] OpenCV kütüphanesi, beş temel bileşenden oluşmaktadır. Bu bileşenlerin dört tanesi Şekil 1 de görülmektedir [1]. 223 Computer Vision (Bilgisayarla Görü/Görme) kelimesinin baş harfleri kullanılarak isimlendirilen CV bileşeni, temel resim işleme fonksiyonları ve Bilgisayarla Görü/Görme için kullanılan yüksek seviyeli algoritmaları bünyesinde barındıran beş temel kütüphaneden biridir. Machine Learning Library kelimesinin baş harfleri kullanılarak isimlendirilen MLL bileşeni, adından da anlaşılacağı üzere Makina Öğrenmesi dalı için gerekli istatistiksel verilere ulaşmak, mevcut verileri sınıflandırmak için kullanılan fonksiyonları/araçları içeren diğer bir kütüphanedir. HighGUI bileşeni, slider, form gibi OpenCV kütüphanesi içerisinde tanımlanmış pek çok nesneyi yaratabilmemizi sağlayan bir grafik arabirimi olmakla beraber, resim ve videoları kaydetmek, yüklemek, hafızadan silmek için gerekli giriş/çıkış (I/O) fonksiyonlarını da içerir [1]. CXCore bileşeni, OpenCV ye ait IplImage, cvpoint, cvsize, cvmat, cvhistogram... vs gibi veri yapılarını bünyesinde barındıran,

Görüntü İşlemede Yeni Bir Soluk, OPENCV XML desteği de sağlayan bir kütüphanedir. Son olarak CvAux bileşeni, şablon eşleştirme (template-matching), şekil eşleştirme (shape matching), bir objenin ana hatlarını bulma (finding skeletons), yüz tanıma (face-recognition), ağız hareketleri izleme (mouth-tracking), vücut hareketlerini tanıma (gesture recognition) ve kamera kalibrasyonu gibi daha pek çok deneysel algoritmaları bünyesinde barındıran kütüphanedir [1]. OpenCV kütüphanesi, BSD lisansı ile lisanslanmıştır. Özgür lisanslar içinde en özgürü olarak bilinen bu lisansta kodu alan kişi, istediği gibi kullanma özgürlüğüne sahiptir [2]. Akademik ve ticari kullanımı ücretsiz olan bu kütüphane Windows, Linux, MacOS X gibi farklı platformlarda kullanılabilir [3]. Intel in görüntü işleme laboratuarlarında geliştirilen ve hız açısından optimize edilen OpenCV kütüphanesi, gerçek zamanlı uygulamalar hedef alınarak geliştirilmiştir. USB 2.0 teknolojisi ile birlikte artık standart bir bilgisayarda bile gerçek zamanlı uygulamalar çalıştırılabilmektedir. Tüm bu gelişmeler oyuncak yapımından endüstriyel üretime kadar pek çok alanda bu kütüphanenin kullanılmasına yol açmıştır [4]. //PROGRAM 1 #include <highgui.h> int main() IplImage* img; img = cvloadimage( C:\\Lenna.jpg ); cvnamedwindow( LENNA, 1); cvshowimage( LENNA, img ); cvreleaseimage(&img); cvdestroywindow( LENNA ); IplImage veri yapısı, çeşitli resim dosyalarını hafızaya alabilmek için oluşturulmuş özel bir veri yapısıdır. Program 1 de istenen resim IplImage tipinde bir değişkene cvloadimage fonksiyonu 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]. Okunabilen resim dosyaları cvshowimage Fonksiyonu ile form üzerinde gösterilir. İşlem bittikten sonra yaratılan bütün nesneler hafızadan silinir. 2. OpenCV ile Temel Uygulamalar Bu bölümde OpenCV kütüphanesini etkin bir şekilde kullanabilmek için basit örneklere yer verilmiştir. Tüm örnekler Windows XP işletim sistemi üzerinde OpenCV_1.1pre1a sürümü ve Visual Studio 2005 Yazılım Geliştirme Ortamı (IDE) kullanılarak çalıştırılmıştır. Özellikle Windows işletim sistemi ile OpenCV kütüphanesini kullanırken pek çok sorunla karşılaşılmıştır. Bu yazıda karşılaşılan problemlerin neler olduğuna ve çözümlerine de yer verilmiştir. 2.1 Bir Resmin Görüntülenmesi Aşağıdaki program dosya yolu verilen bir resmin OpenCV kütüphanesi ile nasıl açılacağını göstermektedir [1]. 224 Şekil 2. Lenna Standart Test İmajı Şekil 2 de Program 1 çalıştırıldığında elde edilen sonuç görülmektedir. Belirtilen resim dosyası okunamadığı durumlarda aşağıdaki kontroller ve işlemler yapılmalıdır.

Programda resim dosyasına ait dosya yolunun (path) doğru şekilde belirtildiğinden emin olunuz. Visual Studio 2005 yazılım geliştirme ortamı ile çalışıyorsanız Visual Studio 2005 Sevice Pack 1 yükleyiniz. Seçtiğiniz yazılım geliştirme ortamı ile OpenCV kütüphanesini çalıştırabilmek için gerekli ayarları kontrol ediniz. 2.2 Resimlere Filtre Uygulama Aşağıdaki programda, seçilen bir resme Gaussian Filtresi uygulanmıştır. Akademik Bilişim 10 - XII. Akademik Bilişim Konferansı Bildirileri //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_BILATERAL cvshowimage( Filtre_Sonrasi,img2); cvreleaseimage(&img); cvreleaseimage(&img2); cvdestroywindow( Filtre_Oncesi ); cvdestroywindow( Filtre_Sonrasi ); Şekil 3. Gaussian Filtresi Uygulanmış Resim Yukarıdaki programda Şekil 2 deki resme ard arda 2 defa Gaussian Filtresi uygulanarak Şekil 3 deki resim elde edilmiştir. Şekil 3. Gaussian Filtresi Uygulanmış Resim Programda cvsmooth fonksiyonunun parametreleri değiştirilerek resme farklı filtreler de uygulanabilir. 2.3 Kenar Bulma Uygulamaları Bütün kenar bulma işlemlerinde verilen resim önce Gri-Tonlu (Gray-Scale) resme çevirilir daha sonra istenen alt ve üst eşik değerlerine göre resim üzerindeki kenar noktaları tespit edilir. Kenar bulma yöntemlerinden bazıları Canny, Sobel ve Laplace Kenar Bulma (Edge Detector) yöntemleridir. OpenCV kütüphanesi, Canny kenar bulma yöntemi için, cvcanny, Sobel kenar bulma yöntemi için cvsobel ve Laplace kenar bulma yöntemi için, cvlaplace isimli fonksiyonları içermektedir. Bu fonksiyonlara gerekli parametreler verilerek, resimdeki kenarlar tespit edilebilir. Program 3 te bu fonksiyonların kullanımı gösterilmiştir. 225

Görüntü İşlemede Yeni Bir Soluk, OPENCV //PROGRAM 3 #include <cv.h> #include <highgui.h> #include <stdio.h> int main( ) int sec;iplimage *rgb, *gry; rgb=cvloadimage( C:\\Lenna.jpg ); cvnamedwindow( Kaynak Resim,1); cvshowimage( Kaynak Resim,rgb); CvSize boyut=cvgetsize(rgb); gry = cvcreateimage(boyut,8,1); cvcvtcolor(rgb,gry,cv_rgb2gray); cvnamedwindow( Gri-Tonlu Resim,1); cvshowimage( Gri-Tonlu Resim,gry); printf( 1-Canny,2-Sobel,3-Laplace ); printf( \nyontem Seciniz...\n ); scanf( %d,&sec); if (sec==1) //Canny IplImage* cny; cny = cvcreateimage(boyut,8,1); cvnamedwindow( Canny Uygula,1); cvcanny(gry,cny,45,120,3); cvshowimage( Canny Uygula,cny ); cvreleaseimage(&cny); cvdestroywindow( Canny Uygula ); else if (sec==2) //Sobel IplImage* sbl; rgb=cvcloneimage(gry); sbl = cvcreateimage(boyut,ipl_depth_16s,1); cvsobel (rgb, sbl, 1, 0, -1); cvconvertscaleabs (sbl, gry); cvnamedwindow( Sobel Uygula,1); cvshowimage( Sobel Uygula,gry); cvreleaseimage(&sbl); cvdestroywindow( Sobel Uygula ); else if (sec==3) //Laplace IplImage* lplc; lplc = cvcreateimage(boyut,ipl_ DEPTH_16S,1); cvlaplace (gry, lplc, 3); cvconvertscaleabs (lplc, gry); cvnamedwindow( Laplace Uygula,1); cvshowimage( Laplace Uygula,gry); cvreleaseimage(&lplc); cvdestroywindow( Laplace Uygula ); else printf( Yanlis Girdiniz. ); cvreleaseimage(&rgb); cvreleaseimage(&gry); cvdestroywindow( Kaynak Resim ); cvdestroywindow( Gri-Tonlu Resim ); 226 Şekil 4. Gri Tonlu Resim Şekil 5. cvcanny Fonksiyonu Çıktısı Program 3, Şekil 2 deki standart test imajı (Lenna.jpg) ile çalıştırıldığında, Şekil 4 teki Gri tonlu resim ile program akışındaki seçime bağlı olarak bu üç kenar bulma yöntemlerinden biri uygulanmış resim elde edilir. Şekil 5 te Canny kenar bulma yöntemi ile kenarları tespit edilen resim, Şekil 6 da Sobel kenar bulma yöntemi ile kenarları tespit edilen resim, Şekil 7 de ise Laplace kenar bulma yöntemi ile kenarları tespit edilen resim görülmektedir.

Akademik Bilişim 10 - XII. Akademik Bilişim Konferansı Bildirileri Program 4 te herhangi bir kameradan görüntü yakalayabilmek için gereken temel kodlara yer verilmiştir. cvcapturefromcam metodu kullanılan kameranın ID sini parametre olarak alır. Sistemde tek bir USB kamera kullanılıyorsa parametre olarak 0 (CV_CAP_ANY), birden fazla kamera kullanılıyorsa 100 (CV_CAP_MIL), 200 (CV_CAP_VFW) ya da 300 (CV_CAP_FIRE- WIRE, CV_CAP_IEEE1394,..vs) değerlerinden biri parametre olarak kullanılır. Sistemde kullanılan kameranın çeşidine ve sayısına göre, deneme yanılma yöntemiyle gereken parametre seçilir. Şekil 6. cvsobel Fonksiyonu Çıktısı Program 4 te cvcapturefromcam metodu ile CvCapture tipinden bir değişkene görüntü gelmesi sağlandıktan sonra sonsuz bir döngü yardımıyla yakalanan görüntünün içerisindeki çerçeveler/resimler (frame) cvqueryframe metodu ile tek tek sorgulanıp okutularak ekranda gösterilir. ESC a basıldığında görüntü yakalama işlemi sona erer. Şekil 7. cvlaplace Fonksiyonu Çıktısı 2.4 Kamera ile Gerçek Zamanlı Görüntü Yakalama OpenCV kütüphanesi ile USB ya da dahili web kamerasından görüntü yakalayarak gerçekzamanlı uygulamalar geliştirilebilir. Sistemde birden fazla kamera kullanılması durumunda gerekli kamera ID si belirlenip ilgili metoda parametre olarak girilmelidir. 227 //PROGRAM 4 #include highgui.h #include stdio.h int main( ) cvnamedwindow( GORUNTU,1); CvCapture* video=cvcapturefromcam(0); if (video==null) printf( Dosya okunamadi..\n ); IplImage* frame; while(1) frame=cvqueryframe(video); if (!(frame) ) break; cvshowimage( GORUNTU, frame); char c = cvwaitkey(30); if ( c == 27 ) break; printf( Okuma islemi bitmistir.\n ); cvreleasecapture( &video ); cvdestroywindow( GORUNTU );

Görüntü İşlemede Yeni Bir Soluk, OPENCV Bu kodlar ile bir TV kartı aracılığıyla elde edilen görüntü de yakalanabilir. 2.5 Bir Video Dosyasının Oynatılması OpenCV kütüphanesi ile bir video dosyasını okumak, bir resim dosyasını okumak kadar kolaydır. Aşağıdaki program ile avi uzantılı dosyaları açabilirsiniz. //PROGRAM 5 #include highgui.h #include stdio.h int main( ) cvnamedwindow( Avi Dosyası,1); CvCapture* video; video=cvcapturefromfile( A.avi ); //video=cvcapturefromavi( A.avi ); int zaman, fps; fps=cvgetcaptureproperty(video,5); zaman=1000/fps; if (video==null) printf( Dosya okunamadı..\n ); IplImage* frame; while(1) frame=cvqueryframe(video); if (!(frame)) break; cvshowimage( Avi Dosyası,frame); char c = cvwaitkey(zaman); if ( c == 27 ) break; cvreleasecapture(&video); cvdestroywindow( Avi Dosyası ); Belirtilen video dosyası okunamadığı durumlarda video değişkeninin içeriği null gelmekte ve Şekil 8. deki program çıktısı elde edilmektedir. Bu gibi durumlarda aşağıdaki kontroller ve işlemler yapılmalıdır. Programda video dosyasına ait dosya yolu (path) belirtilmemişse okunmak istenen video dosyası, proje dosyasının içerisindeki ilgili klasöre taşınmalı ya da dosya yolunun doğru şekilde programda belirtildiğinden emin olunmalıdır. Cinepak Codec gibi bazı codec ler ile hazırlanmış video dosyaları Opencv ile okunabilir ancak değişik codec ler ile kodlanmış avi dosyaları çoğu zaman (Windows üzerine kurulmuş) OpenCV kütüphanesi ile açılamamaktadır. Bu gibi durumlarda dosya özelliklerinden codec kontrolü yapılmalıdır(şekil 9). Şekil 9. Video dosyası özellik penceresi Eğer video herhangi bir codec ile sıkıştırılmış ise VirtualDub [6] gibi bir aracı program ile dosyanın codec ini değiştirilmeli ya da video dosyası sıkıştırılmamış avi dosyası haline getirilmelidir. 3. Sonuçlar Şekil 8. Video dosyası okunamadığı durumda açılan pencere 228 OpenCV kütüphanesi, ücretsiz olması, işletim sistemi bağımsız olması, gerçek zamanlı uy-

Akademik Bilişim 10 - XII. Akademik Bilişim Konferansı Bildirileri gulamalarda kullanılabilir olması ve 500 ün üzerinde fonksiyon desteği sayesinde görüntü işleme ile ilgilenen kişiler için hızlı ve rahat bir geliştirme süreci sağlar. Ayrıca eğitim kurumlarında açık kaynak kodlu ders aracı olarak kullanılabilir. 4. Kaynaklar [1] Bradski, G. and Kaehler, A., Learning OpenCV: Computer Vision with the OpenCV Library, O Reilly Media, Amerika Birleşik Devletleri, 16-17 (2008). [2] http://www.bilisim-kulubu.com/sozluk/ [4] INTEL CORPORATION: Intel researchers teach computers to read lips to improve accuracy of speech recognition software. M2 Presswire, Coventry, Apr 28,2003, pg1. [5] OpenCV Reference Manuals - HighGUI Reference Manual [6] http://www.virtualdub.org/ [7] OpenCV Reference Manuals - CV Reference Manual [8] OpenCV Reference Manuals - CXCORE Reference Manual [3] http://opencv.willowgarage.com/wiki/ 229