你有一张很棒的自拍照,想用它作为你的社交媒体头像,但背景太分散注意力。另一张照片有一个完美的背景适合你的头像。你如何将两者结合起来?有些智能手机应用程序可以进行这种照片处理,但价格昂贵或充斥着广告软件。而且它们不是开源的。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, CC BY-SA 4.0)
我运行了以下 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。您的体验可能会因您的硬件而异。

(Don Watkins, CC BY-SA 4.0)
过去我曾使用 GIMP 来移除背景,但 rembg
比我使用 GIMP 的体验更快更彻底。
这就是移除背景的全部内容。那么添加新背景呢?
添加新背景
接下来,我想为图片添加一个新背景。有很多不同的方法可以做到这一点。例如,您可以使用 ImageMagick 合并图像,但要获得正确的帧大小可能会很复杂。最简单的方法是使用 GIMP 或 Krita。
我使用了 GIMP。首先,打开新创建的图像(在我的例子中是 ato_image.jpg
)。现在转到 文件 菜单并选择 作为图层打开。选择另一张图像作为背景。此图像将作为叠加层在现有照片之上打开。
我想将新背景移动到我的肖像下方。在 GIMP 窗口的右侧是两个缩略图,每个图像图层一个。背景图层在顶部。我将背景图层拖到我的肖像图像下方,这就是结果

(Don Watkins, CC BY-SA 4.0)
这对于我的头像来说是一个更好的设置!
试试 Rembg
Rembg 有三个子命令,您可以在 --help
菜单中查看
$ rembg --help
它们是
rembg i
用于文件rembg p
用于文件夹rembg s
用于 HTTP 服务器
Rembg 以 MIT 许可证发布。下次您需要从图像中移除背景时,请尝试一下。
3 条评论