gpt4 book ai didi

python - 减少天文图片平场 PIL 误差

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

我正在尝试通过取下平板框架来减少我的大炮天文图像,这很有效。但它使所有值都非常低(所以几乎是黑色图片),这就是为什么我也想将其乘以平均值。然而这给了我一个错误。 (虽然没有乘法它也能工作。)

有人知道为什么吗?

Traceback (most recent call last): File "D:\astro\10-12\moon\fits\red.py", line 16, in img = Image.fromarray(imarray) File "C:\Python27\lib\site-packages\PIL\Image.py", line 1886, in fromarray raise TypeError("Cannot handle this data type") TypeError: Cannot handle this data type

这是我的代码

import Image
import numpy as np

im = Image.open('8bit/DPP_0001.TIF')
flat = Image.open('8bit/flat2.TIF')
#im.show()


imarray = np.array(im)
flatarray = np.array(flat)

avg = np.average(imarray)
imarray = (imarray/flatarray)*avg

img = Image.fromarray(imarray)

img.save("done/aap.png","png")

最佳答案

PIL 的 Image.fromarray() 支持有限范围的输入类型/ channel 组合(请参阅 PIL/Image.py,成员 _fromarray_typemap )。

从 TIF 文件加载的原始 imarray 有 3 个 8 位整数值(字节) channel 。

在您的例子中,图像的平均值产生了一个浮点值,当它与图像数据相乘时,它产生了所有像素的浮点值。

要使 fromarray 正常工作,您需要使用 np.uint8( ... ) 将像素值强制转换回字节值。

关于python - 减少天文图片平场 PIL 误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20553228/

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