python - 创建图像列表的平均值
问题描述
简单的问题,我似乎无法弄清楚自己。
我有一个名为 的图像列表,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)
的方法,但效果不佳。
解决方案
推荐阅读
- c++ - C++:不同类型的容器
- eclipse - 无法将 Spark 与 Eclipse 中的 Hortonworks Sandbox 连接
- image - 颤振不会在网络中显示图像
- android - 我无法从可绘制文件夹中插入图标
- python - 获取导致测试发现在 VSCode 中失败的 TypeError 的 Linenumber
- html - 图像在 chrome 和 firefox 上显示不同,使用 flexbox 调整大小
- swift - macOS Bundles 之间的双向数据交换 (swift)
- mapbox - 如何显示希伯来地图框?
- python - 如何使用 Python 将本地化时间戳转换为 UTC?
- python - 屈服于... in