学习Opencv第2章课后习题
来源:互联网 发布:python购物车程序 编辑:程序博客网 时间:2024/06/09 18:53
3.
4.
5.
//实现摄像机视频数据缩放显示,同时存入磁盘,可以动态的调节缩放比例。
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
int g_slider_position = 0;
IplImage* doPyrDown(IplImage* in,int filter = IPL_GAUSSIAN_5x5)
{
// Best to make sure input image is divisible by two.
//
assert( in->width%2 == 0 && in->height%2 == 0 );
IplImage* out = cvCreateImage(
cvSize( in->width/2, in->height/2 ),
in->depth,
in->nChannels
);
out->origin = 1;
cvPyrDown( in, out );
return( out );
};
main( int argc, char* argv[] )
{
cvNamedWindow( "Source", CV_WINDOW_AUTOSIZE );
cvNamedWindow( "Result", CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCreateCameraCapture( -1 );
if (!capture){
return -1;
}
IplImage* pFrame;
IplImage* pyr_frame;
double fps = cvGetCaptureProperty (
capture,
CV_CAP_PROP_FPS
);
CvSize size = cvSize(
(int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT)
);
CvVideoWriter* writer = cvCreateVideoWriter(
"video.avi",
CV_FOURCC('P','I','M','1'),
fps,
size
);
cvCreateTrackbar(
"Position",
"Result",
&g_slider_position,
8,
NULL
);
while(1)
{
pFrame=cvQueryFrame(capture);
pyr_frame = cvCreateImage(
cvSize( pFrame->width/2, pFrame->height/2 ),
pFrame->depth,
pFrame->nChannels
);
switch (g_slider_position)
{
case 2:
pyr_frame = doPyrDown(pFrame);
break;
case 4:
pyr_frame = doPyrDown(pFrame);
pyr_frame = doPyrDown(pyr_frame);
break;
case 8:
pyr_frame = doPyrDown(pFrame);
pyr_frame = doPyrDown(pyr_frame);
pyr_frame = doPyrDown(pyr_frame);
break;
default:
pyr_frame = cvCloneImage(pFrame);;
}
cvShowImage( "Source", pFrame );
cvShowImage( "Result", pyr_frame );
cvWriteToAVI( writer, pyr_frame );
char c = cvWaitKey(10);
if( c == 27 ) break;
}
cvReleaseVideoWriter( &writer );
cvReleaseImage( &pyr_frame );
cvReleaseCapture( &capture );
cvDestroyWindow("Source");
cvDestroyWindow("Result");
}
OpenCV 1.0存视频文件有问题,2.0解决了这个问题。
转载于:http://hi.baidu.com/loop_k/blog/item/2fbe26264c4c1b388644f973.html
- 学习Opencv第2章课后习题
- 学习Opencv第3章课后习题
- 学习Opencv第4章课后习题
- 《学习opencv》第四章课后习题2
- 《学习opencv》第五章课后习题2
- 《学习opencv》第四章课后习题1
- 《学习opencv》第五章课后习题1
- 《学习opencv》第四章课后习题3
- 《学习opencv》第四章课后习题4
- 《学习opencv》第三章课后习题详解
- 《学习OpenCV》课后习题解答2
- 第2章 算法分析:课后习题
- 《学习OpenCV》课后习题解答(第三章)(仅供参考)
- 《学习OpenCV》课后习题解答(第四章)(仅供参考)(不断更新)
- 《学习OpenCV》课后习题解答1
- 《学习OpenCV》课后习题解答3
- 《学习OpenCV》课后习题解答4
- 《学习OpenCV》课后习题解答5
- Server.MapPath方法的应用方法
- 浅谈JSF2.0(一)
- 编写高性能 Web 应用程序的 10 个技巧 转自微软资料
- 学习Opencv第3章课后习题
- 将OPERA书签转换为IE收藏夹的方法
- 学习Opencv第2章课后习题
- 动态图层处理
- LINQ To XML 入门(2)
- ASP.NET状态管理之六(缓存Cache)
- base64算法
- hibernate里的session.get()和session.load()区别以及Hibernate.initialize(Obj)用法
- delphi使用Panel控件布局详解
- 学习Opencv第4章课后习题
- static 关键字的用法