Python scipy.ndimage.interpolation.map_coordinates() Examples
The following are 30
code examples of scipy.ndimage.interpolation.map_coordinates().
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.interpolation
, or try the search function
.
Example #1
Source File: image_utils.py From pytorch-mono-depth with MIT License | 6 votes |
def elastic_transform(image, alpha=1000, sigma=30, spline_order=1, mode='nearest', random_state=np.random): """Elastic deformation of image as described in [Simard2003]_. .. [Simard2003] Simard, Steinkraus and Platt, "Best Practices for Convolutional Neural Networks applied to Visual Document Analysis", in Proc. of the International Conference on Document Analysis and Recognition, 2003. """ assert image.ndim == 3 shape = image.shape[:2] dx = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = [np.reshape(x + dx, (-1, 1)), np.reshape(y + dy, (-1, 1))] result = np.empty_like(image) for i in range(image.shape[2]): result[:, :, i] = map_coordinates( image[:, :, i], indices, order=spline_order, mode=mode).reshape(shape) return result
Example #2
Source File: custom_transforms.py From ECN with Apache License 2.0 | 6 votes |
def elastic_transform(image, alpha=1000, sigma=30, spline_order=1, mode='nearest', random_state=np.random): """Elastic deformation of image as described in [Simard2003]_. .. [Simard2003] Simard, Steinkraus and Platt, "Best Practices for Convolutional Neural Networks applied to Visual Document Analysis", in Proc. of the International Conference on Document Analysis and Recognition, 2003. """ assert image.ndim == 3 shape = image.shape[:2] dx = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = [np.reshape(x + dx, (-1, 1)), np.reshape(y + dy, (-1, 1))] result = np.empty_like(image) for i in range(image.shape[2]): result[:, :, i] = map_coordinates( image[:, :, i], indices, order=spline_order, mode=mode).reshape(shape) return result
Example #3
Source File: SE2FFT.py From lie_learn with MIT License | 6 votes |
def map_wrap(f, coords): # Create an agumented array, where the last row and column are added at the beginning of the axes fa = np.empty((f.shape[0] + 1, f.shape[1] + 1)) #fa[1:, 1:] = f #fa[0, 1:] = f[-1, :] #fa[1:, 0] = f[:, -1] #f[0, 0] = f[-1, -1] fa[:-1, :-1] = f fa[-1, :-1] = f[0, :] fa[:-1, -1] = f[:, 0] fa[-1, -1] = f[0, 0] # Wrap coordinates wrapped_coords_x = coords[0, ...] % f.shape[0] wrapped_coords_y = coords[1, ...] % f.shape[1] wrapped_coords = np.r_[wrapped_coords_x[None, ...], wrapped_coords_y[None, ...]] # Interpolate #return fa, wrapped_coords, map_coordinates(f, wrapped_coords, order=1, mode='constant', cval=np.nan, prefilter=False) return map_coordinates(fa, wrapped_coords, order=1, mode='constant', cval=np.nan, prefilter=False)
Example #4
Source File: hangul-image-generator.py From tensorflow-hangul-recognition with Apache License 2.0 | 6 votes |
def elastic_distort(image, alpha, sigma): """Perform elastic distortion on an image. Here, alpha refers to the scaling factor that controls the intensity of the deformation. The sigma variable refers to the Gaussian filter standard deviation. """ random_state = numpy.random.RandomState(None) shape = image.shape dx = gaussian_filter( (random_state.rand(*shape) * 2 - 1), sigma, mode="constant" ) * alpha dy = gaussian_filter( (random_state.rand(*shape) * 2 - 1), sigma, mode="constant" ) * alpha x, y = numpy.meshgrid(numpy.arange(shape[0]), numpy.arange(shape[1])) indices = numpy.reshape(y+dy, (-1, 1)), numpy.reshape(x+dx, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #5
Source File: dataset.py From BraTs with MIT License | 6 votes |
def elastic_transform(image, label, alpha=1000, sigma=30, spline_order=1, mode='nearest', random_state=np.random): """Elastic deformation of image as described in [Simard2003]_. .. [Simard2003] Simard, Steinkraus and Platt, "Best Practices for Convolutional Neural Networks applied to Visual Document Analysis", in Proc. of the International Conference on Document Analysis and Recognition, 2003. """ #assert image.ndim == 3 image = np.array(image) label = np.array(label) shape = image.shape[:2] dx = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = [np.reshape(x + dx, (-1, 1)), np.reshape(y + dy, (-1, 1))] result1 = map_coordinates(image, indices, order=spline_order, mode=mode).reshape(shape) result2 = map_coordinates(label, indices, order=spline_order, mode=mode).reshape(shape) return Image.fromarray(result1), Image.fromarray(result2)
Example #6
Source File: preprocess.py From 2018DSB with MIT License | 6 votes |
def mask_transform(mask, coordinates): h, w = mask.shape nb_mask = mask.max() yt, xt = coordinates y_floor, x_floor = np.floor(yt), np.floor(xt) score = np.zeros((h, w, nb_mask,)) for (y_shift, x_shift) in [(0,0),(0,1),(1,0),(1,1)]: mask_index = map_coordinates(mask, (y_floor+y_shift, x_floor+x_shift), order=0, mode='constant') index = mask_index!=0 dist = np.sqrt((yt[index]-y_floor[index]-y_shift)**2+(xt[index]-x_floor[index]-x_shift)**2) score[index, mask_index[index]-1] += 1/dist index = score.sum(2)!=0 mask_trans = np.zeros_like(mask) mask_trans[index]= score[index].argmax(1)+1 return mask_trans
Example #7
Source File: myImageTransformations.py From Attention-Gated-Networks with MIT License | 6 votes |
def elastic_transform(image, alpha=1000, sigma=30, spline_order=1, mode='nearest', random_state=np.random): """Elastic deformation of image as described in [Simard2003]_. .. [Simard2003] Simard, Steinkraus and Platt, "Best Practices for Convolutional Neural Networks applied to Visual Document Analysis", in Proc. of the International Conference on Document Analysis and Recognition, 2003. """ assert image.ndim == 3 shape = image.shape[:2] dx = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = [np.reshape(x + dx, (-1, 1)), np.reshape(y + dy, (-1, 1))] result = np.empty_like(image) for i in range(image.shape[2]): result[:, :, i] = map_coordinates( image[:, :, i], indices, order=spline_order, mode=mode).reshape(shape) return result
Example #8
Source File: image_tfs.py From tanda with MIT License | 6 votes |
def TF_elastic_deform(img, alpha=1.0, sigma=1.0): """Elastic deformation of images as described in Simard 2003""" assert len(img.shape) == 3 h, w, nc = img.shape if nc != 1: raise NotImplementedError("Multi-channel not implemented.") # Generate uniformly random displacement vectors, then convolve with gaussian kernel # and finally multiply by a magnitude coefficient alpha dx = alpha * gaussian_filter( (np.random.random((h, w)) * 2 - 1), sigma, mode="constant", cval=0 ) dy = alpha * gaussian_filter( (np.random.random((h, w)) * 2 - 1), sigma, mode="constant", cval=0 ) # Map image to the deformation mesh x, y = np.meshgrid(np.arange(h), np.arange(w), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(img.reshape((h,w)), indices, order=1).reshape(h,w,nc)
Example #9
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #10
Source File: 2009isbi.py From 2018DSB with MIT License | 5 votes |
def fill_boundary(mask, index_boundary): y, x = np.mgrid[0:mask.shape[0], 0:mask.shape[1]] y, x = y[index_boundary], x[index_boundary] mask[index_boundary] = np.max([map_coordinates(mask, (y+dy,x+dx), order=0, mode='constant') for dy, dx in [(-1,0),(1,0),(0,-1),(0,1),(-1,-1), (1,1),(-1,1),(1,-1)]], axis=0) return mask
Example #11
Source File: preprocess.py From 2018DSB with MIT License | 5 votes |
def image_transform(image, coordinates): image_trans = image.copy() for z in range(image.shape[2]): image_trans[:,:,z] = map_coordinates(image[:,:,z], coordinates, order=1, mode='constant') return image_trans
Example #12
Source File: step2_train_mass_segmenter.py From kaggle_ndsb2017 with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma, random_state=None): global ELASTIC_INDICES shape = image.shape if ELASTIC_INDICES == None: if random_state is None: random_state = numpy.random.RandomState(1301) dx = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = numpy.meshgrid(numpy.arange(shape[0]), numpy.arange(shape[1])) ELASTIC_INDICES = numpy.reshape(y + dy, (-1, 1)), numpy.reshape(x + dx, (-1, 1)) return map_coordinates(image, ELASTIC_INDICES, order=1).reshape(shape)
Example #13
Source File: test_deform_conv.py From pytorch-deform-conv with MIT License | 5 votes |
def test_th_map_coordinates(): np.random.seed(42) input = np.random.random((100, 100)) coords = (np.random.random((200, 2)) * 99) sp_mapped_vals = map_coordinates(input, coords.T, order=1) th_mapped_vals = th_map_coordinates( Variable(torch.from_numpy(input)), Variable(torch.from_numpy(coords)) ) assert np.allclose(sp_mapped_vals, th_mapped_vals.data.numpy(), atol=1e-5)
Example #14
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #15
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #16
Source File: preprocess.py From 2018DSB with MIT License | 5 votes |
def image_transform_batch(image_batch, coordinates): image_batch_trans = image_batch.copy() for nb_batch in range(image_batch.shape[0]): for z in range(image_batch.shape[3]): image_batch_trans[nb_batch, :,:,z] = map_coordinates(image_batch[nb_batch,:,:,z], coordinates, order=1, mode='constant') return image_batch_trans
Example #17
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #18
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #19
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #20
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #21
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #22
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #23
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #24
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #25
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #26
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #27
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #28
Source File: transforms.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def elastic_transform(image, alpha, sigma): shape = image.shape dx = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((np.random.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x+dx, (-1, 1)), np.reshape(y+dy, (-1, 1)) return map_coordinates(image, indices, order=1).reshape(shape)
Example #29
Source File: prepro.py From super-resolution-videos with The Unlicense | 5 votes |
def elastic_transform_multi(x, alpha, sigma, mode="constant", cval=0, is_random=False): """Elastic deformation of images as described in `[Simard2003] <http://deeplearning.cs.cmu.edu/pdfs/Simard.pdf>`_. Parameters ----------- x : list of numpy array others : see ``elastic_transform``. """ if is_random is False: random_state = np.random.RandomState(None) else: random_state = np.random.RandomState(int(time.time())) shape = x[0].shape if len(shape) == 3: shape = (shape[0], shape[1]) new_shape = random_state.rand(*shape) results = [] for data in x: is_3d = False if len(data.shape) == 3 and data.shape[-1] == 1: data = data[:,:,0] is_3d = True elif len(data.shape) == 3 and data.shape[-1] != 1: raise Exception("Only support greyscale image") assert len(data.shape)==2 dx = gaussian_filter((new_shape * 2 - 1), sigma, mode=mode, cval=cval) * alpha dy = gaussian_filter((new_shape * 2 - 1), sigma, mode=mode, cval=cval) * alpha x_, y_ = np.meshgrid(np.arange(shape[0]), np.arange(shape[1]), indexing='ij') indices = np.reshape(x_ + dx, (-1, 1)), np.reshape(y_ + dy, (-1, 1)) # print(data.shape) if is_3d: results.append( map_coordinates(data, indices, order=1).reshape((shape[0], shape[1], 1))) else: results.append( map_coordinates(data, indices, order=1).reshape(shape) ) return np.asarray(results) # zoom
Example #30
Source File: pre_processing.py From pytorch-unet-segmentation with MIT License | 5 votes |
def add_elastic_transform(image, alpha, sigma, pad_size=30, seed=None): """ Args: image : numpy array of image alpha : α is a scaling factor sigma : σ is an elasticity coefficient random_state = random integer Return : image : elastically transformed numpy array of image """ image_size = int(image.shape[0]) image = np.pad(image, pad_size, mode="symmetric") if seed is None: seed = randint(1, 100) random_state = np.random.RandomState(seed) else: random_state = np.random.RandomState(seed) shape = image.shape dx = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha dy = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, mode="constant", cval=0) * alpha x, y = np.meshgrid(np.arange(shape[1]), np.arange(shape[0])) indices = np.reshape(y+dy, (-1, 1)), np.reshape(x+dx, (-1, 1)) return cropping(map_coordinates(image, indices, order=1).reshape(shape), 512, pad_size, pad_size), seed