#include "cv.h"
#include "highgui.h"
int main(int argc, char** argv)
{
CvCapture* capture=0;
IplImage* frame=0;
capture = cvCaptureFromAVI("C:\\boy walking back.avi"); // read AVI video
if(!capture)
throw "Error when reading steam_avi";
cvNamedWindow("w", 1);
for(; ;)
{
/* int cvGrabFrame (CvCapture* capture);
IplImage* cvRetrieveFrame (CvCapture* capture)*/
frame = cvQueryFrame(capture);
if(!frame)
break;
cvShowImage("w", frame);
}
cvWaitKey(0); // key press to close window
cvDestroyWindow("w");
cvReleaseImage(&frame);
}
VS2008 ile openCV kullanıyorum. Bir video dosyasında okudum ve 4 saniyelik bir video klip için yaklaşık 130 olan çerçeve sayısını elde etmek için CV_CAP_PROP_FRAME_COUNT kodunu kullandım. Yürümenin hareket algılayıcılığını yapıyorum, bu yüzden 5 kare arasında 5 kare daha almam gerekiyor, vücudun hareketinde çok az değişiklik var. Şimdiye kadar video klibin bir karesini elde etmemi sağlayan bir programım var. Ancak, farklı kareleri elde edemiyorum ve ayrıca, diğer 5 kareyi elde etmekten nasıl emin olacağımı bilmiyorum. Yukarıdaki, videonun bir karesini almak için kullanılan koddur.OpenCV kullanarak .avi videodan kareler alma
Teşekkür: Aşağıda bu göstermeye yazdığı küçük bir örnektir. Aptal göründüğümde beni affet ama ben OpenCV'ye oldukça yeniyim. Kodunuz çalıştırıldığında, video klip daha hızlı bir hızda koştu, bu da tabii ki 100'ün gecikme zamanını ayarlayarak değiştirilebiliyordu. Ancak, videonun sadece 5 karesinde 1 elde etmek için bir yol var mı? Örneğin, kodun çıktısı ortadaki hareketi gösteren bir çerçeve olacaktır. Ama şu ana kadarki yardımlarınız için çok teşekkür ederim. –
X, X'in herhangi bir karesi 1'den 5'e kadar olan bir çerçeve oluşturabilir mi diye sorar mısın? – mevatron
Ben 5 karede çok 1 çıkarmak mümkün oldu. Yardımınız için teşekkürler :) Şu anda videoda bir karenin resmi veya kopyalanmış bir resmini oluşturmaya çalışıyorum. Neyi başarmaya çalıştığımı göstermek için 2 görüntüyü yüklemek istiyorum ancak henüz 10 itibara sahip değilim:/Hangi openCV işlevlerinin kullanılacağı konusunda bana tavsiyede bulunabiliyor musunuz? –