OpenCV, uzun adıyla “Open Computer Vision”, Intel tarafından desteklenen, C üzerinde geliştirilen açık kaynak kodlu bir görüntü işleme kütüphanesidir. Gerek ileri düzey görüntü işleme uygulamaları gerekse basit uygulamalar için OpenCV gelişmiş ve uygulaması kolay bir kütüphanedir.
Bu makalede, OpenCV kullanarak Visual Studio 2008 platformu üzerinde “görüntü işleme” konusuna bir giriş yapacağız.
Bilgisayar görüntüleri her nokta için tutulan renk değerlerinden oluşur, işte bu renk değerlerinin her birine kanal(“channel”) adı verilir. 800 * 600 bir resmi ele aldığımızda aslında her satırında 600 nokta olan 800 satırlı bir noktalar kümesi ve bu noktalara ait kanal değerlerinden bahsetmiş oluruz. Örneğin siyah beyaz bir resim için tek bir kanal var iken, renkli bir resimde genelde üç kanal bulunur, Red (kırmızı) kanal, Blue (mavi) kanal ve Green (Yeşil) Kanal. Bu kanalların her biri 0’dan 255’e kadar bir değere sahiptir, Kırmızı bir noktanın değeri RGB (255,0,0) iken, Yeşil bir noktanın (0,255,0)’dır. Görüntülenebilecek bütün renkler bu üç kanalın değerlerinin değişmesiyle oluşur. Görüntü işleme bu kanalların değerlerinin işlenmesi üzerine kuruludur.
Şimdi OpenCV kullanarak bilgisayarda görüntü işlemeyle ilgili bir örnek yapalım. Öncelikle eğer bilgisayarınızda Visual Studio 2008 kurulu değil ise, http://www.microsoft.com/express adresinden Visual C++ 2008’i indirmeniz gerekmektedir. Daha sonra http://sourceforge.net/projects/opencvlibrary adresinden OpenCV kütüphanesini indirmelisiniz.
OpenCV’yi kullanabilmek için Visual C++’da bir takım ayarlar yapmanız gerekmektedir;
-Visual C++’ı açtıktan sonra “Tools” menüsünden “Options”’a tıklayın. Buradan “Projects” altındaki “VC++ Directories”’i seçin. Gelen sayfada, “Show Directories For” listesinden “Library Files”’ı seçin. Yeni düğmesine tıklayın ve OpenCV’i kurduğunuz klasörü seçin (Örnek: C:Program FilesOpenCV”).
-“Show Directories For” listesinden bu defa “Library Files”’ı seçin ve yukarıdaki gibi lib dosyalarının bulunduğu klasörü ekleyin (Örnek: “C:Program FilesOpenCVlib”).
-“Show Directories For” listesinden “Include Files”’ı seçin ve aşağıda bulunan örnekteki gibi, kendi bilgisayarınızda OpenCV’nin kurulum klasöründe olan altklasörleri ekleyin.
"C:Program FilesOpenCVcvinclude""C:Program FilesOpenCVcxcoreinclude""C:Program FilesOpenCVotherlibshighgui""C:Program FilesOpenCVcvauxinclude""C:Program FilesOpenCVotherlibscvcaminclude" -Son olarak “Show Directories For” listesinden “source files”’ı seçin ve aşağıdakine benzer bir şekilde kendi OpenCV kurulum klasörünüzden gerekli alt klasörleri ekleyin.
"C:Program FilesOpenCVcvsrc""C:Program FilesOpenCVcxcoresrc""C:Program FilesOpenCVcvauxsrc""C:Program FilesOpenCVotherlibshighgui""C:Program FilesOpenCVotherlibscvcamsrcwindows" Bu ayarları yaptığınızda OpenCV’yi kullanmak için gerekli genel ayarları yapmış olursunuz. Şimdi yeni bir proje oluşturmak için “File” menüsünden “New Project”’e tıklayın. Gelen mendüden CLR’ı seçin ve sağdaki menüden de “CLR Console Application”’ı seçin. Win32 yerine CLR’ı seçmemizdeki amaç, Visual C++’ın managed özelliklerini de kullanmak istememiz.”
Şimdi “Project” menüsünden “Properties”’i seçelim ve gelen menüde “Configuration Properties” altında Linker’a tıklayalım. Açılan alt menüden Input’u seçelim ve “Additional Dependencies”’e aşağıdaki kütüphaneleri ekleyelim:
cv.lib cxcore.lib highgui.lib
Bütün ayarları bitirdik ve projemizi oluşturduk, şimdi kodumuzu ekleyelim ve satır satır inceleyelim:
// OpenCVGiris.cpp : main project file.
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
using namespace System;
int main(array
{
IplImage* image = cvLoadImage("C:test.jpg",1);
cvNamedWindow("Imaj",1);
cvShowImage("Imaj",image);
cvWaitKey(0);
cvDestroyWindow("Imaj");
cvReleaseImage(&image);
return 0;
}
IplImage* image = cvLoadImage("C: est.jpg",1);
Bilgisayarımızın C: klasöründe bulunan test.jpg isimli resmi işlemek üzere alıyoruz, siz burada doğru pathi ve ismi vererek herhangi bir resim kullanabilirsiniz. Path’den sonra gelen “1” ise resmin renkli olup olmadığını belli ediyor, bu alana 0 değerini verirseniz resminiz siyah beyaz olarak alınır.
cvNamedWindow("Imaj",1);
”Imaj” adıyla bir pencere oluşturuyoruz. “1” ise pencere büyüklüğü değişirse resmin büyüklüğünün değişip değişmeyeceğini simgeliyor. Eğer 0 yaparsanız pencereyi büyüttüğünüzde resminiz de büyür, ya da tam tersi.
cvShowImage("Imaj",image);
Burada ise “image” resmimizi “Imaj” penceresinde göstereceğimizi belirtiyoruz.
cvWaitKey(0);
Herhangi tuşa basılana kadar beklememiz gerektiğini belirtiyoruz.
cvDestroyWindow("Imaj");
“Imaj” isimli pencereyi yok ediyoruz.
cvReleaseImage(&image);
Resmimizi başka kullanımlar için release ediyoruz.
Bu makalede OpenCV kütüphanesinin kullanımına ilişkin bir giriş yaptık. http://vision.cis.udel.edu/opencv adresindeki “Reference Manual”’leri kullanarak OpenCV’deki birçok fonksiyon hakkında daha detaylı bilgi edinebilirsiniz.
HappY Codin’