Linux中國

使用 Linux 命令從圖像中刪除背景

Python 的力量使 Linux 上的圖像編輯變得簡單。

你有一張很棒的自己的照片,並想將其用於你的社交媒體資料,但背景讓人分心。而另一張圖片為你的個人資料圖片提供了完美的背景。你如何將兩者結合起來?一些智能手機應用可以進行這種照片處理,但價格太貴或充斥著廣告軟體。而且它們不是開源的。

Rembg 正適合於此。

Rembg 是用 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 將它保存到 ~/.u2net/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)

via: https://opensource.com/article/23/4/image-editing-linux-python

作者:Don Watkins 選題:lkxed 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國