ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

paddlehub之ps扣图合成

2021-01-18 10:00:03  阅读:181  来源: 互联网

标签:ps paddlehub img map image 扣图 np scope save


import paddlehub as hub
import cv2
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 

# 待抠图照片
image = 'ce.jpg'
# 背景
background = 'ce10.jpg'
# 合成照片名称
save_image = 'save_image.jpg'

human_seg = hub.Module(name="deeplabv3p_xception65_humanseg")
result = human_seg.segmentation(images=[cv2.imread(image)],visualization=True)
#print(result[0]['save_path'])
# or
# result = human_seg.segmentation(paths=['/PATH/TO/IMAGE'])
# 预测结果展示


test_img_path = result[0]['save_path']
#print(test_img_path)

#cv2.imwrite('mei',img)

def blend_images(fore_image, base_image):
    """
    将抠出的人物图像换背景
    fore_image: 前景图片,抠出的人物图片
    base_image: 背景图片
    """
    # 读入图片
    base_image = Image.open(base_image).convert('RGB')
    fore_image = Image.open(fore_image).resize(base_image.size)

    # 图片加权合成
    scope_map = np.array(fore_image)[:,:,-1] / 255
    scope_map = scope_map[:,:,np.newaxis]
    scope_map = np.repeat(scope_map, repeats=3, axis=2)
    res_image = np.multiply(scope_map, np.array(fore_image)[:,:,:3]) + np.multiply((1-scope_map), np.array(base_image))
    
    #保存图片
    res_image = Image.fromarray(np.uint8(res_image))
    res_image.save('mei.jpg')

blend_images(test_img_path, background)

# 展示合成图片
plt.figure(figsize=(10,10))
img = mpimg.imread(save_image)
plt.imshow(img) 
plt.axis('off') 
plt.show()

 

标签:ps,paddlehub,img,map,image,扣图,np,scope,save
来源: https://blog.csdn.net/qq_34717531/article/details/112762299

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有