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

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

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

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 号主还是希望大家动手用代码试一下,自己实现出来,真的是飞一般的感觉!

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

  1. 什么?女神发了朋友圈,快来围观之Java设计模式:观察者模式

    目录 观察者模式 示例 定义 设计原则 意图 主要解决问题 何时使用 优缺点 女神和追求者的故事 Java中的实现 观察者模式 示例 微信公众号,关注就可以收到推送的消息,取消关注就不会收到 定义 定 ...

  2. 【人类观察所】"当代人"正经历的生活

    一."即时满足"的互联网 "轻微烦躁,偶尔自燃,当代生活多数时刻的心情基调." 如果你出生于上个世纪,应该能明白木心的<从前慢>里的 「从前的日色变 ...

  3. 谁说程序员没有时间关心女朋友的,Python 教你如何掌握女神情绪变化

    很多人都是在朋友圈装死,微博上蹦迪.微信朋友圈已经不是一个可以随意发表心情的地方了,微博才是! 所以你不要傻傻盯着女神的朋友圈发呆啦!本文教你如何用 Python 自动通知女神微博情绪变化,从今天开始 ...

  4. Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神!

    封面:洛小汐 作者:潘潘 2021年,仰望天空,脚踏实地. 这算是春节后首篇 Mybatis 文了~ 跨了个年感觉写了有半个世纪 ... 借着女神节 ヾ(◍°∇°◍)ノ゙ 提前祝男神女神们越靓越富越嗨 ...

  5. Smart3D系列教程2之 《为什么三维重建效果这么差?——探探那些被忽略的拍照要求和技巧》

    一.照片采集的实用概念 根据照片进行三维重建的过程中,有人没怎么遇到坑,有人被坑的不轻.可能是模型的纹理失真,模型的法线错了,模型会生成我们各种也想不到的结果,那么,是什么导致三维重建效果这么差的?是 ...

  6. 你听说过哪些坑人 or 赚钱的歪点子?真是骗局太多,傻子都不够用啊!

    又到了骗术揭秘时间了.各位看客您扶稳做好了,来给你深扒一些行业内幕了. 或者说一些投机的思路. 先提前写一些字,相信你们一会评论时候会用的上.直接复制,比较省力. “这年头傻逼太多,骗子明显不够用啊. ...

  7. [No00004E]千万不要“拼命”工作——写在滴滴总裁柳青患癌症之后

    滴滴快的总裁柳青发内部信,透露自己检查出乳腺癌,她今年才37岁. 9月30日,就是国庆前一天,柳青发了内部信,透露了这个消息,她也说已经做完肿瘤摘除手术,"目前感觉还挺好的".她也 ...

  8. 通通制作Html5小游戏——第二弹(仿flappy bird像素鸟)

    亲爱的博友们,我又回来啦~因为我们技术宅的思想只有技术宅懂得,好不容易写了点好玩的东西发QQ空间,结果只有11的UV,0回复....10分钟ps一个女神的素描效果发QQ空间朋友圈,一大堆回复加赞,作为 ...

  9. 在线体验K2 BPM微信审批

    “微信审批”在江湖中传言已久,但很多人依然“只闻其声,未见其人”,这传说中的手感到底有多好?今天,我们就一起来揭开它的真面目吧. 故事发生在上周六傍晚,我接到了加班电话. 晚上21:30终于加完班了, ...

随机推荐

  1. Spark 写 Hive table 非常慢【解决】

    代码如下: dataFrame.createOrReplaceTempView("view_page_utm") val sql = s""" |in ...

  2. centos7搭建svn服务器及客户端设置

    centos7搭建svn服务器及客户端设置 centos7貌似预装了svn服务(有待确认),因此我们直接启动该服务即可 一.svn服务端配置(服务器IP假设为192.168.100.1) 步骤1:创建 ...

  3. Ideone:在线多语言编程执行器工具

    Ideone:在线多语言编程执行器工具此网站提供40种编程语言以上, 能在线直接做编译和执行的动作,该工具是一款简易的编程测试工具,虽然不能替代专业版的工具,但是其功能非常全面. Ideone,一款在 ...

  4. 学习打卡8:循环语句for、while

    流程图: /*循环结构的基本组成部分,一般可以分成四部分:1.初始化语句:在循环开始最初执行,而且只做唯一一次.2.条件判断:如果成立,则循环继续:如果不成立,则循环退出.3.循环体:重复要做的内容, ...

  5. python绘制WordCloud词云图

    目录 前言 核心代码 测试 前言 当我们想快速了解书籍.小说.电影剧本中的内容时,可以绘制 WordCloud 词云图,显示主要的关键词(高频词),可以非常直观地看到结果 核心代码 from word ...

  6. sklearn中的多项式回归算法

    sklearn中的多项式回归算法 1.多项式回归法多项式回归的思路和线性回归的思路以及优化算法是一致的,它是在线性回归的基础上在原来的数据集维度特征上增加一些另外的多项式特征,使得原始数据集的维度增加 ...

  7. STL访问Map问题,key为Integer或Long

    参考stackoverflows上的这篇文章 http://stackoverflow.com/questions/924451/jstl-access-a-map-value-by-key 换成 原 ...

  8. js 转换时间戳为时间格式并且按指定格式输出

    /** * 时间戳转换为日期 */ function convertTimestamp(timestamp){ // 时间戳转换为日期 var d = new Date(timestamp); // ...

  9. poj 2576 Tug of War

    还是神奇的随机算法,,(看视频说这是爬山法??) 其实就是把序列随机分成两半(我太弱,只知道random_shuffle),然后再每个序列里rand一个位置,x,y然后比较是不是交换之后是更优的. 然 ...

  10. R 《回归分析与线性统计模型》page141,5.2

    rm(list = ls()) library(car) library(MASS) library(openxlsx) A = read.xlsx("data141.xlsx") ...