嗨我有一张合适的图像,我用pyfits.getdata
读到了图像的角落里有很强的渐晕。我创建了第二个numpy
数组,其尺寸与原始图像相同,坏像素值为1,可用值为0.要检测点源,我在原始图像上使用pysex
。 pysex
例程检测渐晕区域中的波动作为点源。如何在标记坏像素的数组上进行插值。我试过scipy.interpolate.griddata
和scipy.interpolate.interp2d
并且所需的参数不清楚,最简单的解决方案是什么?
答案 0 :(得分:0)
在(x0,y0)= 5,10处有坏像素 (x1,y1)= 50,100
的另一个output = Scipy.interpolate.map_coordinat(array,np.array([[5,50],[10,100]]))
1bad_value = output[0]
2bad_value = output[1]
它像[x0,x1,x2,x3],[y0,y1,y2,y3],不是很直观我承认
你想要更多,这是一个非常好的帖子: Fast interpolation of grid data
但实际上我会将scipy.filter.uniform_filter用于坏像素。它为您提供neigbourgs的平均值。它不是一个精确的立方插值,但它更稳健。更好的scipy.filter.median_filter,以防你有2个坏像素彼此靠近。
答案 1 :(得分:0)
我认为map_coordinates
应该能够满足您的需求:
index_vignetted = scipy.ndimage.map_coordinates(vignette, point_sources)
这将返回一个向量,其中包含每个点源位置下像素的晕影值。