如何用python抠图和切换背景

这篇具有很好参考价值的文章主要介绍了如何用python抠图和切换背景。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原理:

python的函数库Image是个非常强大的数据库,拥有很多处理图片的功能,像是P图软件一样。当我们想要实现把人P到另一张背景的操作时,我们就需要先把人给扣出来,再粘到背景上。抠图,我们需要先准备好绿色背景的图片。用Image里的convert函数把图片的RGB格式改为RGBA(A就是透明度参数),把偏绿色的像素点的透明度参数A赋值为0(即透明),就可以实现抠图的操作。再用paste函数把两张图片粘在一起即可。

 文章来源地址https://www.toymoban.com/news/detail-581809.html

具体操作:

第一步:准备好两张图片

        第一张(要扣的图,必须是绿色背景):

python抠图换背景,python,青少年编程,算法

 

        第二张(背景):

python抠图换背景,python,青少年编程,算法

 

第二步:

打开python编辑环境,我用的是Anacondo

 

第三步:

输入以下代码:

from PIL import Image  #引用PIL里的Image函数
kun=Image.open('kun.jpg') #获取图片'kun.jpg'
background=Image.open('background.jpeg') #获取图片'background.jpg'
kun=kun.convert('RGBA') #把图片格式转化为RGBA
w,h=kun.size  #取出图片大小参数
for x in range(0,w): #遍历图片的每一个像素点
    for y in range(0,h):
        r,g,b,a=kun.getpixel((x,y)) #取出每个像素点的颜色和透明度参数
        if (g+1)/(r+g+b+3)>0.4 and g>60: #如果像素点偏绿色
            a=0  #把像素点的透明度设为0,也就是完全透明
            kun.putpixel((x,y),(r,g,b,a))  #修改图片像素的参数
kun.save('kun.png') #把抠好的图保存为'kun.png'


background.paste(kun,(640,250),mask=kun.split()[3])  #把背景和图片粘贴在一起
background.save('final.jpg')  #保存为最后的图片

代码分两个部分,一个是抠图,一个是把背景和扣好的图粘在一起

抠完图的效果是这样的:

python抠图换背景,python,青少年编程,算法

 注意!保存格式一定要是png,png可以显示透明度,jpg格式是不能显示透明度的。

 

效果图:

python抠图换背景,python,青少年编程,算法

 

 

 

到了这里,关于如何用python抠图和切换背景的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2022.12 青少年软件编程(Python) 等级考试试卷(一级)

    2022年12月 青少年软件编程(Python) 等级考试试卷(一级) 分数: 100 题数: 37 一、 单选题(共 25 题, 共 50 分) 1. 关于Python语言的注释,以下选项中描述错误的是?( ) A.Python语言有两种注释方式:单行注释和多行注释 B.Python语言的单行注释以#开头 C.Python多行注释使用###来

    2024年02月11日
    浏览(31)
  • 2023年5月青少年软件编程(Python) 等级考试试卷(二级)

    青少年软件编程(Python) 等级考试试卷(二级) 一、 单选题(共 25 题, 共 50 分) 1.运行以下程序, 如果通过键盘先后输入的数是 1 和 3, 输出的结果是? ( ) a=int(input() ) b=int(input() ) if a b: a=b print(a) A.3 1 B.1 3 C.1 D.3 试题类型: 单选题 标准答案: D 试题难度: 一般 试题解

    2024年02月09日
    浏览(31)
  • 2023年5月青少年软件编程(Python) 等级考试试卷(四级)

    青少年软件编程(Python) 等级考试试卷(四级)2023.6 分数: 100 题数: 38 一、 单选题(共 25 题, 共 50 分) 1.下列程序段的运行结果是? ( ) def s(n): if n==0: return 1 else: return n +s(n-1) print(s(7)) A.29 B.27 C.1 D.0 试题类型: 单选题 标准答案: A 试题难度: 一般 试题解析: 递归公式

    2024年02月09日
    浏览(22)
  • 全国青少年电子信息智能创新大赛(决赛)python·模拟三卷,含答案解析

    全国青少年电子信息智能创新大赛(决赛) python ·模拟三卷 一、程序题 第一题: 描述 现有 n 个人依次围成一圈玩游戏,从第 1 个人开始报数,数到第 m 个人出局,然 后从出局的下一个人开始报数,数到第 m 个人又出局,...,如此反复到只剩下 最后一个是胜利者。设 n 个人

    2023年04月13日
    浏览(51)
  • 全国青少年电子信息智能创新大赛(决赛)python·模拟四卷,含答案解析

    目录 一、程序题 下载文档做题: 全国青少年电子信息智能创新大赛(决赛) python ·模拟四卷 一、程序题 第一题: 描述 科技小组分 2 个小队搜集到西红柿生长的数据信息。2 个小队将数据进行了从小 到大排序: a = [1,3,4,6,7,13,17,21] b = [2,5,6,8,10,12,14,16,18] 请明明将这 2 个小队的

    2023年04月10日
    浏览(24)
  • 全国青少年软件编程等级考试Python标准解读(1_6级)

    考核性质: 全国青少年软件编程等级考试标准(Python语言)由中国电子学会科普培训与应用推广中心和北京大学信息科学技术学院共同制定。由全国青少年电子信息科普创新联盟标准工作组开发,由中国电子学会普及工作委员会审核通过,适用于由中国电子学会举办的全国青

    2024年02月05日
    浏览(29)
  • 全国青少年电子信息智能创新大赛(决赛)python·模拟一卷,含答案解析

    全国青少年电子信息智能创新大赛(决赛)python·模拟一卷 程序题 第一题: 描述 给定一个整数 num,从 1 到 num 按照下面的规则返回每个数:如果这个数被 3 整除,返回,Apple’。如果这个数被 5 整除,返回,Pie\\\'。如果这个数能同时被 3 和 5 整除,返回,ApplePie\\\'。如果这个数既不能

    2023年04月09日
    浏览(27)
  • 2023年05月份青少年软件编程Python等级考试试卷三级真题(含答案)

    2023-05 Python三级真题 题数:38 分数:100 测试时长:60min 一、单选题(共25题,共50分) 1.  请选择,下面代码运行之后的结果是?( )(2分) a = \\\'2\\\' b = \\\'4\\\' try:     c = a * b     print(c) except:     print(\\\'程序出错!\\\') else:     print(\\\'程序正确!\\\') A.  24 B.  8 C.  程序出错! D.  程序正

    2024年02月12日
    浏览(35)
  • 2023年03月份青少年软件编程Python等级考试试卷三级真题(含答案)

    2023-03 Python三级真题 分数:100  题数:38 测试时长:60min 一、单选题(共25题,共50分) 1.十进制数111转换成二进制数是?( )(2分) A.111 B.1111011 C.101111 D.1101111 2.某班有36人,王老师想给每位同学分配一个二进制的学号,那么该学号至少需要多少位?( )(2分) A.36 B.5 C.6 D.

    2024年02月12日
    浏览(36)
  • 电子学会2023年3月青少年软件编程python等级考试试卷(五级)真题,含答案解析

            目录 一、单选题(共25题,共50分) 二、判断题(共10题,共20分) 三、编程题(共3题,共30分)

    2023年04月14日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包