女神说不能每张照片P的一样,所以朋友圈开三天可见,用Python一步解决

大家好,我是小三十三,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...

一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:

是谁!是谁把我女朋友的照片放出来的!

awsl!太好看了叭...

等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!

叔叔婶婶能忍,隔壁老王的三姨妈的四表舅的远房表姐的同学的妹夫的还在喝奶的侄女都不能忍!

一键下载,一键甩图:

滚就滚,谁怕谁...

我,要靠自己!

经过我不懈的努力和本着不要脸的搜索精神,苦心人天不负,卧薪尝胆,三千越甲可吞吴,终于被我找到了...

Python 就可以解决!我决定,分享出来!以后再也不用求人抠图了!

0x00 前期准备

1 你需要知道一个网站:

https://www.remove.bg/

打开之后是这样的:

它推出了一个基于 Python、Ruby 和深度学习去除背景色的这么一个工具,它支持用 Python 调用其 API 接口,达成去除背景,留下前景主体的效果。

2 注册一个账号

想要获得 API,首先要有一个账户,账户的申请很简单,邮箱即可。

如果你嫌注册麻烦的话,可以私聊我,用我的 API。用 API 的话,每天只能处理 50 张图片,先到先得丫...

3 获取 API

登陆进去,第一步点击 'Tools & API',第二步点击 ‘API Docs’:

第三步点击 ‘Get API Key’:

第四步点击 ‘Show’,就出现自己的 API 啦:

0x01 正式抠图

1 下载模块

下载官网提供的 'removebg' 模块:

pip install removebg

2 三行代码实现抠图:

from removebg import RemoveBg
 
rmbg = RemoveBg('dhxxxxxxxxxxxxxxxx', 'error.log') # 第一个参数是 API,第二个参数是将错误输出到日志文件
rmbg.remove_background_from_img_file('girl.jpg') # 括号内是图片地址

图片输出为 'girl.jpg_no_bg.png',让我们来看看效果:

嘻嘻,效果很不错叭...

而且它还支持批量操作:

from removebg import RemoveBg
import os
 
rmbg = RemoveBg('dhxxxxxxxxxxxxxxxx', 'error.log') # 第一个参数是 API,第二个参数是将错误输出到日志文件
path = f'{os.getcwd()}/imgs' # 存储图片的文件夹位置
for img in os.listdir(path):
    rmbg.remove_background_from_img_file(f'{path}/{img}') # 括号内是图片地址

当然如果觉得写代码很麻烦的话,也可以直接在网站上操作,或者是下载它的客户端,这个是没有限制次数的!

比如在网站上,直接点击 'Upload Image' 即可操作:

或者下载客户端,支持 Windows/Mac/Linux:

虽然这种在网站直接操作或者下载客户端用起来更简单一些,但作为一个 Python 号主还是希望大家动手用代码试一下,自己实现出来,真的是飞一般的感觉!

看完有所收获?分享让更多人可以看到~谢谢啦

最后提醒一下,需要 API 的小伙伴可以转发此文后,私信我回复“API”即可免费获取

点击了解更多免费获取Python零基础入门爬虫进阶学习资料~~

了解更多

Image placeholder
xgg777
未设置
  15人点赞

没有讨论,发表一下自己的看法吧

推荐文章
史上第一张黑洞照片是用Python合成的?

这两天,史上第一张黑洞照片,在朋友圈和各大公众号疯传,希望你没有收到视觉中国的律师函。好了,言归正传。这个照片是怎么「拍到」的呢?其中一位研究人员(一个妹子,MIT 的博士,就是头图这位)就在 TED

“我怎么就被一张照片出卖了?”

上篇文章《21岁日本女星惨遭猥亵,只因自拍瞳孔倒影暴露住址? |一张照片是怎么出卖你的!》发出去之后,发现大家对这个事情比较感兴趣,决定再和大家多聊聊这个领域。还有读者朋友们给我说,为什么我拿到的图片

21岁日本女星惨遭猥亵,只因自拍瞳孔倒影暴露住址? | 一张照片是怎么出卖你的!

不管你是才男俊女还是相貌平平,在朋友圈中点赞最高的永远都是自拍照,特别是到了放假期间,通过朋友圈你可以感受全世界的爱。各位在各大社交网站晒图享受赞誉的同时,跟随着有一些风险也悄悄到来。前一段时间有一个

Python 教程-了解Python

什么是Python Python能干什么? 有什么特点? 什么是Python 官方介绍: Python是一个易于学习、功能强大的编程语言。它拥有高效高级的数据结构和一种简单有效的面向对象编程的

Python 教程-Python 安装

在Windows上安装 访问https://www.python.org/downloads/并下载最新版本。在撰写时当前最新是3.8。在安装的时候和其他软件一样,无脑式下一步。需要注意的是如果在W

Python入门教程_2. 使用 Python 解释器

2.1.调用解释器 Python解释器通常安装在目标机器上的/usr/local/bin/python3.7目录下;把/usr/local/bin目录放进你的Unixshell的搜索路径里,确保它可以

Python入门教程_3. Python 简介

在下面的例子中,输入和输出分别由大于号和句号提示符(>>>和...)标注:如果想重现这些例子,就要在解释器的提示符后,输入(提示符后面的)那些不包含提示符的代码行。需要注意的是在练习中遇到的从属提示符

