ERROR: SampleCB() - buffer sizes do not match 解决方法

OpenCV ERROR: SampleCB() - buffer sizes do not match 解决方法

  • 原因:由于经过采集卡压缩等原因,实际读到的图像流尺寸与原始尺寸不匹配
  • 解决方法:手动设置为采集卡压缩后的实际尺寸
    VideoCapture cap(摄像机序号);
    cap.set(CV_CAP_PROP_FRAME_WIDTH, 压缩后的实际宽);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT, 压缩后的实际高);
    Mat camFeed;
    cap.read(camFeed);

具体事例

我的电脑直接插入 1 Channel USB Capture 时,即单个接入USB摄像头设备,按OpenCV 默认读取正常,但由于我需要同时接入4个摄像头同时获取图像,我换成了4 Channel USB DVR,一般都附带一个监控软件,需要运行这个四合一监控软件,通过软件的流媒体输出方式供电脑其他程序使用这4个通道的视频信号,然后就出现了这个bug。

我参考了下方链接中的回答,在读取视频流之前,将VideoCapture 对象cap的像素宽高设置为USB DVR监控软件的输出宽高之后,便可以顺利读取。
参考:http://opencv.yahoogroups.narkive.com/Yc8H2P6w/error-samplecb-buffer-sizes-do-not-match


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值