Learning OpenCV Capture 2

來源:互聯網
上載者:User

3.</p><p>4.</p><p>5.</p><p>//實現攝像機視頻資料縮放顯示,同時存入磁碟,可以動態調節縮放比例。</p><p>#include "cv.h"<br />#include "highgui.h"<br />#include <stdio.h></p><p>int g_slider_position = 0;<br />IplImage* doPyrDown(IplImage* in,int filter = IPL_GAUSSIAN_5x5)<br />{</p><p>// Best to make sure input image is divisible by two.<br />//<br />assert( in->width%2 == 0 && in->height%2 == 0 );</p><p>IplImage* out = cvCreateImage(<br /> cvSize( in->width/2, in->height/2 ),<br /> in->depth,<br /> in->nChannels<br /> );<br />out->origin = 1;<br />cvPyrDown( in, out );<br />return( out );<br />};</p><p>main( int argc, char* argv[] )<br />{<br />cvNamedWindow( "Source", CV_WINDOW_AUTOSIZE );<br />cvNamedWindow( "Result", CV_WINDOW_AUTOSIZE );<br />CvCapture* capture = cvCreateCameraCapture( -1 );<br />if (!capture){<br /> return -1;<br />}<br />IplImage* pFrame;<br />IplImage* pyr_frame;</p><p>double fps = cvGetCaptureProperty (<br /> capture,<br /> CV_CAP_PROP_FPS<br /> );</p><p>CvSize size = cvSize(<br /> (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH),<br /> (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT)<br /> );</p><p>CvVideoWriter* writer = cvCreateVideoWriter(<br /> "video.avi",<br /> CV_FOURCC('P','I','M','1'),<br /> fps,<br /> size<br /> );</p><p> cvCreateTrackbar(<br /> "Position",<br /> "Result",<br /> &g_slider_position,<br /> 8,<br /> NULL<br /> );</p><p>while(1)<br />{<br /> pFrame=cvQueryFrame(capture);<br /> pyr_frame = cvCreateImage(<br /> cvSize( pFrame->width/2, pFrame->height/2 ),<br /> pFrame->depth,<br /> pFrame->nChannels<br /> );</p><p> switch (g_slider_position)<br /> {<br /> case 2:<br /> pyr_frame = doPyrDown(pFrame);<br /> break;<br /> case 4:<br /> pyr_frame = doPyrDown(pFrame);<br /> pyr_frame = doPyrDown(pyr_frame);<br /> break;<br /> case 8:<br /> pyr_frame = doPyrDown(pFrame);<br /> pyr_frame = doPyrDown(pyr_frame);<br /> pyr_frame = doPyrDown(pyr_frame);<br /> break;<br /> default:<br /> pyr_frame = cvCloneImage(pFrame);;<br /> } </p><p> cvShowImage( "Source", pFrame );<br /> cvShowImage( "Result", pyr_frame );<br /> cvWriteToAVI( writer, pyr_frame );<br /> char c = cvWaitKey(10);<br /> if( c == 27 ) break;<br />}</p><p>cvReleaseVideoWriter( &writer );<br />cvReleaseImage( &pyr_frame );<br />cvReleaseCapture( &capture );<br />cvDestroyWindow("Source");<br />cvDestroyWindow("Result");<br />}<br />

OpenCV 1.0存視頻檔案有問題,2.0解決了這個問題。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.