gpt4 book ai didi

image - 比较两个图像并在第二个图像上突出显示差异

转载 作者:行者123 更新时间:2023-12-02 22:04:54 25 4
gpt4 key购买 nike

下面是 python 中当前的工作代码,使用 PIL 来突出显示两个图像之间的差异。但其余图像变黑。

目前我想显示背景以及突出显示的图像。

无论如何,我可以让节目的背景变浅并突出显示差异。

from PIL import Image, ImageChops
point_table = ([0] + ([255] * 255))

def black_or_b(a, b):
diff = ImageChops.difference(a, b)
diff = diff.convert('L')
# diff = diff.point(point_table)
h,w=diff.size
new = diff.convert('RGB')
new.paste(b, mask=diff)
return new

a = Image.open('i1.png')
b = Image.open('i2.png')
c = black_or_b(a, b)
c.save('diff.png')

! https://drive.google.com/file/d/0BylgVQ7RN4ZhTUtUU1hmc1FUVlE/view?usp=sharing

最佳答案

PIL确实有一些方便的图像处理方法,但也有很多缺点开始进行认真的图像处理 -

大多数 Python 文献都会建议您切换对像素数据使用 NumPy,这将给出你完全控制-其他成像库,例如 leptonica、gegl 和 vips全部都有 Python 绑定(bind)和一系列不错的函数用于图像合成/分割。

在这种情况下,问题是想象一个人会如何在图像处理程序中获得所需的输出:你可以用黑色(或其他颜色)的阴影来覆盖原始图像,然后在其上粘贴第二张图像,但使用阈值(即像素等于或不同 - 所有中间值都应四舍五入将差异的“不同”作为第二个图像的掩码。

我修改了你的函数来创建这样的组合 -

from PIL import Image, ImageChops, ImageDraw
point_table = ([0] + ([255] * 255))

def new_gray(size, color):
img = Image.new('L',size)
dr = ImageDraw.Draw(img)
dr.rectangle((0,0) + size, color)
return img

def black_or_b(a, b, opacity=0.85):
diff = ImageChops.difference(a, b)
diff = diff.convert('L')
# Hack: there is no threshold in PILL,
# so we add the difference with itself to do
# a poor man's thresholding of the mask:
#(the values for equal pixels- 0 - don't add up)
thresholded_diff = diff
for repeat in range(3):
thresholded_diff = ImageChops.add(thresholded_diff, thresholded_diff)
h,w = size = diff.size
mask = new_gray(size, int(255 * (opacity)))
shade = new_gray(size, 0)
new = a.copy()
new.paste(shade, mask=mask)
# To have the original image show partially
# on the final result, simply put "diff" instead of thresholded_diff bellow
new.paste(b, mask=thresholded_diff)
return new


a = Image.open('a.png')
b = Image.open('b.png')
c = black_or_b(a, b)
c.save('c.png')

关于image - 比较两个图像并在第二个图像上突出显示差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30277447/

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