opencv - uvcvideo : Marking buffer as bad (error bit set)

标签 opencv ubuntu beagleboard

我在 beaglebone black 上的 ubuntu 上使用 opencv。我有一个 USB 摄像头通过 USB 集线器连接到小猎犬骨头上。当我尝试运行我的程序时,我会收到连续的“选择超时”错误。我已启用模块跟踪:this suggestion它给了我

uvcvideo:Dropping payload (out of sync)
uvcvideo:Marking buffer as bad (error bit set)

一遍又一遍地。我认为“丢弃有效载荷”没什么大不了的,因为当我在笔记本电脑上运行它时,它给了我同样的错误,而且效果很好。但是缓冲区错误是 beaglebone 独有的,我不知道该怎么办。任何想法都会很棒。

最佳答案

我有同样的问题,在 dmesg 中也有同样的错误日志。我认为需要将捕获大小(即 CV_CAP_PROP_FRAME_WIDTH 和 CV_CAP_PROP_FRAME_WIDTH)设置为适合您相机的值。

经过一些实验,这对我使用了罗技高清网络摄像头 C525 的 BeagleBone Black:

#! /usr/bin/env python

import cv2
import sys


vc = cv2.VideoCapture(0)
vc.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH,1280)
vc.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT,720)
if not vc.isOpened():
    sys.stderr.write('could not connect to camera! \n')
    sys.exit(1)

for count in range(0,5):
    success,frame = vc.read()
    if not success:
        sys.stderr.write('could not read image from cam \n')
        sys.exit(1)
    cv2.imwrite('capture_%02d.png' % count,frame)



vc.release()
vc = None

我不确定是否需要,但我还预先配置了相机:
root@beaglebone:~#  v4l2-ctl --set-fmt-video=width=1280,height=720,pixelformat=1

关于opencv - uvcvideo : Marking buffer as bad (error bit set),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17155738/

相关文章:

java - 如何在 Java OpenCV 中的窗口中显示 Mat?

创建随机大小 [1...500] KB 的文件

linux - 在 Angstrom Linux 上自动登录

c++ - 设置树莓派的开发环境

linux - 无法使用 Udoo neo 登录 u-boot 模式

ios - 收到适用于 IOS 的 Opencv 库的错误

python - 在 Python 中使用 Pyramids 进行快速模板匹配

python - cython中ndarray的opencv翻转顺序-OpenCV错误

docker - 如何在 Ubuntu 中使用类似于 `docker.for.mac.localhost` 的东西?

linux - 通讯命令不比较单词