第二个程序——播放AVI视频,并通过移动slider 控制视频播放

CvCapture *pCaption=NULL;
int g_value=0;
int framepos=0;
void onTrankbar(int pos)
{
	printf("%d\r\n",pos);
	cvSetCaptureProperty(pCaption,CV_CAP_PROP_POS_FRAMES,pos);
	framepos=pos;

}
void main()
{
	
	
	cvNamedWindow("avi",CV_WINDOW_AUTOSIZE);
	//读取一个avi视频
	pCaption=cvCreateFileCapture("1.avi");
	//打开摄像头
	//CvCapture *pCaption=cvCreateCameraCapture(0);

	int framecount=cvGetCaptureProperty(pCaption,CV_CAP_PROP_FRAME_COUNT);

	if (framecount>0)
	{
		//创建一个滚动条
		cvCreateTrackbar("position","avi",&g_value,framecount,onTrankbar);

	}

 
	IplImage * pIpFrame;
	while(1)
	{

		pIpFrame=cvQueryFrame(pCaption);
		framepos++;//已经播放的帧总数
		cvSetTrackbarPos("position","avi",framepos);//设置滚动条的位置
		cvShowImage("avi",pIpFrame);
	
		char c=cvWaitKey(1);
		if (c==27)
		{
			break;
		}
	}
	cvReleaseCapture(&pCaption);
	cvDestroyWindow("avi");

}


cvcreateFileCaption()通过参数设置要读入的AVI文件,返回一个指向caption的指针。

cvQueryFrame()参数为cvCaption的指针,用来将下一帧视频文件载入内存,返回一个对应当前帧的指针。

cvcreateTrackBar()创建一个滚动条。

 如果是打开摄像头那么,那么刚开始,需要加入延时,给摄像头一定的打开时间。不能立即判空。

 onTrankbar() 为滚动条的响应函数,
cvGetCaptureProperty()获取视频属性
<pre name="code" class="plain">cvSetCaptureProperty() 设置视频属性

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值