【发布时间】:2021-01-07 03:36:51
【问题描述】:
我想通过我的网络摄像头捕获所有帧,直到重复任何帧我已经尝试过这种方法,但这给了我错误
if frame not in frame_list: ValueError: 具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
frame_list = [] #creating the list of frame
while(True):
ret, frame = cap.read()
if ret == True:
if frame not in frame_list:
frame_list.append(frame) #This list contain all the frames
else : break
【问题讨论】:
-
“所有帧”是什么意思?你是什么意思比较帧?这应该是精确的像素相等,还是近似相等?
-
近似可以工作。所有帧表示所有捕获的帧。我将通过网络摄像头逐步更改框架。
-
“所有捕获的帧”是什么意思?你需要更详细地解释你在做什么。您是在捕获特定数量的帧,然后将它们读入列表(这是“所有捕获的帧”对我表示的意思),还是您正在捕获帧,直到您获得与前一帧相同的帧(您的代码似乎表明了什么)?
-
代码通过旋转的监控摄像头捕获所有帧,直到它获得摄像机在移动时覆盖的所有帧。
-
相机是否以固定速度旋转?如果是这样,您只需要从视频源中计算出 360 度有多少帧。比较框架以查看您是否一路走来可能是错误的方法。你不会得到两个相同的帧,它们很可能会被移动。此外,照明可以改变,物体可以在您录制的空间中移动。
标签: python list computer-vision numpy-ndarray valueerror