如果numpy数组没有维度或维度小于n,则条件为true

2024-05-19 16:35:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须计算前30帧的平均值,这些平均值来自一个while(真)循环。 当第四维小于30或不存在第四维时,如何将第二个条件转化为真? 还有其他优化代码的方法吗? 框架.形状= (480,640,3). 值介于0到255之间。你知道吗

    if isFirst == True:
        first_frames = frame
        isFirst == False

    if first_frames.shape[3] < 30:
        np.append(first_frames, frame, axis=3)
        avg_frames = np.mean(first_frames, axis=3)

    new_frame = frame - avg_frames

Tags: 方法代码框架framesifnp条件frame
1条回答
网友
1楼 · 发布于 2024-05-19 16:35:47

我建议初始化一个数组来存储所有帧的运行总和,直到前30帧,我们可以有一个循环迭代范围。在每个循环结束时,我们将通过循环迭代器除以运行总和来计算平均帧。这就是全部!其思想是通过使用3D数组存储求和来优化内存,而不是附加到昂贵的4D数组上。你知道吗

因此,实施将是——

# Initialize array for storing running summation
first_frames = np.zeros((480,640,3),dtype=np.uint64)

for i in range(30):       # Runs until first 30 frames
    first_frames += frame # Add each frame
    new_frame = frame - first_frames/float(i)

相关问题 更多 >