gpt4 book ai didi

python /opencv : Make pixels of images be the average of nearest 4 pixels

转载 作者:太空宇宙 更新时间:2023-11-03 22:25:23 28 4
gpt4 key购买 nike

我需要降低图片的实际分辨率,使 4 像素矩形中的每个像素都是这 4 个像素的平均值。

p1 p2 p6 p7         a1 a1 a2 a2 
p3 p4 p8 p9 ... -> a1 a1 a2 a2 where a1 = average(p1, p2, p3, p4), a2 = average(p6, p7, p8, p9) etc

是否可以使用 python/opencv 而不是操作单个像素来有效地做到这一点?双线性/最近邻重新缩放并返回到原始分辨率是否会产生请求的结果(不仅仅是视觉效果)?图片是单色的。

最佳答案

如果您对基于透明 numpy/索引的解决方案感兴趣,请尝试类似的方法:

我使用一些虚拟数据来测试解决方案:

img = np.array([range(0,4), range(4, 8), range(8, 12), range(12, 16)])

这为我们提供了以下“图像”:

[[ 0  1  2  3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]

然后我每隔一个元素创建四个子图像:

subimg1 = img[::2, ::2]
subimg2 = img[1::2, ::2]
subimg3 = img[::2, 1::2]
subimg4 = img[1::2, 1::2]

现在你可以使用 numpy 平均相应的样本:

average = np.average([subimg1, subimg2, subimg3, subimg4], 0)

并创建输出:

output = np.zeros(img.shape)
output[::2, ::2] = average
output[1::2, ::2] = average
output[::2, 1::2] = average
output[1::2, 1::2] = average

给定测试数据的输出是:

[[  2.5   2.5   4.5   4.5]
[ 2.5 2.5 4.5 4.5]
[ 10.5 10.5 12.5 12.5]
[ 10.5 10.5 12.5 12.5]]

关于 python /opencv : Make pixels of images be the average of nearest 4 pixels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41808459/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com