百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

使用Python AI轻松编辑背景(python ai教程)

off999 2024-10-31 14:01 21 浏览 0 评论

你有一张自己很喜欢的照片,但你注意到周围图像的背景在照片上产生了抑制效果。你觉得如果背景不存在,或者通过在特定图像中保留你的照片并稍作修改,将会得到一张高质量的人像照片。

执行以下操作的许多方式之一包括支付相当高的费用购买软件或聘请专业人员完成项目。还可能有一些显著的免费资源,但它们的可靠性或效率在某些限制下可能令人质疑。

与解决这些问题的麻烦相比,设计自己的签名方法来处理此任务难道不是很酷吗?

借助Python,可以轻松完成以下项目。通过更好地理解计算机视觉和人工智能,可以显著提高从图像中去除背景的性能和质量。在本文中,我们的主要目标是去除不必要的背景并保留所需的图像。

对于计算机视觉项目的初学者,我强烈推荐阅读我之前的一篇文章,该文章是OpenCV计算机视觉库基础知识的详细指南。以下是方便访问的链接。

https://towardsdatascience.com/opencv-complete-beginners-guide-to-master-the-basics-of-computer-vision-with-code-4a1cd0c687f9


用几行Python代码去除背景:

在本文的这一部分,我们将专注于使用Python去除特定图像的背景。对于这个特定项目,版本要求高于Python 3.7且低于当前的Python 3.11。我们将使用的库在版本3.7或更低版本上无法正常运行。

根据我的测试,由于适当的scipy模块版本无法下载,rembg库在Python 3.7版本上无法工作。然而,在Python 3.9上,我在执行本文中的程序时完全没有问题,只需使用以下pip install命令。

pip install rembg

rembg库是通过深度神经网络开发的,主要使用u2net架构来处理去除背景的任务。有几种架构的修改和许多经过测试的方法可提供最佳结果。rembg库还提供了对GPU安装的访问,以实现更快的处理。有关更多信息和对该库的理解,我强烈建议查看以下链接的官方GitHub存储库。

现在,我们已经对用于背景去除项目的库有了简要了解,是时候导入此项目所需的两个基本库了。如前所述,rembg库是我们使此任务变得简单和直接的首选。更高级的开发人员可以为项目创建自己的神经网络。

我们将使用的另一个重要库是Pillow库,它是处理图像相关任务的最佳库之一。此库通常已在Python中默认安装。如果没有,可以使用简单的pip安装命令进行安装。以下是代码片段中提到的必要库。

# Importing the necessary libraries
from rembg import remove
from PIL import Image

一旦导入了所需的库,下一步是指定要去除背景的图像的输入路径。我们还将指定输出路径在工作目录中,标题为“Image.png”,以存储没有背景的透明图像。读者可以选择任何其他文件名和格式。

# Specifying the working paths
input_path = "Dog.jpg"
out_path = "Image.png"

对于最终的去除背景过程,我们将使用pillow库打开具有指定输入路径的输入图像。然后,我们将使用rembg库的remove功能从相应图像中消除整体背景,仅保留狗这个主要焦点实体的图像。

透明背景与狗的图像然后保存在工作目录中。执行以下操作的代码片段如下所示。

# Removing the background and saving the image
input = Image.open(input_path)
remove_bgnd = remove(input)
remove_bgnd.save(out_path)

成功编译上述程序后,将生成狗的以下透明图像。

一旦我们有了狗的透明图像,我们可以继续文章的下一部分,根据需要更改并应用新的背景。读者可以根据自己的选择选择任何理想的背景,只要图像的大小相同。让我们在下一节中进一步探讨这个主题!


更改背景:

一旦我们完成了去除背景的工作,更加好奇的开发人员可能会想知道如何处理先前获得的透明图像。对于这一步,我们将遵循类似且相对简单的过程。我们将透明狗图像与上面的背景相结合。请注意,可以为此任务使用任何选择的背景。我们将用于此任务的唯一库要求是pillow库,用于在透明图像和上面图像中进行操作。

# Import the pillow library
from PIL import Image

在下一步中,我们将打开用于此背景编辑项目所需的两个图像。我们将首先打开透明的狗图像,然后是将要放置的新背景图像。以下是打开以下图像的代码片段。

# Opening the desired images
img1 = Image.open("Image.png")
img2 = Image.open("New_Bgnd.jpg")

一旦打开了这两个图像,确保所有图像的大小相同是至关重要的。如果两个图片的大小不匹配,将背景粘贴到透明的狗图像上的操作将无法正常工作。因此,验证图像大小并在需要时适当调整大小是必要的步骤。

对于按步骤跟随此指南的观众,如果您已单击提供的图像并将它们下载到您的工作目录,则会注意到所有图像的大小都是880 x 557。如果图像的大小不匹配,请根据需要调整它们的大小。如下所示,可以验证图像大小。

# Verifying image sizes
print(img1.size)
print(img2.size)

最后,我们将使用Pillow库的paste命令将背景图像粘贴到透明图像上。第一个参数表示第一个图像(具有透明背景的狗),下一个属性是起始坐标,最后一个是关键参数,表示相应图像的掩码。

Alpha通道被用作掩码,允许用户将背景与透明狗图像合并。我们可以将新创建的图像保存在工作目录中。执行以下操作的代码如下所示。

# Effectively changing the background
img2.paste(img1, (0, 0), img1)
img2.show()
img2.save("New_Dog.png")

