范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

纯python抠图,用opencvPIL来实现,简单有效

  1 说明:
  =====
  1.1 抠图,我已经介绍过Remove.bg,依赖网络,需要API-key,一个账号只能50次使用,有限制。
  《Remove.bg:一款抠图神器介绍和python实现方法》。
  1.2 强大的万能的python行不行?当然,行!
  1.3 今天就用python+opencv+PIL来实现。
  以这张图来实现,图片来源今日头条免费正版图库
  2 准备:
  =====
  2.1 提前安装:python,opencv和PIL:此处省略。
  2.2 本机环境:
  华为笔记本电脑、深度deepin-linux操作系统、谷歌浏览器、python3.8和微软vscode编辑器。
  3 cv2koupic.py代码:import numpy as np import cv2 #定义全局变量 n = 0    #定义鼠标按下的次数 ix = 0   # x,y 坐标的临时存储 iy = 0 rect = (0,0,0,0) #初始化前景区域,此处需要鼠标获取 #图片出现时,先左上点击鼠标,不要放,然后右下,再点击鼠标(重点) #鼠标回调函数 def draw_rectangle(event,x,y,flags,param):     global n,ix,iy,rect     if event==cv2.EVENT_LBUTTONDOWN :         if n == 0:    #首次按下保存坐标值             n+=1             ix,iy = x,y         else:        #第二次按下显示矩形             n+=1             rect = (ix,iy,(x-ix),(y-iy))#第2次点击鼠标,获取前景区域         #读取图像 img = cv2.imread("/home/xgj/Desktop/koupic/koupic1.jpeg") mask = np.zeros(img.shape[:2],np.uint8)  # 创建大小相同的掩模 bgdModel = np.zeros((1,65),np.float64)  # 创建背景图像 fgdModel = np.zeros((1,65),np.float64)  # 创建前景图像 #选择区域 左上到右下矩形 cv2.namedWindow("img") cv2.setMouseCallback("img",draw_rectangle)#绑定鼠标 while(n != 2):     cv2.imshow("img",img)     cv2.waitKey(2) #前景提取 cv2.grabCut(img,mask,rect,bgdModel,fgdModel,5,cv2.GC_INIT_WITH_RECT)  #点击一下鼠标会报错 #mask中,值为2和0的统一转化为0, 1和3转化为1 mask2 = np.where((mask==2)|(mask==0),0,1).astype("uint8") #mask2 = np.where((mask == 2) | (mask == 0), 0, 1).astype(np.uint8) #等同上面 # np.newaxis 插入一个新维度,相当于将二维矩阵扩充为三维 img = img*mask2[:,:,np.newaxis] #显示图像 cv2.imshow("img",img) #保存图片:从0到9 压缩级别越高图像越小 cv2.imwrite("/home/xgj/Desktop/koupic/koupic2.png",img,[int(cv2.IMWRITE_PNG_COMPRESSION),9]) cv2.waitKey() cv2.destroyAllWindows()
  4 上述操作示意图:
  5 koupic2.png:
  6 测试一下:
  背景色还是黑色,不是特别好
  7 设置背景为透明:
  ==============
  7.1 PILbg0png.py代码:#PIL改为背景颜色为透明的,便于游戏中使用 import PIL.Image as Image # 以第一个像素为准,相同色改为透明 def transparent_back(img):   img = img.convert("RGBA")   L, H = img.size   color_0 = img.getpixel((0,0))   for h in range(H):     for l in range(L):       dot = (l,h)       color_1 = img.getpixel(dot)       if color_1 == color_0:         color_1 = color_1[:-1] + (0,)         img.putpixel(dot,color_1)   return img  if __name__ == "__main__":     img=Image.open("/home/xgj/Desktop/koupic/koupic2.png")     img=transparent_back(img)     img.save("/home/xgj/Desktop/koupic/koupic2new.png")
  7.2 koupic2new.png:
  7.3 桌面效果:背景是透明的。
  7.4 测试一下:
  完美!!
  8 结尾:
  =====
  8.1 测试游戏,暂时代码省略。
  8.2 cv2koupic.py生成抠图效果稍微失真,还有图koupic2.png有一支草花出现人像前,也还不错了。
  8.4 采用PIL保存为透明图,cv2法暂时无法设置背景色透明,还望大神指导。
  ===自己整理并分享出来===
  喜欢的人,请点赞、关注、评论、转发和收藏。

