利用Python代碼實(shí)現(xiàn)一鍵摳背景功能
前言
又是一個(gè)逛csdn發(fā)現(xiàn)的一個(gè)有趣的小項(xiàng)目,可以一鍵摳背景,需要用到removebg模塊及其API,API可從其官網(wǎng)免費(fèi)獲取,網(wǎng)址如下https://www.remove.bg/zh
ps:加上/zh后,網(wǎng)頁(yè)內(nèi)容會(huì)顯示中文
- 首先是安裝removebg模塊
- 然后就敲代碼了,官方使用文檔是個(gè)好東西,應(yīng)該好好利用
有趣的是,意外發(fā)現(xiàn)了兩種使用API的方法
1.用到爬蟲的知識(shí),利用requests模塊,從網(wǎng)頁(yè)上調(diào)用,直接實(shí)現(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庫(kù)中的使用說(shuō)明調(diào)用API,用相關(guān)代碼實(shí)現(xiàn)摳背景
從gitub上下載removebg庫(kù)源碼時(shí)會(huì)有一個(gè)使用說(shuō)明,即README.md,鏈接如下
https://github.com/brilam/remove-bg
上代碼,這里就只展示處理單張圖片的代碼,批量處理圖片以及根據(jù)url處理圖片的相關(guān)代碼均在README.md中有展示
from removebg import RemoveBg # 摳單張圖片 rmbg = RemoveBg("xxxxx", "error.log") # 引號(hào)內(nèi)是你獲取的API rmbg.remove_background_from_img_file(r"C:\Users\Lenovo\PycharmProjects\爬蟲\長(zhǎng)頸鹿1.jpg",size='regular') # 圖片地址
效果如下
from removebg import RemoveBg # 摳單張圖片 rmbg = RemoveBg("P3UCVZzKiUxW7BbkmcRYhgTB", "error.log") # 引號(hào)內(nèi)是你獲取的API rmbg.remove_background_from_img_file(r"C:\Users\Lenovo\PycharmProjects\爬蟲\長(zhǎng)頸鹿1.jpg",size='regular',bg_color='e.g.red') # 圖片地址
但奇怪的是加上填充純色背景的屬性bg_color='e.g.red'后會(huì)有這樣的報(bào)錯(cuò),尚未解決
后來(lái)使用了PIL庫(kù)來(lái)實(shí)現(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é)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
- 快速一鍵生成Python爬蟲請(qǐng)求頭
- 使用Python制作一個(gè)數(shù)據(jù)預(yù)處理小工具(多種操作一鍵完成)
- 如何打包Python Web項(xiàng)目實(shí)現(xiàn)免安裝一鍵啟動(dòng)的方法
- Ubuntu18.04 一鍵升級(jí)Python所有第三方包 及安裝python包的方法
- Python一鍵安裝全部依賴包的方法
- Python一鍵查找iOS項(xiàng)目中未使用的圖片、音頻、視頻資源
- Python 一鍵獲取百度網(wǎng)盤提取碼的方法
- Python 一鍵制作微信好友圖片墻的方法
- Python字典循環(huán)添加一鍵多值的用法實(shí)例
- Python趣味爬蟲之用Python實(shí)現(xiàn)智慧校園一鍵評(píng)教
相關(guān)文章
使用Termux在手機(jī)上運(yùn)行Python的詳細(xì)過(guò)程
這篇文章主要介紹了使用Termux在手機(jī)上運(yùn)行Python的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10python列表插入append(), extend(), insert()用法詳解
在本篇文章里小編給大家整理了關(guān)于python列表插入append(), extend(), insert()用法以及相關(guān)知識(shí)點(diǎn),有需要的朋友們參考下。2019-09-09PyCharm活動(dòng)模板設(shè)置步驟實(shí)現(xiàn)
很多情況,我們?cè)趯懘a都會(huì)存在經(jīng)常要寫一些簡(jiǎn)單且又重復(fù)的代碼,Pycharm中的活動(dòng)模板可以把這些使用頻率很高的一些代碼打包起來(lái)設(shè)置一個(gè)快捷鍵,本文就來(lái)介紹一下如何實(shí)現(xiàn)2023-12-12Python使用正則實(shí)現(xiàn)計(jì)算字符串算式
這篇文章主要介紹了Python使用正則實(shí)現(xiàn)計(jì)算字符串算式的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12Python編程快速上手——Excel表格創(chuàng)建乘法表案例分析
這篇文章主要介紹了Python Excel表格創(chuàng)建乘法表,結(jié)合具體實(shí)例形式分析了Python接受cmd命令操作Excel文件創(chuàng)建乘法表相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-02-02Python shutil模塊實(shí)現(xiàn)文件的裁剪、壓縮與解壓縮的方法
這篇文章主要介紹了Python shutil模塊實(shí)現(xiàn)文件的裁剪、壓縮與解壓縮的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01Python SQLAlchemy基本操作和常用技巧(包含大量實(shí)例,非常好)
這篇文章主要介紹了Python的ORM框架SQLAlchemy基本操作和常用技巧,包含大量實(shí)例,非常好的一個(gè)學(xué)習(xí)SQLAlchemy的教程,需要的朋友可以參考下2014-05-05Python編程中Python與GIL互斥鎖關(guān)系作用分析
GIL互斥鎖用來(lái)保護(hù)Python世界里的對(duì)象,防止同一時(shí)刻多個(gè)線程執(zhí)行Python字節(jié)碼,確保線程安全,但也導(dǎo)致Python線程無(wú)法利用多核CPU優(yōu)勢(shì),本文來(lái)探討Python將來(lái)是否有可能去除GIL2021-09-09Python使用爬蟲爬取貴陽(yáng)房?jī)r(jià)的方法詳解
這篇文章主要為大家詳細(xì)介紹了Python爬蟲爬取貴陽(yáng)房?jī)r(jià)的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02