Bu yazımızda video ve web camden görüntü almayı anlatıyoruz. bu işe elin oğlu capture demiş.
Hareketli görüntü dediğimizde zaten görüntünün peş peşe gösterilmesi ile oluşuyor.
* capture için CvCapture tipinde bir işaretçi kullanıyoruz
CvCapture *cap;* Video Dosyası için cvCaptureFromFile fonksiyonu kullanıyoruz.
CvCapture* cvCaptureFromFile( const char* dosya_adi );* Web Cam için cvCaptureFromCAM fonksiyonu kullanıyoruz.
cap=cvCaptureFromFile("video.avi");
CvCapture* cvCaptureFromCAM( int index );index : Kamera No, index olara -1 kullandığımızda hangi kamera varsa onu kullanır.
cap=cvCaptureFromCAM( -1 );* Capture ile işimiz bittiğinde cvReleaseCapture fonksiyonuyla ile gereken temizlik yapılıyor.
void cvReleaseCapture( CvCapture** capture );* Alacağımız hareketli görüntünün çeşitli özelliklerini öğrenmek için cvGetCaptureProperty fonksiyonu kullanılır.
cvReleaseCapture( &cap );
double cvGetCaptureProperty( CvCapture* capture, int property_id );capture : cvCaptureFromFile veya cvCaptureFromCAM ile elde ettiğimiz işaretçi
property_id : Öğrenmek istediğimiz özellik
yani
CV_CAP_PROP_POS_MSEC : Video dosyası için milisaniye cinsinden geçen süre* Bahsi geçen Özellikleri değiştirmek için cvSetCaptureProperty fonksiyonu kullanılır benzeri şekilde
CV_CAP_PROP_POS_FRAMES : Frame indeksi - 0 ilk -
CV_CAP_PROP_POS_AVI_RATIO : - Video dosyası için gösterilen yerini (0 ile 1 ) gösteren indeks 0 başlangıç 1 bitiş
CV_CAP_PROP_FRAME_WIDTH : Görüntü Eni - X -
CV_CAP_PROP_FRAME_HEIGHT : Görüntü Boyu - Y -
CV_CAP_PROP_FPS : Saniyedeki Görüntü sayısı
CV_CAP_PROP_FOURCC : 4 karekterden oluşan Video Sıkıştırma Format kısaltması - codec - CV_CAP_PROP_FRAME_COUNT - Video dosyasındaki frame sayısı
int cvSetCaptureProperty( CvCapture* capture, int property_id, double value );property_id : Bir önceki fonksiyonda geçti
value : Değiştirmek istediğimiz özelliğin yeni değeri.
Dikkat edilmesi gereken bir nokta her özelliği istediğiniz gibi değiştiremiyorsunuz. Bazıları Web Cam için bazıları Video dosyası için geçerli detay için OpenCv dökümantasyonuna bakın
* Sıra görüntüyü almaya geldi bu iş için cvQueryFrame fonksiyonunu kullanıyoruz
IplImage* cvQueryFrame( CvCapture* capture );oda bize daha önce öğrendiğimiz IplImage cinsinden görüntüyü veriyor gerisi artık bize kalmış OpenCv nin imkanlarıyla istediğimizi yapabiliriz...
Örnek Kod için Buyrunuz : Ders5
Deeep Not : Bu serimizi hele şükür bitirdik. Mütevazi bir bilgisayarda aldık ama henüz içini ayarlayamadık, Yeni projelerimiz var, yazılacak pek çok konu da var. Ama Bir taraftan okur-yazamaz olmamız diğer taraftan vakitsizlik engelliyor. Arayan soranların hatrına İnşallah yazmaya başlayacağız.