opencv编程简介笔记6六、视频处理opencv编程简介笔记6六、视频处理
Áù??ÊÓƵ??Àí
[?à?,]
1???ÓÊÓƵÁ?ÖÐ??×?Ò?Ö??,Ãæ
[?à?,]
??1?? OpenCV Ö??Ö?ÓÉãÏñÍ??òÊÓƵÎÄ?þ??AVI?ñÊ???ÖÐ??×?Ö??,Ãæ. [?à?,]
??2?? ?õÊ???Ò??öÉãÏñÍ???×?Æ?:
CvCapture* capture = cvCaptureFromCAM(0); // capture from video device #0
[?à?,]
...
opencv编程简介笔记6六、视频处理
Áù??ÊÓƵ??Àí
[?à?,]
1???ÓÊÓƵÁ?ÖÐ??×?Ò?Ö??,Ãæ
[?à?,]
??1?? OpenCV Ö??Ö?ÓÉãÏñÍ??òÊÓƵÎÄ?þ??AVI?ñÊ???ÖÐ??×?Ö??,Ãæ. [?à?,]
??2?? ?õÊ???Ò??öÉãÏñÍ???×?Æ?:
CvCapture* capture = cvCaptureFromCAM(0); // capture from video device #0
[?à?,]
??3?? ?õÊ???Ò??öÊÓƵÎÄ?þ??×?Æ?:
CvCapture* capture = cvCaptureFromAVI("infile.avi");
[?à?,]
??4?? ??×?Ò?Ö??,Ãæ:
IplImage* img = 0;
if(!cvGrabFrame(capture)){ // capture a frame
printf("Could not grab a frame\n\7");
exit(0);
}
img=cvRetrieveFrame(capture); // retrieve the captured frame
ÈôÒª?Ó?à?öÉãÏñÍ?ÖÐÍ?????×??,Ãæ??ÔòÐëÊ×ÏÈ?ÓÃ??öÉãÏñÍ?ÖÐ×?È?Ò?Ö????ô?Ó×ÅÒª??????×?µÄÖ??,Ãæ?Ö??µ?Ò??öIplImage*ÐÍÍ?ÏñÖÐ????Òë×??ºÕâÒ??ý?ÌÆäʵ?ÉÒÔÓà cvQueryFrame() º?ÊýÒ???Íê?É??
[?à?,]
??5?? ÊÍ?ÅÊÓƵÁ???×?Æ?:
cvReleaseCapture(&capture);
×?ÒâÓÉÊÓƵÁ???×?Æ?µÃµ?µÄÍ?ÏñÊÇÓÉ??×?Æ??ÖÅäºÍÊÍ?ÅÄÚ?æµÄ????ÐèÒªµ??À?ÔÍ?Ïñ?øÐÐÊÍ?ÅÄÚ?æµÄ?Ù×???
[?à?,]
2???ñÈ?/ÉèÖÃÊÓƵÁ?ÐÅÏ?
[?à?,]
??1?? ?ñÈ?ÊÓƵÁ?Éè??ÐÅÏ?:
cvQueryFrame(capture); // ÔÚ?ÁÈ?ÊÓƵÁ?ÐÅÏ?Ç???ÒªÏÈÖ?ÐÐ?Ë?Ù×? int frameH = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT); int frameW = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH); int fps = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
int numFrames = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT);
Í??Æ×ÜÖ?Êý?ö?ÔÊÓƵÎÄ?þÓÐÐ???µ?Ëƺõ??Ì?×?È???Òë×??ºÒ?ÐíOpenCV2.0ÖÐ?ËÎÊÌâÒÑ?â?ö?? [?à?,]
??2?? ?ñÈ?Ö?Í?ÐÅÏ?:
float posMsec = cvGetCaptureProperty(capture, CV_CAP_PROP_POS_MSEC); int posFrames = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_POS_FRAMES); float posRatio = cvGetCaptureProperty(capture, CV_CAP_PROP_POS_AVI_RATIO);
Ëù×?È?µÄÖ?µÄÎ?ÖÃÓÐÈýÖÖ?í?ï??Ê??º?àÀëµÚÒ?Ö??,ÃæµÄÊ??ä?ä?ô??ºÁÃëΪµ?Î???, ?òÕß?àÀëµÚÒ?Ö??,Ãæ??ÐòÁкÅΪ0??µÄÐòÁÐÊý.
µÚÈýÖÖ??Ê?ÊÇ??Ïà?Ô?ÈÂÊ??µÚÒ?Ö?µÄÏà?Ô?ÈÂÊΪ0??×îºóÒ?Ö?µÄÏà?Ô?ÈÂÊΪ1. ?Ë??Ê??ö?Ô?ÁÈ?ÊÓƵÎÄ?þÊ?ÓÐÐ?.
[?à?,]
??3?? ÉèÖÃ?ÓÊÓƵÎÄ?þ×?È?µÄµÚÒ?Ö??,ÃæµÄÎ?ÖÃ:
// start capturing from a relative position of 0.9 of a video file cvSetCaptureProperty(capture, CV_CAP_PROP_POS_AVI_RATIO, (double)0.9);
×?Òâ?Ë??????Î?????×?È???
[?à?,]
3?????æÊÓƵÎÄ?þ
[?à?,]
??1?? ?õÊ???ÊÓƵ?àÐ?Æ?:
CvVideoWriter *writer = 0;
int isColor = 1;
int fps = 25; // or 30
int frameW = 640; // 744 for firewire cameras
int frameH = 480; // 480 for firewire cameras
writer=cvCreateVideoWriter("out.avi",CV_FOURCC('P','I','M','1'),
fps,cvSize(frameW,frameH),isColor);
ÆäËüµÄ?àÂëÆ??úºÅ?üÀ?: CV_FOURCC('P','I','M','1') = MPEG-1 codec CV_FOURCC('M','J','P','G') = motion-jpeg codec (does not work well) CV_FOURCC('M', 'P', '4', '2') = MPEG-4.2 codec CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3 codec CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec CV_FOURCC('U', '2', '6', '3') = H263 codec CV_FOURCC('I', '2', '6', '3') = H263I codec CV_FOURCC('F', 'L', 'V', '1') = FLV1 codec Èô?àÂëÆ??úºÅΪ -1??ÔòÔËÐÐÊ??áµ??öÒ??ö?àÂëÆ?Ñ?Ôñ?ò.
[?à?,]
??2?? ???ÖÊÓƵÎÄ?þ:
IplImage* img = 0;
int nFrames = 50;
for(i=0;i
本文档为【opencv编程简介笔记6六、视频处理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。