Python入门教程_4. 深入 Python 流程控制

除了刚刚介绍的while语句,Python还有一些在其他语言中常见的控制流语句,并做了一些改动。 4.1.if语句 也许最著名的语句是if语句了。 例如: >>>x=int(input("Please

【python测试开发栈】帮你总结python random模块高频使用方法

随机数据在平时写python脚本时会经常被用到,比如随机生成0和1来控制逻辑、或者从列表中随机选择一个元素(其实抽奖程序也类似,就是从公司所有人中随机选择中奖用户)等等。这篇文章,就帮大家整理在pyt

流畅的Python读书笔记 --- 第一章 Python数据模型

近期开始读“流畅的Python”这本书,想把自己的读书笔记分享给大家,希望能帮到也对这本书感兴趣但是没时间看的各位。(文章中大部分的话和图片摘录总结自“流畅的Python”一书,以及python官方网

【python测试开发栈】帮你总结python time模块高频使用方法

在平时写python脚本时,时间是我们经常用到的数据,比如:时间戳、前端展示的对应格式的时间等,在python中主要有三个和时间处理相关的模块:time、datetime、calendar,这篇文章主

再见,2019!你好,2020!

今天,是2019年的最后一天。虽有不舍,但终归还是得说再见!明天又会翻开新一年的篇章,希望各位在新的一年都能升职加薪迎娶白富美,走上人生巅峰。19年某月某日突发奇想,想用公众号分享一下这些年学到的技术

jquery可见性过滤选择器有哪些?

jQuery的可见性选择器是根据元素的可见和不可见状态来选择相对应的元素。主要有两个:过滤器名jQuery语法说明返回:hidden$(':hidden')选取所有不可见元素集合元素:visible$

比特币新手图文教程:一步一步教会你用比特币HD钱包,批量产生多个比特币地址和私钥

HD钱包可以快速方便的生成多个比特币地址,并且不需要备份对应的私钥。你只需要备份一个父私钥就可以把所有的私钥和地址全部恢复。比特币hd钱包解决了下面几个问题: 每次生成一个新地址都需要备份一遍私钥,操

使用phpStudy小皮面板,typecho的POST数据提交无反应问题

在安装typecho的过程中,遇到提交数据无反应,页面不报错的问题,十分迷惑。刚开始以为是centos系统文件夹权限问题,反复修改权限都无法解决问题。最后发现是,小皮面板默认开启的防火墙问题,直接关闭

张小龙:用停留时长衡量一个APP的好坏是错误的!

“这两年,业界目标变成所有APP应该尽可能多地去抓住用户的停留时长,这违背常识。一个用户每天的时间是有限的,技术的使命应该是帮助人类提高效率而不是降低效率。”这是张小龙在微信之夜上的一段讲话。1月9日

详解PHP的self关键字

PHP群里有人询问self关键字的用法,答案是比较明显的:静态成员函数内不能用this调用非成员函数,但可以用self调用静态成员函数/变量/常量;其他成员函数可以用self调用静态成员函数以及非静态

html和jsp的区别及优缺点

html和jsp的区别:●最简单的区别就是,HTML能直接打开,jsp只能发布到Tomact等服务器上才能打开●定义上HTML页面是静态页面可以直接运行,JSP页面是动态页它运行时需要转换成servl

知了 | 基于NLP的智能问答推荐系统

作者简介:苗贝贝  百度高级研发工程师负责百度智能运维客服平台ChatOps,在时序数据异常检测、文本模式识别、相似度网络等方向也有广泛的实践经验。干货概览通常,客服系统主要有两种应答模式:机器人自动

jquery easyui和bootstrap的区别是什么?

JQueryEasyUIJQueryEasyUI是一组基于jQuery的UI插件集合体,而jQueryEasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复

jquery中attr和prop的区别是什么?

在jQuery中,attr()函数和prop()函数都用于设置或获取指定的属性,它们的参数和用法也几乎完全相同。但不得不说的是,这两个函数的用处却并不相同。下面我们来详细介绍这两个函数之间的区别。jq

超8千Star,火遍Github的Python反直觉案例集!

大数据文摘授权转载作者:SatwikKansal译者:暮晨Python,是一个设计优美的解释型高级语言,它提供了很多能让程序员感到舒适的功能特性。但有的时候,Python的一些输出结果对于初学者来说似

面向回家编程!GitHub标星两万的”Python抢票教程”,我们先帮你跑了一遍

盼望着,盼望着,春节的脚步近了,然而,每年到这个时候,最难的,莫过于一张回家的火车票。据悉,今年春运期间,全国铁路发送旅客人次同比将增长8.0%。达到4.4亿人次,2020年铁路春运自1月10日开始,

Python 多个return值

多个return值 那如果你想从一个函数里返回两个变量而不是一个呢?新手们有若干种方法。最著名的方法,是使用global关键字。让我们看下这个没用的例子: defprofile(): globalna

python 处理多个异常

处理多个异常 我们可以使用三种方法来处理多个异常。 第一种方法需要把所有可能发生的异常放到一个元组里。像这样: try: file=open('test.txt','rb') except(IOErr