OpenCV 2.4.10+VS2008 SP1 实现一个视频播放器(可倍速播放)

本文介绍了一个基于OpenCV的视频播放软件实现过程,重点涵盖了使用VC2008编译OpenCV库的方法,以及如何利用VideoCapture类实现视频文件的读取、播放控制等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学Opencv,但是图像算法实在是把我爆出翔来了,以前数学不差,但是也忘得差不多了,恶补中,闲暇之余突然发现OpenCV的视频播放功能,支持格式很多啊,不防做一个学习版的纯视频播放软件,还可以顺便练手opencv,哈哈那么下面直接上效果图。源码下载: http://download.youkuaiyun.com/detail/lightspear/9761702


说下这个工程的注意点吧。

1:opencv 2.4.10默认已编译的版本是vc10,vc11,vc12,没有vc9也就是VS2008的版本,所以首先得编译源码。当然为了避免大家麻烦我已经编译好了这个windows版本的适用VS2008版本的opencv库,放在源码工程旁边。

2:这里面用到了一些mfc的插件也就是进度条那个,有兴趣可以看看。

3:主要实现了倍速播放,进度条拖动啊之类

4:如果编译不过,最好自行检查一下库还有lib的引用入境

贴一下关键点代码吧,利用opencv的VideoCapture类的 

5:opencv里面其实用到了ffmpeg所以这个opencv_ffmepg.dll一定要考过去

read //读取视频流一次帧

open //打开播放文件

set //设置播放进度

class CV_EXPORTS_W VideoCapture
{
public:
    CV_WRAP VideoCapture();
    CV_WRAP VideoCapture(const string& filename);
    CV_WRAP VideoCapture(int device);

    virtual ~VideoCapture();
    CV_WRAP virtual bool open(const string& filename);
    CV_WRAP virtual bool open(int device);
    CV_WRAP virtual bool isOpened() const;
    CV_WRAP virtual void release();

    CV_WRAP virtual bool grab();
    CV_WRAP virtual bool retrieve(CV_OUT Mat& image, int channel=0);
    virtual VideoCapture& operator >> (CV_OUT Mat& image);
    CV_WRAP virtual bool read(CV_OUT Mat& image);

    CV_WRAP virtual bool set(int propId, double value);
    CV_WRAP virtual double get(int propId);

protected:
    Ptr<CvCapture> cap;
};





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值