C++ ve OpenCV ile proje yapmak isteyenlerin kafasını en çok karıştıran bir konu OpenCV kurulumudur. OpenCV bir görüntü işleme kütüphanesidir. Görüntü işleme yapmak isteyenler bu kütüphanelerden yardım alırlar. Hangi platformda çalışırsak çalışalım OpenCV genel bir kütüphane olarak karşımıza çıkmakta ve en güzeli açık kaynak koda sahip yani ücretsiz. C++ da aynı keza her platformda çalışabilmektedir. Yani ikisini bir temel olarak adlandırabiliriz. Bu konularda daha fazla bilgi isteyenler arama motorları ile daha fazla bilgiye ulaşabilir.
Gelelim kuruluma. Öncelikle kurulum zor değil sadece dikkat gerektiriyor.
Burada Visual Studio 2010 ve OpenCV 3.0 sürümü için kurulum yapacağız.
Öncelikle OpenCV internet sayfasından kurulum dosyasını indiriyoruz.
http://opencv.org/downloads.html
İndirilenler klasöründen veya nereye indirmişsek oraya giderek kurulum dosyasını açıyoruz. Burada öntanımlı olarak kurulum dosyasının olduğu yer seçilecek. İstediğimiz yeri seçiyoruz. Ben kolaylık olsun diye C nin içini seçtim. Bu şekilde seçilirse C:\opencv klasörüne atıyor.
Bir süre beklettikten sonra kurulum bitiyor. Sadece çıkartma işlemi yaptığı için bazı eklemeleri kendimiz yapmamız gerek. Bigisayarım ı sağ tıklayıp sistem özelliklerini açıyoruz. Sol taraftaki menüden “Gelişmiş Sistem Ayarları” butonunu tıklıyoruz.
Gelişmiş menüsünden “Ortam Değişkenleri” butonuna tıklıyoruz.
Sistem değişkenleri bölümünden “Path”ı bulup düzenle diyoruz.
Bu menüde yeni deyip resimdeki klasörü ekliyoruz. Buradaki eklediğimiz vc11 2011 ve alt sürümlerini temsil ediyor. Uyumlu Visual Studio dosyasını bulmak için o klasöre gidip istediğiniz klasörü ekleyebilirsiniz. VS2010 için vc11 i ekliyoruz.
Bu sayfalardan tamam diyerek çıkıyoruz.
Şimdi gelelim Visual Studio ayarlarına. Öncelikle bir proje oluşturalım.
Ben boş bir proje oluşturdum ve main dosyası yok. Birde main.cpp dosyası oluşturalım.
Ayarları yapmak için oluşturduğumuz proje ayarlarına geliyoruz.
Ben 64 bit işletim sistemi kullanıyorum ve bu programı da 64 bit olarak yazmak istedim. Ayarları da ona göre anlatacağım.
Configuration Manager… butonuna tıklıyoruz.
Platform altındaki Win32 yi tıklayıp new swçwnwğini seçip x64 ü seçiyoruz ve kaydet diyerek çıkıyoruz.
Şimdi kütüphane klasörlerini ekleyeceğiz. Ayarlardan devam edelim. “Configuration Properties” altındaki “VC++ Directories” te bulunan “Include Directories” e tıklayıp edit diyerek “C:\opencv\build\include” klasörünü ekliyoruz.
Şimdi C/C++ ve sonrasında General a gelip “Additional Include Directories” e bi önceki klasörü aynen ekliyoruz.
Şimdi de Linker menüsüne gelip General de bulunan “Additional Library Direvtories” e .lib uzantılarının bulunduğu klasörü ekliyoruz. “C:\opencv\build\x64\vc11\lib” Burada 64 bit kullandığımız için x64 klasörünü tercih ettik. Ve yukarıda eklediğimiz vc11 i burada tekrar eklemiş olduk. Yukarıda hangi sürümü yüklediysek burada aynı sürümü kullanıyoruz.
Bir önceki lib klasöründe bulunan .lib uzantılı dosyaları eklememiz gerek bunun için Linker ve Input menülerini açıp “Additional Dependencies” i tıklayıp tek tek lib dosyarını ekleyeceğiz.
opencv_ts300.lib
opencv_ts300d.lib
opencv_world300.lib
opencv_world300d.lib
İşte bu kadar OpenCV kurulumunu başarı ile tamamladık bundan sonrası sizin kodlarınıza bağlı.
Yine de denemeniz için webcam dan görüntü almanıza yarayan bir küçük program yazalım.
main.cpp
#include <Windows.h>
#include <iostream>
#include “opencv2/highgui/highgui.hpp”
#include “opencv2/opencv.hpp”
#include “opencv2/core/core.hpp”
#include “opencv2/imgproc/imgproc.hpp”
using namespace cv;
using namespace std;
int main(int argc, const char** argv)
{
VideoCapture vid(0); //Kamera seçimi
if (!vid.isOpened())
{
cout<<“Kamera Yüklenemedi” <<endl;
system(“Pause”);
return -1;
}
vid.set(CV_CAP_PROP_POS_MSEC, 1000); //webcam donanmında 300ms sonra işlemeye başla.
namedWindow(“webcam”,CV_WINDOW_AUTOSIZE);
while(1)
{
Mat frame;
bool kont=vid.read(frame); //webcamdan bir frame i frame değişkenine yaz
if(!kont)
{
cout<<“webcam frame yüklenemedi.”<<endl;
system(“Pause”);
break;
}
imshow(“webcam”,frame);
if(waitKey(30)==27)
{
cout<<“ESC ile çıkış yapınız.”<<endl;
system(“Pause”);
break;
}
}
return 0;
}
Anlatım tamamen bana ait olup istediğiniz gibi kullanabilirsiniz tabi kaynak gösterirseniz sevinirim.
İyi çalışmalar 🙂
Bir Cevap Yazın :