Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将图像用作另一图像的遮罩_Python_Arrays_Numpy_Filter_Mask - Fatal编程技术网

Python 将图像用作另一图像的遮罩

Python 将图像用作另一图像的遮罩,python,arrays,numpy,filter,mask,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 nu

我已经问过这个问题了,但从那以后我就试过了。这是我的 代码,带有一个文档字符串以显示我正在尝试执行的操作

"""
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)
“”“
w1_w2_过滤器_mask2.py
使用xbulge-mask.fits图像文件作为W1和W2波段的遮罩
并计算图像未被遮罩的面片的中值
"""
将matplotlib.pyplot作为plt导入
将numpy作为np导入
从astropy.io导入拟合
从scipy.ndimage.filters导入通用过滤器作为gf
#打开数据文件
hdulist=fits.open('xbulge-w1.fits')
w1data=hdulist[0]。数据
hdulist2=fits.open('xbulge-w2.fits')
w2data=hdulist2[0]。数据
hdulistmask=fits.open('xbulge-mask.fits'))
maskdata=hdulistmask[0]。数据
#定义过滤器补丁的物理形状
def补丁过滤器(图像数据、半径):
核=np.0((2*半径+1,2*半径+1))
y、 x=np.ogrid[-半径:半径+1,-半径:半径+1]
补丁=x**2+y**2