gpt4 book ai didi

python - OpenCV 无法从视频捕获设备读取

转载 作者:太空宇宙 更新时间:2023-11-03 22:47:47 30 4
gpt4 key购买 nike

长期倾听者,第一次提问者。这是情况:

我正在尝试使用 .read() 功能从多个 opencv(python)视频捕获设备读取帧。使用 opencv 2.4.11 时随机出现以下错误:

HIGHGUI 错误:V4L2:OpenCV 不支持传入图像的像素格式无法停止流。: 错误的文件描述符

此错误似乎发生在 .read() 调用中,甚至将调用包装在 try/except 中也无法捕获问题,因为 .read() 调用永远不会返回,即使作为异常也是如此。

尝试更新到最新版本的 ocv(3.2.0) 时,.read() 无法返回任何帧。

附加信息:机器:Linux Mint 18.1相机:https://www.amazon.com/ELP-megapixel-surveillance-machine-monitor/dp/B015FIKTZC python :2.7

更新:代码:

以下发生在 videoCamera 类中,该类包含最初由以下内容制作的视频对象:self.video = cv2.VideoCapture(self.cameraSerialAddress)

然后对此类进行 getFrame() 调用,此函数中的内容如下: 尝试: retVal,frame = self.video.read()

            if frame is None:
print("no frame available for camera: "+str(self.cameraSerialAddress) + " Reconnecting to camera")
self.video.release()
self.video = None
self.hasConnection = False
self.frame = None
return

elif frame is not None:
self.frame = frame

感谢您的帮助,凯尔

最佳答案

对于可能遇到类似情况的任何人,我们最终发现问题是电源问题。有问题的相机有一根 5m 的 USB 电缆,用于获得应用程序所需的额外长度。在这种长度的电缆上,偶尔会出现错误的像素格式,从而产生 HIGHGUI 错误。由于无法更改相机/计算机位置,解决方案是将类包装在另一个可以捕获这些错误的类中,终止流,然后重新连接到相机。无论如何都不是完美的解决方案,但它可以满足当前的目的。

关于python - OpenCV 无法从视频捕获设备读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44722840/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com