使用图像作为另一个图像的掩码

时间:2017-08-02 22:14:12

标签: python arrays numpy filter mask

我已经问过这个问题了,但是我已经给了它一个问题。这是我的 代码,带有文档字符串,以显示我想要做的事情。

"""
w1_w2_filter_mask2.py
Use xbulge-mask.fits image file as a mask for W1 and W2 bands
and compute the median in patches where the image is not masked
"""
import matplotlib.pyplot as plt
import numpy as np
from astropy.io import fits
from scipy.ndimage.filters import generic_filter as gf

#   Open data files
hdulist = fits.open('xbulge-w1.fits')
w1data = hdulist[0].data
hdulist2 = fits.open('xbulge-w2.fits')
w2data = hdulist2[0].data

hdulistmask = fits.open('xbulge-mask.fits')
maskdata = hdulistmask[0].data

#   Define physical shape of filter patch
def patch_filter(image_data, radius):
    kernel = np.zeros((2*radius+1, 2*radius+1))
    y, x = np.ogrid[-radius:radius+1, -radius:radius+1]
    patch = x**2 + y**2 <= radius**2
    kernel[patch] = 1                
    filtered_image = gf(image_data, np.median, footprint = kernel)
    return filtered_image

#   Apply mask to image files
mx1 = np.ma.masked_array(w1data, mask=maskdata)
mx2 = np.ma.masked_array(w2data, mask=maskdata)

#   Pass median filtering patch across masked image
radius = 25
w1masked_filtered = patch_filter(mx1, radius)
w2masked_filtered = patch_filter(mx2, radius)

当我打印或显示蒙版过滤后的阵列时,它与我不应用蒙版图像时具有相同的效果,即(加载蒙版 - &gt;加载图像 - &gt;应用蒙版 - &gt;过滤器在补丁中)与(加载图像 - &gt;补丁中的过滤器)具有相同的效果。

任何人都能看到我失踪的东西吗?

0 个答案:

没有答案