首页 > 解决方案 > 创建图像列表的平均值

问题描述

简单的问题,我似乎无法弄清楚自己。

我有一个名为 的图像列表,img_list其中包含相同维度和数据类型的图像。cv2.imread(path)opencv库中加载单个图像。

目标是创建与可以创建相同的平均图像cv2.addWeighted(),仅用于任意数量(5-10000)的图像。

我自己的尝试是下面的代码,但我认为它不会对所有图像赋予相同的权重(前两个图像主导最终输出)。

first_image = ""
average = ""
counter = 0
amount = 500
for image_og in img_list

    if counter > amount:break
    else:counter += 1
    f1 = 1/counter
    f2 = 1 - 1/counter

    image = copy.copy(image_og)

    if counter == 0:
        first_image = image

    if counter == 1:
        average = cv2.addWeighted(first_image, 0.5, img, 0.5, 0) 

    if counter > 1:
        average = cv2.addWeighted(average, f2 , img, f1, 0) 

我也尝试过类似 average = np.uint8(np.mean(img_list)),average = np.uint8(sum(img_list)/amount)的方法,但效果不佳。

标签: pythonpython-3.ximage-processing

解决方案


推荐阅读