opencv c语言 视频采集,使用OpenCV播放视频文件(C/C++ API比较)

OpenCV库很强大,不仅能够显示图片,还能解码显示各种格式的视频文件,而且提供的API接口也很多,包括C、C++、Python。下面比较一下分别使用C和C++播放一段视频文件的实现:

C语言实现

$ cat test_video.c

#include

#include

#include

int main(int argc, char **argv)

{

CvCapture *cap;

IplImage *frame;

cap = cvCaptureFromFile("./kakou.mp4");

printf("cap = %p\n", cap);

while ((frame = cvQueryFrame(cap))) {

//printf("frame = %p\n", frame);

cvShowImage("MyTest", frame);

cvWaitKey(33);

}

return 0;

}

$ gcc -o test_video test_video.c -lopencv_core -lopencv_imgproc -lopencv_highgui

C++语言实现

$ cat test_video.cpp

#include

#include

using namespace std;

using namespace cv;

int main(void){

//打开视频文件

VideoCapture capture("./kakou.mp4");

//isOpen判断视频是否打开成功

if(!capture.isOpened())

{

cout<

return -1;

}

//获取视频帧频

double rate=capture.get(CV_CAP_PROP_FPS);

cout<

cout<

Mat frame;

namedWindow("Movie Player");

double position=0.0;

//设置播放到哪一帧,这里设置为第0帧

capture.set(CV_CAP_PROP_POS_FRAMES,position);

while(1)

{

//读取视频帧

if(!capture.read(frame))

break;

imshow("Movie Player",frame);

//获取按键值

char c=waitKey(33);

if(c==27)

break;

}

capture.release();

destroyWindow("Movie Player");

return 0;

}

$g++ -o test_video test_video.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui

来一个效果图:

76df1592384b

image.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值