我试图通过脱下平面框架,它的工作减少我的大炮天文图像。但它使所有的值都很低(几乎是黑色的图片),这就是为什么我也想把它与平均值相乘的原因。但是这给了我一个错误。 (虽然没有乘法它工作。)错误减少天文图片平场PIL
有人知道为什么吗?
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")
在乘法之前和之后检查'imarray.shape',按照http://stackoverflow.com/questions/7700193/pil-cannot-handle-this-data-type – lnmx
>>> >>> imarray = np.array( IM) >>> imarray.shape (2848,4272,3) >>>平均= np.average(imarray) >>> imarray =(imarray/flatarray)*平均 >>> imarray.shape (2848,4272,3)' 形状没有随我改变 – Coolcrab
也许是数据类型/范围的问题?在fromarray之前检查'imarray.dtype',然后尝试'imarray = numpy.uint8(imarray)'。 – lnmx