利用Python代碼實現(xiàn)一鍵摳背景功能
前言
又是一個逛csdn發(fā)現(xiàn)的一個有趣的小項目,可以一鍵摳背景,需要用到removebg模塊及其API,API可從其官網(wǎng)免費獲取,網(wǎng)址如下https://www.remove.bg/zh
ps:加上/zh后,網(wǎng)頁內(nèi)容會顯示中文
- 首先是安裝removebg模塊
- 然后就敲代碼了,官方使用文檔是個好東西,應(yīng)該好好利用
有趣的是,意外發(fā)現(xiàn)了兩種使用API的方法
1.用到爬蟲的知識,利用requests模塊,從網(wǎng)頁上調(diào)用,直接實現(xiàn)摳背景
# Requires "requests" to be installed (see python-requests.org)
import requests
response = requests.post(
'https://api.remove.bg/v1.0/removebg',
files={'image_file': open('/path/to/file.jpg', 'rb')},
data={'size': 'auto'},
headers={'X-Api-Key': 'INSERT_YOUR_API_KEY_HERE'},
)
if response.status_code == requests.codes.ok:
with open('no-bg.png', 'wb') as out:
out.write(response.content)
else:
print("Error:", response.status_code, response.text)
效果如下:


2.參照removebg庫中的使用說明調(diào)用API,用相關(guān)代碼實現(xiàn)摳背景
從gitub上下載removebg庫源碼時會有一個使用說明,即README.md,鏈接如下
https://github.com/brilam/remove-bg

上代碼,這里就只展示處理單張圖片的代碼,批量處理圖片以及根據(jù)url處理圖片的相關(guān)代碼均在README.md中有展示
from removebg import RemoveBg
# 摳單張圖片
rmbg = RemoveBg("xxxxx", "error.log") # 引號內(nèi)是你獲取的API
rmbg.remove_background_from_img_file(r"C:\Users\Lenovo\PycharmProjects\爬蟲\長頸鹿1.jpg",size='regular') # 圖片地址
效果如下

from removebg import RemoveBg
# 摳單張圖片
rmbg = RemoveBg("P3UCVZzKiUxW7BbkmcRYhgTB", "error.log") # 引號內(nèi)是你獲取的API
rmbg.remove_background_from_img_file(r"C:\Users\Lenovo\PycharmProjects\爬蟲\長頸鹿1.jpg",size='regular',bg_color='e.g.red') # 圖片地址

但奇怪的是加上填充純色背景的屬性bg_color='e.g.red'后會有這樣的報錯,尚未解決
后來使用了PIL庫來實現(xiàn)背景的填充
from PIL import Image
# 加載已去背景的圖像
im = Image.open('./pic/no-bg.png')
x, y = im.size
try:
# 填充紅色背景
p = Image.new('RGBA', im.size, (255, 0, 0))
p.paste(im, (0, 0, x, y), im) #paste的背景尺寸需與原圖尺寸相同
# 保存填充后的圖片
p.save('./pic/no-bg_red_bg.png')
p.show() #顯示處理后的圖片
except:
with open('./error1.log', 'a') as f:
f.write('background change fail .')
效果如下

總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。
相關(guān)文章
Python中的二維數(shù)組實例(list與numpy.array)
下面小編就為大家分享一篇Python中的二維數(shù)組實例(list與numpy.array),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
解決Python 爬蟲URL中存在中文或特殊符號無法請求的問題
今天小編就為大家分享一篇解決Python 爬蟲URL中存在中文或特殊符號無法請求的問題。這種問題,初學者應(yīng)該都會遇到,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Python基于更相減損術(shù)實現(xiàn)求解最大公約數(shù)的方法
這篇文章主要介紹了Python基于更相減損術(shù)實現(xiàn)求解最大公約數(shù)的方法,簡單說明了更相減損術(shù)的概念、原理并結(jié)合Python實例形式分析了基于更相減損術(shù)實現(xiàn)求解最大公約數(shù)的相關(guān)操作技巧與注意事項,需要的朋友可以參考下2018-04-04
Python測試WebService接口的實現(xiàn)示例
webService接口是走soap協(xié)議通過http傳輸,請求報文和返回報文都是xml格式的,本文主要介紹了Python測試WebService接口,具有一定的參考價值,感興趣的可以了解一下2024-03-03
使用Python將Mysql的查詢數(shù)據(jù)導出到文件的方法
今天小編就為大家分享一篇關(guān)于使用Python將Mysql的查詢數(shù)據(jù)導出到文件的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02
python運用pygame庫實現(xiàn)雙人彈球小游戲
這篇文章主要為大家詳細介紹了python運用pygame庫實現(xiàn)雙人彈球小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11

