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

本文通过实例代码展示了如何使用OpenCV库在C和C++中播放视频文件。C语言实现主要涉及cvCaptureFromFile、cvQueryFrame和cvShowImage等函数,而C++实现则利用了VideoCapture、isOpened、get、read和imshow等方法。两种语言的实现都成功地读取并显示了视频帧,并提供了暂停播放的功能。
摘要由CSDN通过智能技术生成

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?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值