我有一个小问题。我知道有一些类似的问题,但我不知道我做错了,因为它们不适合我,我将不胜感激。我想更改 fit 文件中的一些像素值。它们基本上是空白点,我想用图像的平均像素值填充它们。我喜欢这样:
from __future__ import division
import pyfits as fits
import numpy as np
obj1 = fits.open(raw_input('Name of the image to be improved? '))
data_obj1 = obj1[0].data
meanpix = np.mean(data_obj1)
noise = np.linspace(-meanpix,meanpix,100000)
shape = data_obj1.shape
result = np.zeros(shape)
for x in range(0,shape[0]):
for y in range(0,shape[1]):
if data_obj1[x,y] > -5.48e-14 and data_obj1[x,y] < -5.46e-14:
random_noise = np.random.choice(noise,1)
result[x,y] = random_noise
else:
result[x,y] = data_obj1[x,y]
out = obj1
out[0].data = result
out.writeto(raw_input('Name of the output file? '), clobber=True)
我知道它正在执行我想做的操作,因为如果我打印 result[x,y] 它就是它应该的样子。然而,当我打开生成的 fit 文件时,它与开始时完全相同。所以可能我不明白 i) 如何正确保存 fit 文件或 ii) 如何正确构建我的新图像。有人能帮我吗?