別再用PS了,我用五行Python代碼就實現了批量摳圖

2020-12-14 飛槳深度學習學院

對於會PhotoShop的人來說,摳圖是非常簡單的操作了,有時候幾秒鐘就能扣好一張圖。不過對於一些比較複雜的圖,有時候還是需要花點時間的,今天就給大家帶了一個非常快速簡單的辦法,用Python來批量摳取人像。

效果展示

剛開始,我也不看好什麼自動摳圖,總覺得不夠精確,摳不出滿意的圖。下面我就直接展示一下效果圖吧。

我們先看看原圖 :

這張圖片背景是純色,我們平時用PhotoShop摳起來也比較簡單,對我們計算機來說也不是什麼難題,下面是效果圖:

因為本身是PNG圖片,而且原圖是白色背景,所以看不出什麼區別。為了顯示效果,我把原圖和摳好的圖放到一張黃色背景圖片上:

這樣一看效果明顯多了,感覺摳圖效果還是非常好的。但是,摳這種簡單的圖片,不怎麼過癮,我們再來看看複雜一點的圖片:

這張圖片背景色比之前複雜一些,而且有漸變,我們來看看摳圖後的效果如何:

這個原圖背景不是白色,我就不弄黃色背景了,感覺這個效果也還算滿意。

那麼,對於多人物的圖片,效果如何呢?我們再看看下面這張圖片:

這裡有三個人,我們看看程序能不能自動摳出來:

雖然是有點瑕疵,不過還是很不錯了。

下面我們看看最後一個例子:

這個比前面的圖都複雜的多,那麼效果如何呢,我們來看看:

哈哈,不僅識別出了人,還把火炬識別出來並摳了出來。總的來說,在完成人物摳圖方面是沒有什麼問題的。

這是如何實現的?

看完效果,你肯定想問這是如何實現的呢?這就需要用到飛槳了,飛槳是一個開源的深度學習平臺,使用其工具僅用十幾行代碼就能實現遷移學習。

在使用之前,我們先來安裝飛槳,可以進入官網,按指引快速安裝:

https://www.paddlepaddle.org.cn/install/quick

為了方便,這裡直接使用pip安裝CPU版本的。我們執行下列語句:

python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

安裝完成後,可以在環境中測試一下是否成功。我這裡使用命令行窗口,先運行python.exe(前提是你已經配置了環境變量):

C:\Users\zaxwz>python

然後在程序中運行如下代碼:

importpaddle.fluidpaddle.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 osimport 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})

4、獲取文件列表

我們在控制臺運行一下這個程序:

python 摳圖.py

輸出:

運行完成後,我們可以在項目下看到humanseg_output目錄,摳好的圖片就會存放在該目錄下。當然了,上面的代碼我們在獲取文件列表的操作還可以簡化一下:

import os, paddlehub as hubhumanseg = 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}) # 摳圖

至此,我們就完成了5行代碼批量摳圖,感興趣的開發者趕緊上手試試吧!

飛槳官網:

https://www.paddlepaddle.org.cn/

PaddleHub平臺:

https://github.com/PaddlePaddle/PaddleHub

飛槳開源框架項目地址:

GitHub:https://github.com/PaddlePaddle/Paddle

Gitee: https://gitee.com/paddlepaddle/Paddle

如在使用過程中有問題,可加入飛槳官方QQ群進行交流:703252161

