微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ARM AARCH64 内核 4 和 5:设置模式后,cv2 cap.read() 仅在 su

如何解决ARM AARCH64 内核 4 和 5:设置模式后,cv2 cap.read() 仅在 su

我正在使用运行 Debian (buster) 和内核 4 和 5 的 ARM AARCH64 CoB(机载计算机)。发生以下问题:


    cap = cv2.VideoCapture(0)
    cap.set(3,1920)
    cap.set(4,1080)
    
    while cap.isOpened():
        ret,frame = cap.read()
        ...

如果代码在普通用户下执行,会打开捕获设备,正确设置视频模式,但是cap.read()会导致读取超时(无法从摄像头读取) .

如果代码在 sudo 下执行(以 root 身份运行),那么 cap.read() 可以正常工作,并且我会以正确的模式(在本例中为全高清)获得帧。

如果我不设置模式 (cap.set(3,1920),cap.set(4,1080)),那么它会读取在普通用户权限下运行的程序的帧,但以尽可能低的相机分辨率(sd 或 640x480)。

顺便说一下,cap.set(3,1920) 对应于 cap.set(cv2.CAP_PROP_FRAME_WIDTH,1920),而 cap.set(4,1080) 对应于 cap.set(cv2.CAP_PROP_FRAME_HEIGHT,1080)

显然视频的 /etc/group entry 包括用户

video:x:44:user_name

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。