別再自己摳圖了,Python用5行程式碼實現批量摳圖
前言
對於會PhotoShop的人來說,摳圖是非常簡單的操作了,有時候幾秒鐘就能扣好一張圖。不過一些比較複雜的圖,有時候還是要畫點時間的,今天就給大家帶了一個非常快速簡單的辦法,用Python來批量摳取人像。
效果展示
開始吧,我也不看好什麼自動摳圖,總覺得不夠精確,摳不出滿意的圖。下面我就直接展示一下效果圖吧。我們先看看原圖
這張圖片背景未純色,我們平時用PhotoShop摳起來也比較簡單,對我們計算機來說也不是什麼難題,下面是效果圖:
因為本身是PNG圖片,而且原圖是白色背景,所以看不出什麼區別。為了顯示效果,我把原圖和摳好的圖放到一張黃色背景圖片上:
這樣一看效果明顯多了,感覺摳圖效果還是非常好的。但是吧,摳這種簡單的圖片,不怎麼過癮,我們再來看看複雜一點的圖片:
這張圖片背景色比之前複雜一些,而且有漸變,我們來看看摳圖後的效果如何:
這個原圖背景不是白色,我就不弄黃色背景了,趕緊這個效果也還算滿意,那麼多人物的圖片呢,我們再看看下面這張圖片:
這裡有三個人,我們看看程式能不能自動摳出來:
雖然是有點瑕疵,不過還是很不錯了,下面我們看看最後一個例子:
這個就比前面的都複雜的多,那麼效果如何呢,我們來看看:
哈哈,不僅識別出了人,還把火炬識別出來並摳了出來。總的來說,在完成人物摳圖方面還是沒有什麼問題的。
環境
看完效果,那麼應該怎麼實現呢?這就需要用到paddlepaddle了,那paddlepaddle是什麼呢?paddlepaddle是一個開源的深度學習工具,我們使用該工具可以僅用十幾行程式碼實現遷移學習。在使用之前,我們先來安裝paddlepaddle,我們可以進入官網https://www.paddlepaddle.org.cn/,官網上用安裝指引。為了方便,這裡直接使用pip安裝CPU版本的。
我們執行下列語句:
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
安裝完成後我們可以在環境中測試一下是否成功。我這裡使用命令列視窗,先執行python.exe(前提是你已經配置了環境變數)
C:\Users\zaxwz>python
然後在程式中執行如下程式碼:
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import paddle.fluid
>>> paddle.fluid.install_check.run_check()
如果控制檯顯示Your Paddle is installed successfully! Let’s start deep Learning with Paddle now就代表我們已經安裝成功了。另外我們還需要安裝paddlehub:
pip install -i https://mirror.baidu.com/pypi/simple paddlehub
下面我們就可以開始寫程式碼了。
實現摳圖
實現摳圖的程式碼很簡單,大概分為下面幾個步驟:
- 匯入模組
- 載入模型
- 獲取檔案列表
- 摳圖
實現起來沒有什麼難度,為了方便讀程式碼,我將程式碼寫清楚一點:
# 1、匯入模組
import os
import paddlehub as hub
# 2、載入模型
humanseg = hub.Module(name='deeplabv3p_xception65_humanseg')
# 3、獲取檔案列表
# 圖片檔案的目錄
path = 'D:/CodeField/Workplace/PythonWorkplace/PillowTest/11_yellow/img/'
# 獲取目錄下的檔案
files = os.listdir(path)
# 用來裝圖片的
imgs = []
# 拼接圖片路徑
for i in files:
imgs.append(path + i)
#摳圖
results = humanseg.segmentation(data={'image':imgs})
我們在控制檯執行一下這個程式:
D:\CodeField\Workplace\PythonWorkplace\PillowTest\11_yellow>python 摳圖.py
[2020-03-10 21:42:34,587] [ INFO] - Installing deeplabv3p_xception65_humanseg module
[2020-03-10 21:42:34,605] [ INFO] - Module deeplabv3p_xception65_humanseg already installed in C:\Users\zaxwz\.paddlehub\modules\deeplabv3p_xception65_humanseg
[2020-03-10 21:42:35,472] [ INFO] - 0 pretrained paramaters loaded by PaddleHub
執行完成後,我們可以在專案下看到humanseg_output目錄,摳好的圖片就會存放在該目錄下。當然了,上面的程式碼我們在獲取檔案列表的操作還可以簡化一下:
import os, paddlehub as hub
humanseg = hub.Module(name='deeplabv3p_xception65_humanseg') # 載入模型
path = 'D:/CodeField/Workplace/PythonWorkplace/PillowTest/11_yellow/img/' # 檔案目錄
files = [path + i for i in os.listdir(path)] # 獲取檔案列表
results = humanseg.segmentation(data={'image':files}) # 摳圖
最後送大家一套2020最有趣的Pyhon專案實戰視訊教程,地址https://docs.qq.com/doc/DVFlFQW5HTVZPbnNN進去拿
相關文章
- 不用自己摳圖的主圖設計工具,免費幫你摳圖!
- 【Python案例】用某度AI介面實現摳圖並改圖片底色PythonAI
- Mac圖片摳圖軟體InPixio Photo Cutter輕鬆摳圖Mac
- 美顏SDK人像摳圖技術是什麼?人像摳圖技術是如何實現的?
- 如何實現一鍵線上自動摳圖?
- ps摳圖教程之半透明婚紗摳取
- 線上摳圖網站速摳圖sukoutu.com全面技術解析之canvas應用網站Canvas
- 美圖秀秀怎麼摳圖?美圖秀秀對圖片進行圓形摳圖的教程
- 摳圖大師TouchRetouch——MacwMac
- 電腦摳圖用什麼軟體
- 不會用Photoshop摳圖?Python助你一鍵“除”人!Python
- 圖片摳圖線上工具推薦
- PaddlePaddle : AI摳圖及圖片合成AI
- MacOS技巧|如何使用預覽摳圖?Mac
- JS逆向-摳程式碼的第二天【手把手學會摳程式碼】JS
- 電商圖片線上製作,可摳圖可寫文案
- python利用蒙版進行摳圖,背景透明和前景透明Python
- 讓摳圖變得很容易的Topaz ReMask 5REM
- 使用RMBG-1.4進行摳圖(背景移除)
- 求小姐姐摳圖竟遭白眼?痛定思痛,我決定用 Python 自力更生!Python
- 不懼繁雜背景,影片編輯服務一鍵實現人像摳圖
- 智慧摳圖+海量模板=輕鬆搞定主圖設計的工具!
- 不止remove.bg,國內摳圖開放平臺實測REM
- canvas畫素點操作 —— 視訊綠幕摳圖Canvas
- ps教程之使用通道摳圖換背景色
- 線上PS入門教程:如何對人像快速摳圖
- 摳圖軟體:Super PhotoCut Pro for Mac 中文版Mac
- 6個摳圖網站,工作效率嘎嘎快網站
- 不會用Photoshop摳圖?Mask R-CNN助你一鍵“除”人CNN
- 聊聊人像摳圖背後的演算法技術演算法
- mac摳圖軟體推薦:Topaz Mask AI mac版MacAI
- 照片處理工具有什麼呢,怎麼摳圖
- 偷個懶,公號摳腚早報80%自動化——1.批量生成微信封面圖
- 美顏SDK的背景摳圖技術您瞭解嗎?
- 強大且免費的摳圖網站(強烈安利!)網站
- iOS-摳圖:去除圖片中指定範圍顏色的三種方式iOS
- MyBatis摳細節MyBatis
- Super PhotoCut for Mac(超級摳圖工具) v2.8.2中文啟用版Mac