以使用接缝雕刻从图像中去除目标或人工痕迹。这就需要用较低的值
对目标区域进行加权,因为在接缝雕刻中较低的权重被优先删除。如下代码使用了与原始输入照片形状相同的掩模图像,掩盖了包含低权重的狗图像的区域,这表明应该将其移除.
import pylab
from skimage.io import imread
from skimage.color import rgb2gray
from skimage import transform, util, filters, color
import cv2
from PIL import Image
image = cv2.imread('./9781789343731_Code/images/man2.png')[:,:,::-1]
mask_image = rgb2gray(imread('./9781789343731_Code/images/man_mask.png'))
print(image.shape)
print(mask_image.shape)
pylab.figure(figsize=(15, 10))
pylab.subplot(121), pylab.imshow(image), pylab.title('Original image'),pylab.axis('off')
# pylab.subplot(122), pylab.imshow(mask_image), pylab.title('Mask image')
# pylab.axis('off')
# pylab.show()
# pylab.figure(figsize=(15, 12))
pylab.subplot(122)
pylab.title('Object remove(dog)')
out = transform.seam_carve(image, mask_image, 'vertical', 90)
# resized = transform.resize(out, image.shape, mode='reflect')
# out = transform.resize(out, (image.shape[0], image.shape[1]), mode='reflect')
# image = util.img_as_float(image)
# eg = filters.sobel(color.rgb2gray(image))
pylab.imshow(out)
pylab.axis('off')
pylab.show()
本文含有隐藏内容,请 开通VIP 后查看