Python scipy.ndimage.uniform_filter() Examples
The following are 26
code examples of scipy.ndimage.uniform_filter().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
scipy.ndimage
, or try the search function
.
Example #1
Source File: full_ref.py From sewar with MIT License | 6 votes |
def rase(GT,P,ws=8): """calculates relative average spectral error (rase). :param GT: first (original) input image. :param P: second (deformed) input image. :param ws: sliding window size (default = 8). :returns: float -- rase value. """ GT,P = _initial_check(GT,P) _,rmse_map = rmse_sw(GT,P,ws) GT_means = uniform_filter(GT, ws)/ws**2 N = GT.shape[2] M = np.sum(GT_means,axis=2)/N rase_map = (100./M) * np.sqrt( np.sum(rmse_map**2,axis=2) / N ) s = int(np.round(ws/2)) return np.mean(rase_map[s:-s,s:-s])
Example #2
Source File: dataloader_spacetime.py From space_time_pde with MIT License | 6 votes |
def filter(self, signal): """Filter a given signal with a choice of filter type (self.lres_filter). """ signal = signal.copy() filter_size = [1, self.downsamp_t*2-1, self.downsamp_xz*2-1, self.downsamp_xz*2-1] if self.lres_filter == 'none' or (not self.lres_filter): output = signal elif self.lres_filter == 'gaussian': sigma = [0, int(self.downsamp_t/2), int(self.downsamp_xz/2), int(self.downsamp_xz/2)] output = ndimage.gaussian_filter(signal, sigma=sigma) elif self.lres_filter == 'uniform': output = ndimage.uniform_filter(signal, size=filter_size) elif self.lres_filter == 'median': output = ndimage.median_filter(signal, size=filter_size) elif self.lres_filter == 'maximum': output = ndimage.maximum_filter(signal, size=filter_size) else: raise NotImplementedError( "lres_filter must be one of none/gaussian/uniform/median/maximum") return output
Example #3
Source File: tightcrop.py From LaSO with BSD 3-Clause "New" or "Revised" License | 6 votes |
def find_paws(data, smooth_radius = 5, threshold = 0.0001): # http://stackoverflow.com/questions/4087919/how-can-i-improve-my-paw-detection """Detects and isolates contiguous regions in the input array""" # Blur the input data a bit so the paws have a continous footprint data = ndimage.uniform_filter(data, smooth_radius) # Threshold the blurred data (this needs to be a bit > 0 due to the blur) thresh = data > threshold # Fill any interior holes in the paws to get cleaner regions... filled = ndimage.morphology.binary_fill_holes(thresh) # Label each contiguous paw coded_paws, num_paws = ndimage.label(filled) # Isolate the extent of each paw # find_objects returns a list of 2-tuples: (slice(...), slice(...)) # which represents a rectangular box around the object data_slices = ndimage.find_objects(coded_paws) return data_slices
Example #4
Source File: test_ndimage.py From Computable with MIT License | 5 votes |
def test_uniform03(self): array = numpy.array([1, 2, 3]) filter_shape = [1] output = ndimage.uniform_filter(array, filter_shape) assert_array_almost_equal(array, output)
Example #5
Source File: preprocessing.py From minian with GNU General Public License v3.0 | 5 votes |
def remove_background_perframe(fm, method, wnd, selem): if method == 'uniform': return fm - uniform_filter(fm, wnd) elif method == 'tophat': return cv2.morphologyEx(fm, cv2.MORPH_TOPHAT, selem)
Example #6
Source File: preprocessing.py From minian with GNU General Public License v3.0 | 5 votes |
def remove_background_perframe_old(fid, fm, varr, window): f = fm - uniform_filter(fm, window) varr.loc[dict(frame=fid)] = f
Example #7
Source File: full_ref.py From sewar with MIT License | 5 votes |
def msssim (GT,P,weights = [0.0448, 0.2856, 0.3001, 0.2363, 0.1333],ws=11,K1=0.01,K2=0.03,MAX=None): """calculates multi-scale structural similarity index (ms-ssim). :param GT: first (original) input image. :param P: second (deformed) input image. :param weights: weights for each scale (default = [0.0448, 0.2856, 0.3001, 0.2363, 0.1333]). :param ws: sliding window size (default = 11). :param K1: First constant for SSIM (default = 0.01). :param K2: Second constant for SSIM (default = 0.03). :param MAX: Maximum value of datarange (if None, MAX is calculated using image dtype). :returns: float -- ms-ssim value. """ if MAX is None: MAX = np.iinfo(GT.dtype).max GT,P = _initial_check(GT,P) scales = len(weights) fltr_specs = dict(fltr=Filter.GAUSSIAN,sigma=1.5,ws=11) if isinstance(weights, list): weights = np.array(weights) mssim = [] mcs = [] for _ in range(scales): _ssim, _cs = ssim(GT, P, ws=ws,K1=K1,K2=K2,MAX=MAX,fltr_specs=fltr_specs) mssim.append(_ssim) mcs.append(_cs) filtered = [uniform_filter(im, 2) for im in [GT, P]] GT, P = [x[::2, ::2, :] for x in filtered] mssim = np.array(mssim,dtype=np.float64) mcs = np.array(mcs,dtype=np.float64) return np.prod(_power_complex(mcs[:scales-1],weights[:scales-1])) * _power_complex(mssim[scales-1],weights[scales-1])
Example #8
Source File: full_ref.py From sewar with MIT License | 5 votes |
def ergas(GT,P,r=4,ws=8): """calculates erreur relative globale adimensionnelle de synthese (ergas). :param GT: first (original) input image. :param P: second (deformed) input image. :param r: ratio of high resolution to low resolution (default=4). :param ws: sliding window size (default = 8). :returns: float -- ergas value. """ GT,P = _initial_check(GT,P) rmse_map = None nb = 1 _,rmse_map = rmse_sw(GT,P,ws) means_map = uniform_filter(GT,ws)/ws**2 # Avoid division by zero idx = means_map == 0 means_map[idx] = 1 rmse_map[idx] = 0 ergasroot = np.sqrt(np.sum(((rmse_map**2)/(means_map**2)),axis=2)/nb) ergas_map = 100*r*ergasroot; s = int(np.round(ws/2)) return np.mean(ergas_map[s:-s,s:-s])
Example #9
Source File: full_ref.py From sewar with MIT License | 5 votes |
def _rmse_sw_single (GT,P,ws): errors = (GT-P)**2 errors = uniform_filter(errors.astype(np.float64),ws) rmse_map = np.sqrt(errors) s = int(np.round((ws/2))) return np.mean(rmse_map[s:-s,s:-s]),rmse_map
Example #10
Source File: operations.py From py-image-dataset-generator with MIT License | 5 votes |
def execute(self, image_array: ndarray): return ndimage.uniform_filter(image_array, size=(11, 11, 1))
Example #11
Source File: test_filters.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_multiple_modes_uniform(): # Test uniform filter for multiple extrapolation modes arr = np.array([[1., 0., 0.], [1., 1., 0.], [0., 0., 0.]]) expected = np.array([[0.32, 0.40, 0.48], [0.20, 0.28, 0.32], [0.28, 0.32, 0.40]]) modes = ['reflect', 'wrap'] assert_almost_equal(expected, sndi.uniform_filter(arr, 5, mode=modes))
Example #12
Source File: test_filters.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_multiple_modes_sequentially(): # Test that the filters with multiple mode cababilities for different # dimensions give the same result as applying the filters with # different modes sequentially arr = np.array([[1., 0., 0.], [1., 1., 0.], [0., 0., 0.]]) modes = ['reflect', 'wrap'] expected = sndi.gaussian_filter1d(arr, 1, axis=0, mode=modes[0]) expected = sndi.gaussian_filter1d(expected, 1, axis=1, mode=modes[1]) assert_equal(expected, sndi.gaussian_filter(arr, 1, mode=modes)) expected = sndi.uniform_filter1d(arr, 5, axis=0, mode=modes[0]) expected = sndi.uniform_filter1d(expected, 5, axis=1, mode=modes[1]) assert_equal(expected, sndi.uniform_filter(arr, 5, mode=modes)) expected = sndi.maximum_filter1d(arr, size=5, axis=0, mode=modes[0]) expected = sndi.maximum_filter1d(expected, size=5, axis=1, mode=modes[1]) assert_equal(expected, sndi.maximum_filter(arr, size=5, mode=modes)) expected = sndi.minimum_filter1d(arr, size=5, axis=0, mode=modes[0]) expected = sndi.minimum_filter1d(expected, size=5, axis=1, mode=modes[1]) assert_equal(expected, sndi.minimum_filter(arr, size=5, mode=modes))
Example #13
Source File: test_filters.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_multiple_modes(): # Test that the filters with multiple mode cababilities for different # dimensions give the same result as applying a single mode. arr = np.array([[1., 0., 0.], [1., 1., 0.], [0., 0., 0.]]) mode1 = 'reflect' mode2 = ['reflect', 'reflect'] assert_equal(sndi.gaussian_filter(arr, 1, mode=mode1), sndi.gaussian_filter(arr, 1, mode=mode2)) assert_equal(sndi.prewitt(arr, mode=mode1), sndi.prewitt(arr, mode=mode2)) assert_equal(sndi.sobel(arr, mode=mode1), sndi.sobel(arr, mode=mode2)) assert_equal(sndi.laplace(arr, mode=mode1), sndi.laplace(arr, mode=mode2)) assert_equal(sndi.gaussian_laplace(arr, 1, mode=mode1), sndi.gaussian_laplace(arr, 1, mode=mode2)) assert_equal(sndi.maximum_filter(arr, size=5, mode=mode1), sndi.maximum_filter(arr, size=5, mode=mode2)) assert_equal(sndi.minimum_filter(arr, size=5, mode=mode1), sndi.minimum_filter(arr, size=5, mode=mode2)) assert_equal(sndi.gaussian_gradient_magnitude(arr, 1, mode=mode1), sndi.gaussian_gradient_magnitude(arr, 1, mode=mode2)) assert_equal(sndi.uniform_filter(arr, 5, mode=mode1), sndi.uniform_filter(arr, 5, mode=mode2))
Example #14
Source File: test_ndimage.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_uniform06(self): filter_shape = [2, 2] for type1 in self.types: array = numpy.array([[4, 8, 12], [16, 20, 24]], type1) for type2 in self.types: output = ndimage.uniform_filter( array, filter_shape, output=type2) assert_array_almost_equal([[4, 6, 10], [10, 12, 16]], output) assert_equal(output.dtype.type, type2)
Example #15
Source File: test_ndimage.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_uniform05(self): array = [] filter_shape = [1] output = ndimage.uniform_filter(array, filter_shape) assert_array_almost_equal([], output)
Example #16
Source File: test_ndimage.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_uniform04(self): array = numpy.array([2, 4, 6]) filter_shape = [2] output = ndimage.uniform_filter(array, filter_shape) assert_array_almost_equal([2, 3, 5], output)
Example #17
Source File: test_ndimage.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_uniform03(self): array = numpy.array([1, 2, 3]) filter_shape = [1] output = ndimage.uniform_filter(array, filter_shape) assert_array_almost_equal(array, output)
Example #18
Source File: test_ndimage.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_uniform02(self): array = numpy.array([1, 2, 3]) filter_shape = [0] output = ndimage.uniform_filter(array, filter_shape) assert_array_almost_equal(array, output)
Example #19
Source File: dis_TSEB.py From pyTSEB with GNU General Public License v3.0 | 5 votes |
def moving_mean_filter_2(data, window): ''' window is a 2 element tuple with the moving window dimensions (rows, columns)''' data = uniform_filter(data, size=window, mode='mirror') return data
Example #20
Source File: test_ndimage.py From Computable with MIT License | 5 votes |
def test_uniform06(self): filter_shape = [2, 2] for type1 in self.types: array = numpy.array([[4, 8, 12], [16, 20, 24]], type1) for type2 in self.types: output = ndimage.uniform_filter(array, filter_shape, output=type2) assert_array_almost_equal([[4, 6, 10], [10, 12, 16]], output) assert_equal(output.dtype.type, type2)
Example #21
Source File: test_ndimage.py From Computable with MIT License | 5 votes |
def test_uniform05(self): array = [] filter_shape = [1] output = ndimage.uniform_filter(array, filter_shape) assert_array_almost_equal([], output)
Example #22
Source File: test_ndimage.py From Computable with MIT License | 5 votes |
def test_uniform04(self): array = numpy.array([2, 4, 6]) filter_shape = [2] output = ndimage.uniform_filter(array, filter_shape) assert_array_almost_equal([2, 3, 5], output)
Example #23
Source File: test_ndimage.py From Computable with MIT License | 5 votes |
def test_uniform02(self): array = numpy.array([1, 2, 3]) filter_shape = [0] output = ndimage.uniform_filter(array, filter_shape) assert_array_almost_equal(array, output)
Example #24
Source File: features.py From cs231n-practice with MIT License | 4 votes |
def hog_feature(im): """Compute Histogram of Gradient (HOG) feature for an image Modified from skimage.feature.hog http://pydoc.net/Python/scikits-image/0.4.2/skimage.feature.hog Reference: Histograms of Oriented Gradients for Human Detection Navneet Dalal and Bill Triggs, CVPR 2005 Parameters: im : an input grayscale or rgb image Returns: feat: Histogram of Gradient (HOG) feature """ # convert rgb to grayscale if needed if im.ndim == 3: image = rgb2gray(im) else: image = np.at_least_2d(im) sx, sy = image.shape # image size orientations = 9 # number of gradient bins cx, cy = (8, 8) # pixels per cell gx = np.zeros(image.shape) gy = np.zeros(image.shape) gx[:, :-1] = np.diff(image, n=1, axis=1) # compute gradient on x-direction gy[:-1, :] = np.diff(image, n=1, axis=0) # compute gradient on y-direction grad_mag = np.sqrt(gx ** 2 + gy ** 2) # gradient magnitude grad_ori = np.arctan2(gy, (gx + 1e-15)) * (180 / np.pi) + 90 # gradient orientation n_cellsx = int(np.floor(sx / cx)) # number of cells in x n_cellsy = int(np.floor(sy / cy)) # number of cells in y # compute orientations integral images orientation_histogram = np.zeros((n_cellsx, n_cellsy, orientations)) for i in range(orientations): # create new integral image for this orientation # isolate orientations in this range temp_ori = np.where(grad_ori < 180 / orientations * (i + 1), grad_ori, 0) temp_ori = np.where(grad_ori >= 180 / orientations * i, temp_ori, 0) # select magnitudes for those orientations cond2 = temp_ori > 0 temp_mag = np.where(cond2, grad_mag, 0) orientation_histogram[:,:,i] = uniform_filter(temp_mag, size=(cx, cy))[cx/2::cx, cy/2::cy].T return orientation_histogram.ravel()
Example #25
Source File: full_ref.py From sewar with MIT License | 4 votes |
def _uqi_single(GT,P,ws): N = ws**2 window = np.ones((ws,ws)) GT_sq = GT*GT P_sq = P*P GT_P = GT*P GT_sum = uniform_filter(GT, ws) P_sum = uniform_filter(P, ws) GT_sq_sum = uniform_filter(GT_sq, ws) P_sq_sum = uniform_filter(P_sq, ws) GT_P_sum = uniform_filter(GT_P, ws) GT_P_sum_mul = GT_sum*P_sum GT_P_sum_sq_sum_mul = GT_sum*GT_sum + P_sum*P_sum numerator = 4*(N*GT_P_sum - GT_P_sum_mul)*GT_P_sum_mul denominator1 = N*(GT_sq_sum + P_sq_sum) - GT_P_sum_sq_sum_mul denominator = denominator1*GT_P_sum_sq_sum_mul q_map = np.ones(denominator.shape) index = np.logical_and((denominator1 == 0) , (GT_P_sum_sq_sum_mul != 0)) q_map[index] = 2*GT_P_sum_mul[index]/GT_P_sum_sq_sum_mul[index] index = (denominator != 0) q_map[index] = numerator[index]/denominator[index] s = int(np.round(ws/2)) return np.mean(q_map[s:-s,s:-s])
Example #26
Source File: correlation.py From pysteps with BSD 3-Clause "New" or "Revised" License | 4 votes |
def _moving_window_corrcoef(x, y, window_radius, window="gaussian", mask=None): if window not in ["gaussian", "uniform"]: raise ValueError( "unknown window type %s, the available options are 'gaussian' and 'uniform'" % window ) if mask is None: mask = np.ones(x.shape) else: x = x.copy() x[~mask] = 0.0 y = y.copy() y[~mask] = 0.0 mask = mask.astype(float) if window == "gaussian": convol_filter = ndimage.gaussian_filter else: convol_filter = ndimage.uniform_filter if window == "uniform": window_size = 2 * window_radius + 1 else: window_size = window_radius n = convol_filter(mask, window_size, mode="constant") * window_size ** 2 sx = convol_filter(x, window_size, mode="constant") * window_size ** 2 sy = convol_filter(y, window_size, mode="constant") * window_size ** 2 ssx = convol_filter(x ** 2, window_size, mode="constant") * window_size ** 2 ssy = convol_filter(y ** 2, window_size, mode="constant") * window_size ** 2 sxy = convol_filter(x * y, window_size, mode="constant") * window_size ** 2 mux = sx / n muy = sy / n stdx = np.sqrt(ssx - 2 * mux * sx + n * mux ** 2) stdy = np.sqrt(ssy - 2 * muy * sy + n * muy ** 2) cov = sxy - muy * sx - mux * sy + n * mux * muy mask = np.logical_and(stdx > 1e-8, stdy > 1e-8) mask = np.logical_and(mask, stdx * stdy > 1e-8) mask = np.logical_and(mask, n >= 3) corr = np.empty(x.shape) corr[mask] = cov[mask] / (stdx[mask] * stdy[mask]) corr[~mask] = np.nan return corr