你有一張很棒的自己的照片,并想將其用于你的社交媒體資料,但背景讓人分心。而另一張圖片為你的個人資料圖片提供了完美的背景。你如何將兩者結合起來?一些智能手機應用可以進行這種照片處理,但價格太貴或充斥著廣告軟件。而且它們不是開源的。
Rembg 正適合于此。
Rembg 是用 Python/ target=_blank class=infotextkey>Python 編寫的,因此請在你的計算機上安裝 Python 3。大多數 linux 發行版默認包含 Python 3。你可以使用這個簡單的命令檢查你的版本:
$ python3 --version
Rembg 至少需要 Python 3.7 且不高于 Python 3.11。就我而言,我安裝了 Python 3.10.6。
在 Linux 上安裝 Rembg
我在我的 Linux 筆記本電腦上創建了一個名為 PythonCoding
的目錄,然后創建了一個 Python 虛擬環境:
$ python3 -m venv /home/don/PythonCoding
接下來,我使用 pip
安裝 rembg
:
$ python3 -m pip install rembg
合并圖像
是時候施展魔法了。首先,我選擇了 2019 年在 All Things Open 拍攝的照片。
Don Watkins at All Things Open conference
為了方便起見,我運行了以下 rembg
命令以使用較短的文件名重命名它:
$ rembg i dgw_ato.jpeg dgw_noback.jpg
第一次運行 rembg
時,它會下載一個開源 模式識別模型。這可能超過 100 MB,并且 rembg
將它保存到 ~/.u.NET/u2net.onnx
的用戶目錄中。該模型是 U-2-Net,并使用 Apache 2.0 許可證。有關模式識別模型的更多信息(包括如何訓練你自己的模型),請閱讀 Rembg 文檔。
它在大約十秒鐘內創建了我沒有背景的新照片。我有一個帶有 16 GB 內存的 Ryzen 7。你的體驗可能因硬件而異。
A processed image of Don Watkins, with the background removed by Rembg.
過去我曾使用 GIMP 刪除背景,但 rembg
比我使用 GIMP 時更快更徹底。
這就是刪除背景的全部內容。如果添加一個新的呢?
添加新背景
接下來,我想給圖片添加一個新的背景。有不同的方法可以做到這一點。例如,你可以使用 ImageMagick 組合圖像,但獲得正確的幀大小可能很復雜。最簡單的方法是使用 GIMP 或 Krita。
我使用 GIMP。首先,打開新創建的圖像(在我的例子中是 ato_image.jpg
)。現在轉到 “文件File” 菜單并選擇 “打開為圖層Open as layers”。選擇不同的背景圖像。此圖像作為現有照片的疊加層打開。
我想將新背景移到我的肖像下方。在 GIMP 窗口的右側有兩個縮略圖,每個圖像層一個。背景層在上面。我將背景層拖到肖像圖像下方,結果如下:
Don Watkins with a new background.
這對我的個人資料照片來說是一個更好的設置!
嘗試 Rembg
Rembg 有三個子命令,你可以在 --help
菜單中查看:
$ rembg --help
他們是:
rembg i
用于文件rembg p
用于文件夾rembg s
用于 HTTP 服務器
Rembg 使用 MIT 許可證發布。下次你需要從圖像中刪除背景時試試看。
(題圖:MJ/blur background image lens in high resolution, very detailed, 8k)