使用python的帧差
我正在尝试做帧差这是我下面的代码使用python的帧差,python,opencv,numpy,Python,Opencv,Numpy,我正在尝试做帧差这是我下面的代码 import numpy as np import cv2 current_frame =cv2.VideoCapture(0) previous_frame=current_frame while(current_frame.isOpened()): current_frame_gray = cv2.cvtColor(current_frame, cv2.COLOR_BGR2GRAY) previous_frame_gray= cv2.cvtCo
import numpy as np
import cv2
current_frame =cv2.VideoCapture(0)
previous_frame=current_frame
while(current_frame.isOpened()):
current_frame_gray = cv2.cvtColor(current_frame, cv2.COLOR_BGR2GRAY)
previous_frame_gray= cv2.cvtColor(previous_frame, cv2.COLOR_BGR2GRAY)
frame_diff=cv2.absdiff(current_frame_gray,previous_frame_gray)
cv2.imshow('frame diff ',frame_diff)
cv2.waitKey(1)
current_frame.copyto(previous_frame)
ret, current_frame = current_frame.read()
current_frame.release()
cv2.destroyAllWindows()
我的问题是,我试图创建空帧来保存当前_帧的第一帧
previous_frame=np.zeros(current_frame.shape,dtype=current_frame.dtype)
但我认为这是不正确的,然后我试着像这样传递当前的_帧:
previous_frame=current_frame
现在我得到了这个错误:
当前帧灰度=cv2.CVT颜色(当前帧,cv2.COLOR\BGR2GRAY)
TypeError:src不是numpy数组,也不是标量
那我该怎么办呢
感谢您的帮助您已将视频捕获对象和帧混合在一起 我还对帧副本和等待键做了一些小更改
导入cv2
cap=cv2.视频捕获(0)
ret,当前帧=cap.read()
前一帧=当前帧
while(cap.isOpened()):
当前帧灰度=cv2.CVT颜色(当前帧,cv2.COLOR\BGR2GRAY)
上一帧颜色=cv2.CVT颜色(上一帧,cv2.COLOR\U BGR2GRAY)
frame\u diff=cv2.absdiff(当前帧灰,上一帧灰)
cv2.imshow(“帧差异”,帧差异)
如果cv2.waitKey(1)&0xFF==ord('q'):
打破
上一帧=当前帧。复制()
ret,当前帧=cap.read()
第1章释放()
cv2.destroyAllWindows()