相關焦點

  • 真沒想到,Python還能實現5毛特效
    圖源 | 視覺中國Python牛已經不是一天兩天的事了,但是我開始也沒想到,Python能這麼牛。前段時間接觸了一個批量摳圖的模型庫,而後在一些視頻中找到靈感,覺得應該可以通過摳圖的方式,給視頻換一個不同的場景,於是就有了今天的文章。
  • 如何用ps摳人物頭髮絲!這樣的摳圖才是最乾淨的!
    打開ps軟體置入美女姐姐的照片,頭髮凌亂的讓我們稍微煩惱..沒關係讓我來幫你..要先複製一張美女姐姐的圖片哦。然後我們進入ps中的通道面板,複製顏色反差最大的藍色通道,只開啟複製通道的小眼睛。在ps上面菜單欄中找到圖像調整中的色階,也可以用快捷鍵ctrl+L調出色階,適度調整一下就可以了,然後點擊確定。
  • PS教程:九種摳圖方法,非常好用又高效(附PS教程)
    下面的9種方法是摳圖最基本的方法,能應對絕大部分的摳圖工作了。  1 、套索工具摳圖  ps套索工具有三種,分別是:套索工具、多邊形套索工具、磁性套索工具。運用這些工具我們可以非常快捷做出所需的不規則或多邊形選區,方便選取及扣取圖片中的實物。
  • python利用opencv實現證件照換底
    opencv今天就給大家介紹一下python利用opencv庫進行藍底換紅底或者白底照片的操作。它是一個跨平臺的計算機視覺庫,可以運行在不同作業系統上,它由一些列c函數和少量c++函數組成,並提供python,matlab等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。我們這裡用的opencv-python 就是opencv的python API接口。
  • PYTHON-1 根據excel中的url 批量下載圖片
    為了監督我的日常學習,並做點輸出(檢驗自己的學習程度),我又回來更新了!
  • 手機拍照自動摳圖、秒變PS素材:華人團隊技術實現一鍵「剪切現實」
    Diagne 將這套非常神奇的摳圖技術命名為 AR Cut & Paste(增強現實剪切粘貼)。目前針對 Photoshop 的支持已經開發出來了,不過他也表示其它軟體也是可以支持的。他也把 AR Cut & Paste 放到 GitHub 上開源了。從介紹和代碼中我們得以一窺,這麼有趣的技術,到底是怎麼實現的。
  • 不用PS 小白也能輕鬆搞定摳圖 免費智能批量在線摳圖教程 阿里出品!
    之前為小夥伴們分享過一個免費的在線摳圖工具,名叫「搞定摳圖」,使用非常簡單,相信用過的朋友不少。不過,這個在線工具前段時間開始收費,無法繼續免費使用。今天小編分享一款替代工具,支持免費智能批量摳圖,並且是阿里出品,穩定性更好!
  • Python 10 行以內代碼能有什麼高端操作?|原力計劃
    作者 | ZackSock來源 | CSDN博客Python憑藉其簡潔的代碼,贏得了許多開發者的喜愛。因此也就促使了更多開發者用Python開發新的模塊,從而形成良性循環,Python可以憑藉更加簡短的代碼實現許多有趣的操作。
  • ps怎麼摳圖到另一張圖上 ps怎麼摳圖換背景
    ps摳圖的方法有很多,根據不同圖片的樣式不同方法也有所區別,不是一種方法運用到所有圖片上的,所以今天小編今天給小夥伴們帶來5種經典的方法,大家可以根據自己需要摳圖的圖片的實際相似情況來選擇採取哪種方法,一篇文章5種方法是不是乾貨滿滿,趕快收藏一波吧。下面就跟著小編來一起學習ps怎麼摳圖到另一張圖上 ps怎麼摳圖換背景吧。
  • Python自動化用這些知識點就夠了!
    編程的基本概念,再去學其他的工具庫。你可以批量的用python生成word文件,推薦使用docx,不需要會太多。寫過一個發送郵件教程,親測可用:乾貨 | 解放雙手,用Python實現自動發送郵件看了其他很多教程都有各種各樣的問題,需要不斷改bug,所以這個大家先可以跑跑上面的代碼。
  • 實例15:用Python批量轉換doc文件為docx文件
    python提供了win32com模塊(應安裝pypiwin32模塊,win32com包含在其中,即使用命令"pip install pypiwin32"),其中的SaveAs方法可以代替人手批量將文件另存為我們需要的格式。首先,我們使用os模塊,獲取需要做「另存為」操作的文件所在路徑。
  • 摳圖怎麼摳 ps摳圖怎麼摳頭髮絲
    ps摳圖怎麼摳頭髮絲是我們經常會遇到的問題,PS中有很多選擇工具,如何挑選選擇工具,取決於選擇的對象,例如一個簡單的對象香蕉或者非常複雜的對象頭髮等。ps摳圖是圖像處理的重要基礎,初學者都覺得摳圖很麻煩,但是其實只要抓握住足夠的技巧,你會發現摳圖原來如此簡單。
  • 沒有ps基礎,教你用最快方法摳圖p圖
    許多玩攝影的朋友,後期離不開ps的微處理,還有設計師們需要做作品時,也依然用到ps,這就是它的強大之處。相信很多應屆生或者是需要入職的企業的人都會遇到這樣的問題,入職時需要提交一寸照片,有些企業硬性要求紅底圖或是藍底圖,但是自己留存有的照片基本都是白底圖或不是對應的底圖,這時候如果去相館重新拍照,一來浪費時間,二來也浪費資金。
  • 第46p,8行代碼,用Python批量重命名文件
    大家好,我是楊數Tos,這是《從零基礎到大神》系列課程的第46篇文章,第二階段的課程:Python基礎知識:小案例之用Python批量重命名文件。 學習本課程,建議先看一遍:【計算機基礎知識】課程。
  • 開發一個文章簡繁體轉化的小工具(附python代碼)
    會編程的人參照以往項目的風格,大家一定會知道,可以用編程實現批量處理。哪怕是一百萬篇文章,只要一份代碼就能輕鬆鬆搞定。我們來看看用到的核心python包,hanziconv安裝命令: pip install hanziconv調用示例:是的,三句命令,就能實現簡繁體互轉,非常簡單。
  • 如何用python寫遊戲腳本?
    很多人學習python,不知道從何學起。很多人學習python,掌握了基本語法過後,不知道在哪裡尋找案例上手。很多已經做案例的人,卻不知道如何去學習更加高深的知識。那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視頻教程,電子書籍,以及課程的原始碼!
  • 從PPT到Word,用Python輕鬆實現辦公自動化
    來源  | 早起Python(ID:zaoqi-python)在之前的自動化系列文章中,我們分別講過如何使用 Python 將 Word 中表格信息批量提取至
  • 一行代碼實現Python並行處理
    撇開技術上的問題,例如線程的實現和 GIL,我覺得錯誤的教學指導才是主要問題。常見的經典 Python 多線程、多進程教程多顯得偏"重"。而且往往隔靴搔癢,沒有深入探討日常工作中最有用的內容。我並不是說使用生產者/消費者模型處理多線程/多進程任務是錯誤的(事實上,這一模型自有其用武之地)。只是,處理日常腳本任務時我們可以使用更有效率的模型。問題在於…而且,你還需要在通道兩端都構建相應的方法來協助其工作(如果需想要進行雙向通信或是保存結果還需要再引入一個隊列)。
  • 實用小工具(python or php實現)
    那麼就需要藉助腳本去實現。既然有朋友想簡單的完成這個任務,那麼不如記錄下來,給需要的朋友提供方便。 下面我就分別使用python和php進行腳本的實現和操作,當然用其他語言都能實現,大家可根據對語言的熟悉程度進行自主選擇,如果有朋友還沒有達到編寫代碼的能力的話,那麼最起碼對語言環境的使用要會,只要達到這些,就可以完成如下工作。
  • PS教程:路徑摳圖摳選玉鐲子
    Photoshop中使用路徑摳圖,最常用的工具的就是使用鋼筆工具來摳圖。如果是單一路徑則不需要進行路徑運算。涉及到兩條以上路徑就需要用到路徑的加減交運算。具體的就是使用屬性欄上面最後四個選項,如下:1.添加到路徑區域:當有一個路徑區域存在的情況下,再畫一個路徑跟原來存大的路徑有一部分交叉在一起了,這時候兩個路徑就會沿著交叉的地方重合在一起