宝爸带娃棒棒哒之走吊桥今天和老公带二宝去游乐园玩,又一次感受到了爸爸妈妈带娃的不同。孩子玩了几处娱乐设施之后,看到了吊桥。吊桥离地面六七米高,桥面是宽约10厘米的木板,两边只有上下两根手指头粗细的钢丝。怀孕与上班有怀孕八个月,还在继续上班的吗怀孕与上班并不非得二选一,包括后期,根据自己的身体状况来呗,如果身体可以,上着班比呆在家里好,乍一听八个月了还在上班,好像虐待孕妇,可是你如果在家里呆2022年,能否扮演一个情绪稳定的成年人刚才又因为孩子该睡觉的时候不睡觉,调皮捣蛋的,冲着他发火了!天天学什么陪孩子终身成长,正面管教,告诉自己这是孩子的天性,男孩子都这样,但是遇上他淘气的时候,还是忍不住会发怒,有时候宝宝何时入园?入园季你准备好了吗?(二)感谢各位看官移步文章的第二部分情景摘要家有萌宝,即将入学,身为老父亲,格外担心。上一篇文章讲述了宝宝晚一年入学有何好处,晚一年入园有何坏处提前入园又有何影响,这篇我们就一起来探讨一带了会让宝宝变笨的银饰怎么办?最近老爸评测中,银饰含铅严重超标,轻则让宝宝变笨,重则引发疾病这一话题上了热搜榜,吓得我立刻脱下女儿带了五年的银手镯。银是白色金属,具有很好的延展性,导电性和传热性,关健银离子还能世界上最好的陪伴是彼此成全中回馈的安心快乐春日鉴片官世界上最好的陪伴是什么,不是大人送给孩子的玩偶布娃娃,不是积木拼图奥特曼,而是让孩子回归孩子们的世界互动成长。电影海蒂与爷爷中海蒂用爱的真情换回了爷爷的温情,用孩子质朴的为什么都说男孩开窍晚?怎样才能顺利开窍?父母要知道我们经常说男孩子成熟的晚,甚至还会叫二十五岁左右的男性大男孩,在学习上也是这样,在小学和初中阶段,往往成绩前几名的都是女孩子,直到初中后期甚至是高中时期,男孩子们会渐渐开窍,班级里我经历的奶粉骗局我这个人从不贪小利,从不相信天上掉馅饼,从不相信一夜暴富,所以一直没有上当受骗过,但是真的有一次差点上当受骗,幸好紧要关头我清醒了,现在我把这次经历写出来,警醒大家。生完二宝,我有为啥越来越多老人不催二胎,反而劝子女只要一个?老人也活明白了文小雪妈妈这些年二胎政策放开了,三胎政策也放开了,有些专家原以为二胎会井喷一样的出现,可现实是真正生二胎的家庭并没有预期想的那么多。于是有的人就疑惑了,为啥原来不让生的时候那么多人双胞胎一个给奶奶带,一个给姥姥带,五年后见差距,两种不同的好由于二胎政策的开放,使得很多家庭都希望生两个孩子。但生两个孩子之后,我们的生活就变得非常繁忙,因此我们根本就没有办法把所有的精力全部都投入到孩子的身上,所以我们就会让孩子的奶奶和孩儿童先天性白内障能治好吗,有何依据?侄女生下来没人察觉她的眼睛有问题。妹妹从小到大都挑食,以至于怀孕更吃不下东西。大部分都是吃素,以至于孕中期各种检查指标都不达标,严重贫血,到了怀孕七八个月的时候,医生建议输血。后来
隔夜气伤身又短寿,每次生气,你的身体都备受折磨劝人别生气,我们常说忍一时风平浪静,退一步海阔天空。但放到自己身上,常常会越忍让越生气,越回想越觉得亏了。甚至在网上,还有网友聚在一起成立吵架没发挥好小组,复盘每次吵架过程,争取下纵膈子宫可以治疗吗?如何进行治疗?王女士鼓起勇气再次走入医院的大门,这是结婚这几年来第不知道多少次走进医院了,她和丈夫想要一个宝宝已经三年了,三年内经历过3次自然流产,这一次真的要好好找找原因了。医生为王女士进行了去年体检,今年确诊尿毒症!全因没看懂那张检查报告单67岁的老陈,因腿脚水肿来医院就诊,化验结果显示血肌酐1000molL,血红蛋白73gL,尿检蛋白3隐血3。双肾超声提示双肾略小,被确诊为尿毒症。原来老陈去年的体检报告上明确写着血不仅仅是感冒,还有可能是病毒性心肌炎,到底怎么治?病毒感染既可以直接侵犯心肌,也可能通过免疫介导心肌炎症性损伤,心肌炎症所导致的临床表现差异很大。到目前为止,针对心肌炎的治疗尚没有统一的特异性的方法。现在的临床治疗方案主要还是基于从德尔塔到拉姆达,病毒变异根源是什么?能停下吗?短短一年多的时间,就从阿尔法发展到拉姆达,用来命名的24个希腊字母不知不觉都快用了一半,新冠病毒的变异速度令人诧舌。新冠病毒变种之快传染率之高,无疑给全球抗疫工作再次带来严重阻碍。喝水容易呛到?小心,可能是吞咽障碍,严重时或危及生命狼吞虎咽通常是说吃东西又猛又急。一般而言,是一种不太有礼貌的行为。但是在吞咽困难的人看来,狼吞虎咽却是一种可望不可及的梦想,因为进食对他们而言可谓是困难重重。吞咽是一种将口腔中咀嚼不存在抗癌食物!西蓝花大蒜秋葵洋葱有机食品统统都不是根据国际癌症研究机构调查研究,目前没有强有力证据可以证明,任何一种单一食物,可以帮助降低患癌症或其他慢性疾病的风险。西蓝花大蒜秋葵洋葱西红柿,统统都不行。不信?一条条来看。西蓝花抗唠一唠糖尿病患者的治疗及生活中的注意事项糖尿病症状可总结为三多一少,所谓三多是指多食多饮多尿,一少指体重减少。有以上症状的人,要去医院做一个详细的检查,如果确诊为糖尿病,要积极的治疗并配合医生,改变自己的生活方式,对于预一经发现就是晚期,胰腺癌的6个典型表现,提醒你别忽视胰腺癌位于上腹部深处,在腹膜后面,周围还生活着胃十二指肠等器官。因此,当胰腺被癌症侵袭时,初始症状之一是腹痛。只是腹痛的症状不明显,与胃痛高度相似,因此容易被忽视和误诊。胰腺癌的临慢性阻塞性肺病患者的吃穿住行道阻且长,长期规范管理是良策前面也讲过,慢性阻塞性肺病(简称慢阻肺)是无法完全根治的疾病,一旦诊断,基本上无法逆转。因此,大部分患者都无法摆脱这个疾病的缠扰,尤其是冬春季节,一旦感冒就会急性加重,而每次急性加认知障碍患者护理及康复面对失智,不再回避认知障碍是一种以认知功能缺损为核心症状的获得性智能损害综合征,认知损害可涉及记忆学习语言执行视空间等认知领域,其损害的程度足以干扰日常生活能力或社会职业功能,在病程某一阶段常伴有精