python浪漫代码_五行Python代码实现批量抠图
你是否曾經(jīng)想將某張照片中的人物摳出來,然后拼接到其他圖片上去,從而可以即使你在天涯海角,我也可以到此一游?專業(yè)點(diǎn)的人使用 PhotoShop 的“魔棒”工具可以摳圖,非專業(yè)人士可以使用各種美圖 APP 來實現(xiàn),但是他們畢竟處理能力有限,一次只能處理一張圖片,而且比較復(fù)雜的圖像可能耗時較久。今天我來向大家展示第三種途徑——用 Python 一鍵批量摳圖。
準(zhǔn)備工作
既然要裝逼,準(zhǔn)備工作是少不了的。所謂“站在巨人的肩膀上,做事事半功倍”,我們這里的“巨人”就是 paddlepaddle 了,中文名稱叫“飛槳”,那么這個 paddlepaddle 是什么呢?
它是“源于產(chǎn)業(yè)實踐的開源深度學(xué)習(xí)平臺,致力于讓深度學(xué)習(xí)技術(shù)的創(chuàng)新與應(yīng)用更簡單”,直白點(diǎn)就是我?guī)湍銓崿F(xiàn)了深度學(xué)習(xí)底層框架,你只要有創(chuàng)意就可以在我平臺上運(yùn)用少量簡單代碼輕松實現(xiàn)。它的官網(wǎng)是 https://www.paddlepaddle.org.cn/ 。
它的安裝也比較簡單,官網(wǎng)首頁就有安裝指引,我們這里根據(jù)官網(wǎng)的安裝指引,使用 pip 方式來安裝 CPU 版本。
我們首先執(zhí)行語句:
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
安裝成功后,我們在 python 環(huán)境中測試一下是否安裝成功(這個也是按照官網(wǎng)指引來做),我們切換到 python 環(huán)境,運(yùn)行如下代碼:
Python?3.7.0?(v3.7.0:1bf9cc5093,?Jun?26?2018,?23:26:24)?[Clang?6.0?(clang-600.0.57)]?on?darwin
Type?"help",?"copyright",?"credits"?or?"license"?for?more?information.>>>?import?paddle.fluid>>>?paddle.fluid.install_check.run_check()
Running?Verify?Paddle?Program?...?
Your?Paddle?works?well?on?SINGLE?GPU?or?CPU.
I0506?21:47:48.657404?2923565952?parallel_executor.cc:440]?The?Program?will?be?executed?on?CPU?using?ParallelExecutor,?2?cards?are?used,?so?2?programs?are?executed?in?parallel.
W0506?21:47:48.658407?2923565952?fuse_all_reduce_op_pass.cc:74]?Find?all_reduce?operators:?2.?To?make?the?speed?faster,?some?all_reduce?ops?are?fused?during?training,?after?fusion,?the?number?of?all_reduce?ops?is?1.
I0506?21:47:48.658516?2923565952?build_strategy.cc:365]?SeqOnlyAllReduceOps:0,?num_trainers:1
I0506?21:47:48.659137?2923565952?parallel_executor.cc:307]?Inplace?strategy?is?enabled,?when?build_strategy.enable_inplace?=?True
I0506?21:47:48.659595?2923565952?parallel_executor.cc:375]?Garbage?collection?strategy?is?enabled,?when?FLAGS_eager_delete_tensor_gb?=?0
Your?Paddle?works?well?on?MUTIPLE?GPU?or?CPU.
Your?Paddle?is?installed?successfully!?Let's?start?deep?Learning?with?Paddle?now
>>>?
看到 Your Paddle is installed successfully 就表示安裝成功了。
我們接下來需要使用的是這個平臺的 paddlehub 工具,所以我們還需要安裝 paddlehub :
pip install -i https://mirror.baidu.com/pypi/simple paddlehub
安裝完成后,我們就可以開始運(yùn)用了。
代碼實現(xiàn)
我們的實現(xiàn)步驟很簡單:導(dǎo)入模塊 -> 加載模型 -> 獲取圖片文件 -> 調(diào)用模塊摳圖。
下面我們看代碼實現(xiàn):
import?os,?paddlehub?as?hubhuseg?=?hub.Module(name='deeplabv3p_xception65_humanseg')?#?加載模型
path?=?'./imgs/'?#?文件目錄
files?=?[path?+?i?for?i?in?os.listdir(path)]?#?獲取文件列表
results?=?huseg.segmentation(data={'image':?files})?#?摳圖
我將圖片放在代碼文件夾的同級目錄 imgs 文件夾下,運(yùn)行代碼后,輸出的摳圖圖片會自動放在代碼同級目錄的 humanseg_output 目錄下,文件名稱跟原圖片的名稱相同,但是文件格式是 png 。
我在 imgs 目錄下放了5張圖片,為了便于展示,我將他們放在一起截圖:
原圖片運(yùn)行程序后,在 humanseg_output 目錄下生成了5張圖片,同樣的,我將他們放在一起截圖:
摳圖圖片我們可以看到程序?qū)⒚繌垐D片中的人物(可以是一個,也可以是多個)識別出來,并且摳出來成圖,背景是白色。雖然有些細(xì)節(jié)處還有些許瑕疵,但是看起來還算不錯。
總結(jié)
本文基于 paddlepaddle 平臺,使用簡單的五行代碼實現(xiàn)了批量摳圖,不僅解放了好多人的雙手和雙眼,而且為某些程序猿/程序媛的裝逼工具箱提供了一件寶器。下次如果碰到某個女生或者閨蜜在為摳圖發(fā)愁,別忘了掏出神器,贏得芳心哦!
作者 |?閑歡
來源:Python 技術(shù)「ID: pythonall」
推薦閱讀:
潘石屹首次Python考試成績 99 分,失分點(diǎn):畫完圖后忘了隱藏畫筆的箭頭
使用Python下載文件之最佳實踐
開源軟件原來都這樣命名的!Python最獨(dú)特,Debian最浪漫,PHP簡單粗暴......
總結(jié)
以上是生活随笔為你收集整理的python浪漫代码_五行Python代码实现批量抠图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息称苹果要在iPhone 14用打孔屏
- 下一篇: python功能选择模块_python