Source code for ecpi.common.num.extrapolate_image

'''Extrapolate tools
'''

import numpy as np
from scipy.interpolate import interp2d


[docs]def extrapolate_edge(image): """Extrapolate edges of an image so as to find the image value at the edge of outer pixels. :param image: image to process of size MxN. :type image: array2D(float) :return: image of size (M+2)x(N+2). :rtype: array2D(float) """ # interpolate original image. x = np.linspace(0, image.shape[0] - 1, image.shape[0]) y = np.linspace(0, image.shape[1] - 1, image.shape[1]) f = interp2d(x, y, image.T, kind='cubic') # create extrapolated image. x_new = np.linspace(-1, image.shape[0], image.shape[0] + 2) y_new = np.linspace(-1, image.shape[1], image.shape[1] + 2) img_new = f(x_new, y_new) return img_new.T