我定义了一种执行以下操作的方法:
buffer_size
(我希望堆叠的帧数。)buffer_size
堆叠相同的帧。问题在于,即使我已经输入了stacked_frames和新帧,因此它始终认为stacked_frame
为空,因此进入了第一个条件(如果stacked_frames为None :)。
我已经尝试过下面的代码,任何人都可以在其中提出任何修改建议。
def stack_frames(堆栈帧,帧,缓冲区大小):
if stacked_frames is None:
stacked_frames = np.zeros((buffer_size, *frame.shape))
for idx, _ in enumerate(stacked_frames):
stacked_frames[idx, :] = frame
else:
stacked_frames[0:buffer_size-1, :] = stacked_frames[1:, :]
stacked_frames[buffer_size-1, :] = frame
stacked_frames = stacked_frames.reshape(1, *frame.shape[0:2],
buffer_size)
return stacked_frames
正如我说过的,我希望它接受上一个堆叠的框架,如果已经存在堆叠的框架,则添加新框架,而当它没有任何先前的堆叠框架时,它应该进入第一个循环。