OpenCV 播放视频(带滚动条)

//+++++++++++++++++++++++++++++++++++++++++++++++
//++++++++=====+++读入视频文件++++++++++++++++++++
//+++++++++++++++加入滚动条控制+++++++++++++++++++
//+++++++++++++++++转换为灰度图+++++++++++++++++++
//===============================================
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"

int g_slider_position = 0;
CvCapture* g_capture = NULL;

void onTrackbarSlide(int pos) {
	cvSetCaptureProperty(
		g_capture,
		CV_CAP_PROP_POS_FRAMES,
		pos
	);
}

/*void cvConvertImage(
	const CvArr* src,
	CvArr*  dst,
	int flags = 0
	);

IplImage* doCanny(
	IplImage* image,
	double lowThresh,
	double highThresh,
	double aperture,
)
{
		if(image->nChannels !=1)
			return(0); 

		IplImage* out = cvCreateImage(
			cvSize( cvGetSize( image )),
			IPL_DEPTH_8U,
			1
		);
		cvCanny( image, out, lowThresh, highThresh, aperture );
		return( out );	
};
*/

int main( int argc, char** argv) {
	cvNamedWindow( "avi", CV_WINDOW_AUTOSIZE );
	g_capture = cvCreateFileCapture( argv[1]);
	int frames = (int) cvGetCaptureProperty(
		g_capture,
		CV_CAP_PROP_FRAME_COUNT
		);
	if( frames!= 0 ) {
		cvCreateTrackbar(
			"position",
			"avi",
			&g_slider_position,
			frames,
			onTrackbarSlide
			);
	}
	IplImage* frame1;
	IplImage* frame2;
	while(1){
		frame1 = cvQueryFrame( g_capture );
		if( !frame1 ) break;
		frame2 = frame1;
		cvConvertImage(frame1, frame2, 0 );
		//cvConvertImage(frame1, frame2,CV_RGB2GRAY);
		//IplImage* out = cvCanny(frame1,10,100,3);
		//cvCanny( frame1, frame2, lowThresh, highThresh, aperture );
		cvShowImage("avi", frame2 );
		//cvShowImage("avi", out );
		char c = cvWaitKey(33);
		if ( c == 27) break;
	}
	cvReleaseCapture( &g_capture );
	cvDestroyWindow( "avi" );
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值