python3摳圖並更換背景


 

繼上次博客opencv入門之RGB轉HSV並更換背景手動摳圖之后,今天偶然看到這篇博客利用了百度的paddlepaddle平台實現AI摳圖,這就是所謂的“大人,時代變了!”。
於是使用本人上次博客的圖片,如下
在這里插入圖片描述
安裝之后運行以下代碼(圖片存入當前目錄的figs文件夾中):

import os, paddlehub as hub
humanseg = hub.Module(name='deeplabv3p_xception65_humanseg')		# 加載模型
path = './figs/'	# 文件目錄
files = [path + i for i in os.listdir(path)]	# 獲取文件列表
print(files)
results = humanseg.segmentation(data={'image':files})	# 摳圖

發現得到的是空白圖片,定睛一看原來這個模塊是摳人的而我這個卻是個狗熊。
於是又參考了兩篇三行python代碼帶你摳圖和python摳圖和添加背景顏色利用了 removebg模塊,代碼如下(圖片名字為"1.png",在當前目錄下,結果會生成一個透明背景和純色背景的圖片):

from removebg import RemoveBg
from PIL import Image
import os

#changebg: 調用PIL添加背景顏色
def changebg(img,color):

    color_dict = {"A":(255,0,0),"B":(67,142,219),"C":(255,255,255)} # A:red B:bule C:white D:justremovebg
    im = Image.open(img)
    x,y =im.size
    try:
        p = Image.new('RGBA', im.size,color=color_dict.get(color))
        p.paste(im,(0, 0, x, y), im)
        p.save('{}.png'.format('new'+color))
    except:
        print('changebg err')
        pass
rmbg = RemoveBg("UiwiP9dQj53v693md9UyEyZz", "error.log")
 
#獲取單個照片的摳圖 XKMh1J7geGfnGY9CFu9zXV8f
 
rmbg.remove_background_from_img_file("./1.png") #圖片地址
option = 'B' #藍色
changebg('1.png_no_bg.png',option)
 
 
#批量獲取摳圖信息
#path = '%s/picture' % os.getcwd()
#for pic in os.listdir(path):
 # rmbg.remove_background_from_img_file("%s/%s" % (path, pic))

因為代碼比較簡單,所以直接搬運沒有整理,結果如下:
在這里插入圖片描述

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM