import numpy as np
import matplotlib.pyplot as plt
import pylab
from skimage.io import imread, imsave
from skimage.color import rgb2gray
# from skimage.util import img_as_float
from skimage import img_as_float
from skimage.restoration import inpaint
image_orig = img_as_float(imread('./9781789343731_Code/images/lena.jpg'))
mask = rgb2gray(imread('./9781789343731_Code/images/lena-maks.png'))
mask[mask>0.5] = 1
mask[mask<=0.5] = 0
print(np.unique(mask))
img_defect = image_orig.copy()
# for layer in range(img_defect.shape[-1]):
img_defect[np.where(mask)] = 0
img_result = inpaint.inpaint_biharmonic(img_defect, mask, multichannel=True)
fig, axes = pylab.subplots(nrows=2, ncols=2, figsize=(20, 20))
ax = axes.ravel()
ax[0].set_title('Original image', size=30), ax[0].imshow(image_orig)
ax[1].set_title('mask image', size=30), ax[1].imshow(mask,cmap=pylab.cm.gray)
ax[2].set_title('detect image', size=30), ax[2].imshow(img_defect)
ax[3].set_title('inpaint image', size=30), ax[3].imshow(img_result)
for a in ax:
a.axis('off')
pylab.tight_layout()
pylab.show()
python 图像修复
最新推荐文章于 2024-04-30 08:52:23 发布