C++ OpenCV使用VideoCapture类无法读取本地视频

问题描述

使用OpenCV中的VideoCapture类读取本地avi视频时,使用如下代码行

	VideoCapture cap("H:\\YChen\\learn\\Release\\data\\baby.avi");
	if (!cap.isOpened())
	{
		return -1;
	}

调试发现,isOpen()函数始终返回false,无法正常读取。VideoCapture cap(“H:\YChen\learn\Release\data\baby.avi”)语句替换成VideoCapture cap(CAP_DSHOW)语句可正常读取摄像头中的数据。将对应的opencv_ffmpeg342_64.dll文件拷入对应的生成exe目录下,对应语句仍返回false。程序编译为64位版本,使用的OpenCV库版本为3.4.2。

解决方法

将对应的读取视频代码更换为下列代码

	string video_path = R"(H:\YChen\learn\Release\data\baby.avi)";
    VideoCapture cap(video_path);

    if (!cap.isOpened())
    {
        cout << "open file failed" << endl; 
        return;
    }

问题解决。可以正常读取视频,isOpen()函数返回true值。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值