一旦我们完成了这个项目,我们应该能够生成以下图像。

通过这两步过程,我们成功地去除了以前的背景,提取了所需的实体,并将提取的透明背景的狗放入新的背景中。对于此指南的更高级变体,我建议尝试在单个项目中完成这两个任务。此指南可以过渡到视频和实时项目中进行背景更换,就像使用绿幕更换背景一样,根据用户的愿望进行操作。


结论:

拥有一张自己的精彩照片,却不喜欢背景或想要在不同的氛围或地区看到自己,有时可能会成为一个问题。手动编辑背景可能会很繁琐,使用昂贵的软件进行编辑也可能不切实际。其他免费的背景去除选项的结果可能也不会产生最佳效果。然而,借助AI和Python,可以在几行简单的代码内完成此项目。

在本文中,我们了解了如何使用Python AI和几行代码去除、编辑和替换当前背景,使用你的照片或具有重要意义的图像。我们利用了Pillow和rembg库,有效地从原始图像中去除了离群值背景。一旦过滤了背景,我们可以通过使用原始图像及其相应的蒙版添加新的所需背景。

要对项目进行额外的改进,我强烈建议将此项目从图像扩展到视频甚至实时操作。对于高级学习,建议尝试学习并构建深度神经网络,从头开始执行去除背景的任务。

相关推荐

推荐一款Python的GUI可视化工具(python 可视化工具)

在Python基础语法学习完成后,进一步开发应用界面时,就需要涉及到GUI了,GUI全称是图形用户界面(GraphicalUserInterface,又称图形用户接口),采用图形方式显示的计算机操...

教你用Python绘制谷歌浏览器的3种图标

前两天在浏览matplotlib官方网站时,笔者无意中看到一个挺有意思的图片,就是用matplotlib制作的火狐浏览器的logo,也就是下面这个东东(网页地址是https://matplotlib....

小白学Python笔记:第二章 Python安装

Windows操作系统的python安装:Python提供Windows、Linux/UNIX、macOS及其他操作系统的安装包版本,结合自己的使用情况,此处仅记录windows操作系统的python...

Python程序开发之简单小程序实例(9)利用Canvas绘制图形和文字

Python程序开发之简单小程序实例(9)利用Canvas绘制图形和文字一、项目功能利用Tkinter组件中的Canvas绘制图形和文字。二、项目分析要在窗体中绘制图形和文字,需先导入Tkinter组...

一文吃透Python虚拟环境(python虚拟环境安装和配置)

摘要在Python开发中,虚拟环境是一种重要的工具,用于隔离不同项目的依赖关系和环境配置。本文将基于windows平台介绍四种常用的Python虚拟环境创建工具:venv、virtualenv、pip...

小白也可以玩的Python爬虫库,收藏一下

最近,微软开源了一个项目叫「playwright-python」,作为一个兴起项目,出现后受到了大家热烈的欢迎,那它到底是什么样的存在呢?今天为你介绍一下这个传说中的小白神器。Playwright是...

python环境安装+配置教程(python安装后怎么配置环境变量)

安装python双击以下软件:弹出一下窗口需选择一些特定的选项默认选项不需要更改,点击next勾选以上选项,点击install进度条安装完毕即可。到以下界面,证明安装成功。接下来安装库文件返回电脑桌面...

colorama,一个超好用的 Python 库!

大家好,今天为大家分享一个超好用的Python库-colorama。Github地址:https://github.com/tartley/coloramaPythoncolorama库是一...

python制作仪表盘图(python绘制仪表盘)

今天教大家用pyecharts画仪表盘仪表盘(Gauge)是一种拟物化的图表,刻度表示度量,指针表示维度,指针角度表示数值。仪表盘图表就像汽车的速度表一样,有一个圆形的表盘及相应的刻度,有一个指针...

总结90条写Python程序的建议(python写作)

  1.首先  建议1、理解Pythonic概念—-详见Python中的《Python之禅》  建议2、编写Pythonic代码  (1)避免不规范代码,比如只用大小写区分变量、使用容易...

[oeasy]python0137_相加运算_python之禅_import_this_显式转化

变量类型相加运算回忆上次内容上次讲了是从键盘输入变量input函数可以有提示字符串需要有具体的变量接收输入的字符串输入单个变量没有问题但是输入两个变量之后一相加就非常离谱添加图片注释,不超过1...

Python入门学习记录之一:变量(python中变量的规则)

写这个,主要是对自己学习python知识的一个总结,也是加深自己的印象。变量(英文:variable),也叫标识符。在python中,变量的命名规则有以下三点:>变量名只能包含字母、数字和下划线...

掌握Python的"魔法":特殊方法与属性完全指南

在Python的世界里,以双下划线开头和结尾的"魔法成员"(如__init__、__str__)是面向对象编程的核心。它们赋予开发者定制类行为的超能力,让自定义对象像内置类型一样优雅工...

11个Python技巧 不Pythonic 实用大于纯粹

虽然Python有一套强大的设计哲学(体现在“Python之禅”中),但总有一些情况需要我们“打破规则”来解决特定问题。这触及了Python哲学中一个非常核心的理念:“实用主义胜于纯粹主义”...

Python 从入门到精通 第三课 诗意的Python之禅

导言:Python之禅,英文名是TheZenOfPython。最早由TimPeters在Python邮件列表中发表,它包含了影响Python编程语言设计的20条软件编写原则。它作为复活节彩蛋...

取消回复欢迎 发表评论: