在具有nan值的numpy数组上应用高斯滤波,然后绘制图像

时间:2016-10-09 04:36:36

标签: python matplotlib

我有一个numpy二维数组(图像),其值>> 0.0但是有一些索引值为'nan'。当我尝试绘制这个图时,它看起来像下面的图像。图像阵列中的0变为黑色,而nan变为白色。

enter image description here

现在我想在这个数组上应用高斯平滑,这样当我尝试绘制平滑数组时平滑后,前一个数组的nan值只显示为白色。

1 个答案:

答案 0 :(得分:0)

当对图像进行高斯滤波时,靠近nan像素的任何像素也将变为nan,因为其新值是卷积所覆盖的所有相邻像素的加权和内核。

因此,使用例如scipy.ndimage.filters.gaussian_filter()平滑此特定图像会将很多零值转换为nan s,您将丢失大量信息。

为了平滑这个(显然是二进制的)数据,我会用其他值替换nan s,当然保持与非nan像素的对比度。例如,将零变为1,将nan变为零,然后应用过滤器。