gpt4 book ai didi

python - 在python中减去16位tiff图像

转载 作者:行者123 更新时间:2023-12-05 04:26:21 26 4
gpt4 key购买 nike

我有两个 16 位 tiff 图像,其中一个是背景,我必须将其从所有图像中删除。我使用以下代码,但是我收到错误消息

return image1._new(image1.im.chop_difference(image2.im))
ValueError: image has wrong mode

from PIL import Image, ImageChops
im1 = Image.open("main.tif")
im2 = Image.open("background.tif")

diff = ImageChops.difference(im2, im1)
diff.show()

当我使用 print(im1.mode) 检查模式时,我得到了

I,16

我不明白这个错误。另外,我不知道 Pillow 是否能够减去 16 位 tiff 图像。我需要帮助来解决此错误并获得减影图像。

这两张图是主要:main image

背景图片:background

最佳答案

我想我会这样做:

#!/usr/bin/env python3

from PIL import Image
import numpy as np

# Open both images and make into Numpy arrays of signed 32-bit integers
main = np.array(Image.open('main.tif')).astype('int32')
back = np.array(Image.open('background.tif')).astype('int32')

# Calculate difference with saturation
diff = np.clip(main - back, 0, main.max())

# Revert to PIL Image and save
Image.fromarray(diff.astype(np.uint16)).save('result.tif')

如果你拉伸(stretch)对比度,你会得到:

enter image description here

关于python - 在python中减去16位tiff图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73080572/

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