本文整理汇总了Python中scipy.ndimage.filters.uniform_filter方法的典型用法代码示例。如果您正苦于以下问题:Python filters.uniform_filter方法的具体用法?Python filters.uniform_filter怎么用?Python filters.uniform_filter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类scipy.ndimage.filters
的用法示例。
在下文中一共展示了filters.uniform_filter方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: filter_local_maxima_with_std
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def filter_local_maxima_with_std(self, ft2d):
data = np.abs(np.fft.fftshift(ft2d))
data /= (np.max(data) + 1e-7)
data_max = maximum_filter(data, self.neighborhood_size)
data_mean = uniform_filter(data, self.neighborhood_size)
data_mean_sq = uniform_filter(data ** 2, self.neighborhood_size)
data_std = np.sqrt(data_mean_sq - data_mean ** 2) + 1e-7
maxima = ((data_max - data_mean) / data_std)
fraction_of_local_max = (data == data_max)
maxima *= fraction_of_local_max
maxima = maxima.astype(float)
maxima /= (np.max(maxima) + 1e-7)
maxima = np.maximum(maxima, np.fliplr(maxima), np.flipud(maxima))
maxima = np.fft.ifftshift(maxima)
background_ft2d = np.multiply(maxima, ft2d)
foreground_ft2d = np.multiply(1 - maxima, ft2d)
return background_ft2d, foreground_ft2d
示例2: test_ktables_unbinned
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def test_ktables_unbinned(self):
profile = Profile()
profile.set_from_radiative_solution(
5052, 0.75 * R_sun, 0.03142 * AU, 1.129 * M_jup, 1.115 * R_jup,
0.983, -1.77, -0.44, -0.56, 0.23)
xsec_calc = EclipseDepthCalculator(method="xsec")
ktab_calc = EclipseDepthCalculator(method="ktables")
xsec_wavelengths, xsec_depths = xsec_calc.compute_depths(
profile, 0.75 * R_sun, 1.129 * M_jup, 1.115 * R_jup,
5052)
N = 10
smoothed_xsec_wavelengths = uniform_filter(xsec_wavelengths, N)[::N]
smoothed_xsec_depths = uniform_filter(xsec_depths, N)[::N]
ktab_wavelengths, ktab_depths = ktab_calc.compute_depths(
profile, 0.75 * R_sun, 1.129 * M_jup, 1.115 * R_jup,
5052)
rel_diffs = np.abs(ktab_depths - smoothed_xsec_depths[:-1])/ ktab_depths
self.assertTrue(np.median(rel_diffs) < 0.05)
示例3: test_k_coeffs_unbinned
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def test_k_coeffs_unbinned(self):
xsec_calc = TransitDepthCalculator(method="xsec")
ktab_calc = TransitDepthCalculator(method="ktables")
xsec_wavelengths, xsec_depths = xsec_calc.compute_depths(R_sun, M_jup, R_jup, 1000)
#Smooth from R=1000 to R=100 to match ktables
N = 10
smoothed_xsec_wavelengths = uniform_filter(xsec_wavelengths, N)[::N]
smoothed_xsec_depths = uniform_filter(xsec_depths, N)[::N]
ktab_wavelengths, ktab_depths = ktab_calc.compute_depths(R_sun, M_jup, R_jup, 1000)
diffs = np.abs(ktab_depths - smoothed_xsec_depths[:-1])
self.assertTrue(np.median(diffs) < 20e-6)
self.assertTrue(np.percentile(diffs, 95) < 50e-6)
self.assertTrue(np.max(diffs) < 150e-6)
示例4: compute_gradmaps
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def compute_gradmaps(self, binary, scale):
# use gradient filtering to find baselines
boxmap = psegutils.compute_boxmap(binary, scale, (0.4, 5))
cleaned = boxmap*binary
if self.parameter['usegauss']:
# this uses Gaussians
grad = gaussian_filter(1.0*cleaned, (self.parameter['vscale']*0.3*scale,
self.parameter['hscale']*6*scale), order=(1, 0))
else:
# this uses non-Gaussian oriented filters
grad = gaussian_filter(1.0*cleaned, (max(4, self.parameter['vscale']*0.3*scale),
self.parameter['hscale']*scale), order=(1, 0))
grad = uniform_filter(grad, (self.parameter['vscale'], self.parameter['hscale']*6*scale))
bottom = ocrolib.norm_max((grad < 0)*(-grad))
top = ocrolib.norm_max((grad > 0)*grad)
testseeds = np.zeros(binary.shape, 'i')
return bottom, top, boxmap
示例5: filter
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def filter(self, array, *args, **kwargs):
array = np.exp(1j * array)
win = (7, 7)
coh = filters.uniform_filter(
np.abs(filters.uniform_filter(array.real, win) + 1j * filters.uniform_filter(array.imag, win)), win)
bp = Blocxy(array, (self.bs, self.bs), (self.bs // 2, self.bs // 2))
bc = Blocxy(coh, (self.bs, self.bs), (self.bs // 2, self.bs // 2))
for block, cblock in zip(bp.getiterblocks(), bc.getiterblocks()):
block = np.fft.fft2(block)
block *= abs(block) ** (1.0 - np.mean(cblock[self.bs // 4:self.bs // 4 * 3, self.bs // 4:self.bs // 4 * 3]))
block = np.fft.ifft2(block)
bp.setiterblocks(block)
output = bp.getresult()
output = np.angle(output)
return output
示例6: filter
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def filter(self, array, *args, **kwargs):
win = self.win
if array.ndim == 3:
win = [1] + self.win
if array.ndim == 4:
win = [1, 1] + self.win
array[np.isnan(array)] = 0.0
if np.iscomplexobj(array):
return sp.ndimage.filters.uniform_filter(array.real, win) + 1j * sp.ndimage.filters.uniform_filter(
array.imag, win)
elif self.phase is True:
tmp = np.exp(1j * array)
tmp = sp.ndimage.filters.uniform_filter(tmp.real, win) + 1j * sp.ndimage.filters.uniform_filter(tmp.imag,
win)
return np.angle(tmp)
else:
return sp.ndimage.filters.uniform_filter(array.real, win)
示例7: measure
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def measure(self, line):
h, w = line.shape
smoothed = filters.gaussian_filter(line, (h * 0.5, h * self.smoothness), mode='constant')
smoothed += 0.001 * filters.uniform_filter(smoothed, (h * 0.5, w), mode='constant')
a = np.argmax(smoothed, axis=0)
a = filters.gaussian_filter(a, h * self.extra)
center = np.array(a, 'i')
deltas = abs(np.arange(h)[:, np.newaxis] - center[np.newaxis, :])
mad = np.mean(deltas[line != 0])
r = int(1 + self.range * mad)
return center, r
示例8: wiener_adaptive
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def wiener_adaptive(x: np.ndarray, noise_var: float, **kwargs) -> np.ndarray:
"""
WaveNoise as from Binghamton toolbox.
Wiener adaptive flter aimed at extracting the noise component
For each input pixel the average variance over a neighborhoods of different window sizes is first computed.
The smaller average variance is taken into account when filtering according to Wiener.
:param x: 2D matrix
:param noise_var: Power spectral density of the noise we wish to extract (S)
:param window_size_list: list of window sizes
:return: wiener filtered version of input x
"""
window_size_list = list(kwargs.pop('window_size_list', [3, 5, 7, 9]))
energy = x ** 2
avg_win_energy = np.zeros(x.shape + (len(window_size_list),))
for window_idx, window_size in enumerate(window_size_list):
avg_win_energy[:, :, window_idx] = filters.uniform_filter(energy,
window_size,
mode='constant')
coef_var = threshold(avg_win_energy, noise_var)
coef_var_min = np.min(coef_var, axis=2)
x = x * noise_var / (coef_var_min + noise_var)
return x
示例9: test_all
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def test_all():
print("~"*40, " maximum filter")
_test_some(max_filter, spf.maximum_filter, cval = -np.inf)
print("~" * 40, " minimum filter")
_test_some(min_filter, spf.minimum_filter, cval = np.inf)
print("~" * 40, " uniform filter")
_test_some(uniform_filter, spf.uniform_filter, cval = 0.)
示例10: rb_dilation
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def rb_dilation(image, size, origin=0):
"""Binary dilation using linear filters."""
output = np.zeros(image.shape, 'f')
filters.uniform_filter(image, size, output=output, origin=origin,
mode='constant', cval=0)
return np.array(output > 0, 'i')
示例11: rb_erosion
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def rb_erosion(image, size, origin=0):
"""Binary erosion using linear filters."""
output = np.zeros(image.shape, 'f')
filters.uniform_filter(image, size, output=output, origin=origin,
mode='constant', cval=1)
return np.array(output == 1, 'i')
示例12: measure
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def measure(self, line):
h, w = line.shape
# XXX: this filter is awfully slow
smoothed = filters.gaussian_filter(line, (h*0.5, h*self.smoothness),
mode='constant')
smoothed += 0.001*filters.uniform_filter(smoothed, (h*0.5, w),
mode='constant')
self.shape = (h, w)
a = np.argmax(smoothed, axis=0)
a = filters.gaussian_filter(a, h*self.extra)
self.center = np.array(a, 'i')
deltas = np.abs(np.arange(h)[:, np.newaxis]-self.center[np.newaxis, :])
self.mad = np.mean(deltas[line != 0])
self.r = int(1+self.range*self.mad)
示例13: d_s
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def d_s (pan,ms,fused,q=1,r=4,ws=7):
"""calculates Spatial Distortion Index (D_S).
:param pan: high resolution panchromatic image.
:param ms: low resolution multispectral image.
:param fused: high resolution fused image.
:param q: parameter to emphasize large spatial differences (default = 1).
:param r: ratio of high resolution to low resolution (default=4).
:param ws: sliding window size (default = 7).
:returns: float -- D_S.
"""
pan = pan.astype(np.float64)
fused = fused.astype(np.float64)
pan_degraded = uniform_filter(pan.astype(np.float64), size=ws)/(ws**2)
pan_degraded = imresize(pan_degraded,(pan.shape[0]//r,pan.shape[1]//r))
L = ms.shape[2]
M1 = np.zeros(L)
M2 = np.zeros(L)
for l in range(L):
M1[l] = uqi(fused[:,:,l],pan)
M2[l] = uqi(ms[:,:,l],pan_degraded)
diff = np.abs(M1 - M2)**q
return ((1./L)*(np.sum(diff)))**(1./q)
示例14: _high_pass
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def _high_pass(
image: xr.DataArray, size: Number, rescale: bool = False
) -> xr.DataArray:
"""
Applies a mean high pass filter to an image
Parameters
----------
image : xr.DataArray
2-d or 3-d image data
size : Union[Number, Tuple[Number]]
width of the kernel
rescale : bool
If true scales data by max value, if false clips max values to one
Returns
-------
xr.DataArray:
Filtered image, same shape as input
"""
blurred: np.ndarray = uniform_filter(image, size)
filtered: np.ndarray = image - blurred
return filtered
示例15: neuropil_subtraction
# 需要导入模块: from scipy.ndimage import filters [as 别名]
# 或者: from scipy.ndimage.filters import uniform_filter [as 别名]
def neuropil_subtraction(mov,lx):
""" subtract low-pass filtered version of binned movie
low-pass filtered version ~ neuropil
subtract to help ignore neuropil
Parameters
----------------
mov : 3D array
binned movie, size [nbins x Ly x Lx]
lx : int
size of filter
Returns
----------------
mov : 3D array
binned movie with "neuropil" subtracted, size [nbins x Ly x Lx]
"""
if len(mov.shape)<3:
mov = mov[np.newaxis, :, :]
nbinned, Ly, Lx = mov.shape
c1 = uniform_filter(np.ones((Ly,Lx)), size=[lx, lx], mode = 'constant')
for j in range(nbinned):
mov[j] -= uniform_filter(mov[j], size=[lx, lx], mode = 'constant') / c1
return mov