2

嗨,我有一张适合我阅读的图片,pyfits.getdata图片的角落有严重的渐晕。我创建了第二个numpy数组,其尺寸与原始图像相同,坏像素的值为 1,可用像素的值为 0。为了检测我pysex在原始图像上使用的点源。该pysex例程将渐晕区域中的波动检测为点源。如何在标记坏像素的数组上进行插值。我已经尝试过scipy.interpolate.griddatascipy.interpolate.interp2d但所需的论点不清楚,最简单的解决方案是什么?

4

2 回答 2

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] ,我承认不是很直观

你想要更多,这是一个非常好的帖子: 网格数据的快速插值

但实际上我会使用 scipy.filter.uniform_filter 来处理坏像素。它为您提供了 neigbourgs 的平均值。它不如三次插值精确,但更稳健。更好的 scipy.filter.median_filter 以防您有 2 个坏像素彼此靠近。

于 2013-09-23T19:19:14.683 回答
0

我认为map_coordinates应该能够给你你想要的:

index_vignetted = scipy.ndimage.map_coordinates(vignette, point_sources)

这将为您返回一个向量,其中包含每个点源位置下像素的晕影值。

于 2018-02-07T22:25:37.333 回答