Inpainting  is the process of reconstructing lost or deteriorated parts of images and videos.
The reconstruction is supposed to be performed in fully automatic way by exploiting the information presented in non-damaged regions.
|||Wikipedia. Inpainting https://en.wikipedia.org/wiki/Inpainting|
|||Wikipedia. Biharmonic equation https://en.wikipedia.org/wiki/Biharmonic_equation|
|||N.S.Hoang, S.B.Damelin, “On surface completion and image inpainting by biharmonic functions: numerical aspects”, http://www.ima.umn.edu/~damelin/biharmonic|
import numpy as np import matplotlib.pyplot as plt from skimage import data from skimage.restoration import inpaint image_orig = data.astronaut()[0:200, 0:200] # Create mask with three defect regions: left, middle, right respectively mask = np.zeros(image_orig.shape[:-1]) mask[20:60, 0:20] = 1 mask[160:180, 70:155] = 1 mask[30:60, 170:195] = 1 # Defect image over the same region in each color channel image_defect = image_orig.copy() for layer in range(image_defect.shape[-1]): image_defect[np.where(mask)] = 0 image_result = inpaint.inpaint_biharmonic(image_defect, mask, multichannel=True) fig, axes = plt.subplots(ncols=2, nrows=2) ax = axes.ravel() ax.set_title('Original image') ax.imshow(image_orig) ax.set_title('Mask') ax.imshow(mask, cmap=plt.cm.gray) ax.set_title('Defected image') ax.imshow(image_defect) ax.set_title('Inpainted image') ax.imshow(image_result) for a in ax: a.axis('off') fig.tight_layout() plt.show()
Total running time of the script: ( 0 minutes 6.700 seconds)