分享

github上又出新项目了,可以轻松完成一键抠图!

 Python集中营 2022-10-26 发布于甘肃

抠图无疑是在图片处理上面一个非常强大的存在,相信在很多的图片处理软件工具中都支持了这样的基本功能,如今也有大佬使用 python 的方式做出了这样的抠图功能。

优点是既然使用编程语言能够处理,那肯定也就能完成批量处理的操作。

缺点是只能把背景图片去掉,抠出来主要的图片内容,那抠出来的是否是我们真正需要的还有待商榷。

这个抠图工具被命名为rembg,目前使用的方式也比较多,能够支持命令行一行命令直接完成抠图。

并且可以以服务的方式进行启动,在浏览器中的操作页面上完成抠图操作,还有一种就是在开发工具中编写代码块的方式。

由于rembg分别支持了CPU和GPU的两种方式,可以选择安装支持CPU或者支持GPU的rembg非标准库。

具体根据自己的电脑配置进行选择,这里我们选择使用Web服务的方式直接来进行操作。

# Installing the rembg package with the gpu extra.
pip install rembg[gpu]

# Installing the rembg package.
pip install rembg

注意:在windows7操作系统中安装会出来问题服务跑不起来,windows10系统中直接安装完成后使用下面的命令直接在控制台启动服务。

rembg s

启动完成之后在浏览器中输入http://localhost:5000/docs可以直接进入Web访问,注意这个地址不是自动打开的,需要在浏览器中输入。

界面操作有点像Swagger UI的界面风格,get方式适用于网上的URL地址,post方式适合文件流,这里我们使用post的方式。

选择需要抠图的图片进行上传,上传完成之后直接execute运行即可,完成后返回抠图完成之后的结果,并且可以将抠出来的图片直接下载保存。

在访问web服务的过程中可以会出现drive.google.com无法访问的问题导致请求超时,请查看浏览器是否设置了代理,如果设置了关闭即可。

requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='drive.google.com', port=443):

Max retries exceeded with url: /uc?id=1tCU5MM1LhRgGou5OpmpjBQbSrYIUoYab (Caused by ConnectTimeoutError

(<urllib3.connection.HTTPSConnection object at 0x000001E8407A0340>, 'Connection to drive.google.com timed out.

(connect timeout=None)'
))

还有另外一种解决方式就是将下载后的u2net保存到前用户目录的.u2net\u2net文件中,下载地址贴在下面。

https://docs.google.com/uc?export=download&id=1ao1ovG1Qtx4b7EoskHXmi2E9rp5CHLcZ

「Python 集中营」,只做知识分享 !

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多