Python 使用opencv中的平均值合成帧

Python 使用opencv中的平均值合成帧,python,numpy,opencv,Python,Numpy,Opencv,我试图用两幅图像的平均值来创建一幅合成图像,通过循环一段视频中的一组帧来获得合成+下一帧的平均值 但结果看起来很糟糕。我做错了什么?我想我一定是误解了数组在numpy或opencv中的添加/划分方式。因为它的亮度只有它应有的亮度的一半,好像加法从未发生过。再加上树木粗糙的边缘 问题是我使用的是一个类型为np.uint8的数组,在进行加法时会溢出。我所需要做的就是将其更改为np.uint32,这样它就可以在再次除法之前保留该数字 我还需要确保在我没有添加0+frame的第一个帧上,第一个帧应该使

我试图用两幅图像的平均值来创建一幅合成图像,通过循环一段视频中的一组帧来获得合成+下一帧的平均值

但结果看起来很糟糕。我做错了什么?我想我一定是误解了数组在numpy或opencv中的添加/划分方式。因为它的亮度只有它应有的亮度的一半,好像加法从未发生过。再加上树木粗糙的边缘


问题是我使用的是一个类型为
np.uint8
的数组,在进行加法时会溢出。我所需要做的就是将其更改为
np.uint32
,这样它就可以在再次除法之前保留该数字

我还需要确保在我没有添加0+frame的第一个帧上,第一个帧应该使composite=frame

    if i == 0:
        composite = resized_frame
    else:
        composite = composite.astype(np.uint32)
        composite = (resized_frame + composite) / 2
        composite = composite.astype(np.uint8)

    if i == 0:
        composite = resized_frame
    else:
        composite = composite.astype(np.uint32)
        composite = (resized_frame + composite) / 2
        composite = composite.astype(np.uint8)