最近在學Opencv,但是圖像算法實在是把我爆出翔來了,以前數學不差,但是也忘得差不多了,惡補中,閒暇之餘突然發現OpenCV的視頻播放功能,支持格式很多啊,不防做一個學習版的純視頻播放軟件,還可以順便練手opencv,哈哈那麼下面直接上效果圖。源碼下載: http://download.csdn.net/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;
};