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

好!纯python的opencv的照片背景颜色更换探索

  1 说明:
  =====
  1.1 对照片进行背景颜色替换,用处比较多。目前用python和opencv来看看。
  1.2 纯python和opencv代码来试试看,一起探索和思考,提高自己的思维能力。
  蓝底原图:1111.jpeg
  参考文章1:https://blog.csdn.net/weixin_45192980/article/details/107724733?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.add_param_isCf
  2 bluetored:蓝底变红底
  ===================
  2.1 图片:上图来自今日头条图库:蓝底原图:1111.jpeg
  2.2 bluetored.py代码:import cv2 import numpy as np #读取蓝底原图 img=cv2.imread("/home/xgj/Desktop/pic-bg/1111.jpeg") #缩放 rows,cols,channels = img.shape img=cv2.resize(img,None,fx=0.5,fy=0.5) rows,cols,channels = img.shape cv2.imshow("img",img)  #显示蓝底原图 #转换hsv hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) lower_blue=np.array([90,70,70])  #提示蓝色底 upper_blue=np.array([110,255,255]) #提示蓝色底 mask = cv2.inRange(hsv, lower_blue, upper_blue) cv2.imshow("Mask", mask)  #显示mask掩膜图 #腐蚀膨胀 erode=cv2.erode(mask,None,iterations=1) cv2.imshow("erode",erode)  #显示erode图 dilate=cv2.dilate(erode,None,iterations=1) cv2.imshow("dilate",dilate)  #显示dilate图 #遍历替换 for i in range(rows):   for j in range(cols):     if dilate[i,j]==255:       img[i,j]=(0,0,255)#此处替换颜色,为BGR通道 cv2.imshow("res",img)  #显示背景颜色为红色的修改后的图片 cv2.waitKey(0) cv2.destroyAllWindows()
  2.3 效果图:
  3 whitetored:白底变红底
  ====================
  3.1 图片:来自今日头条图库
  白底原图:2222.jpeg
  3.2 效果图:
  有bug了
  3.3 whitetored.py代码:import cv2 import numpy as np #白底原图读取 img=cv2.imread("/home/xgj/Desktop/pic-bg/2222.jpeg") #缩放 rows,cols,channels = img.shape img=cv2.resize(img,None,fx=0.5,fy=0.5) rows,cols,channels = img.shape cv2.imshow("img",img) #转换hsv hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) lower_white = np.array([0, 0, 200])    #白底 upper_white = np.array([180, 40, 255]) #白底 #掩膜 mask = cv2.inRange(hsv, lower_white, upper_white) cv2.imshow("Mask", mask) #腐蚀膨胀 erode=cv2.erode(mask,None,iterations=1) cv2.imshow("erode",erode) dilate=cv2.dilate(erode,None,iterations=1) cv2.imshow("dilate",dilate) #遍历替换 for i in range(rows):   for j in range(cols):     if dilate[i,j]==255:       img[i,j]=(0,0,255)#此处替换颜色,为BGR通道,背景颜色为红底       #img[i,j]=(255,0,0)  #背景颜色为蓝底,假如白底变蓝底,附加 cv2.imshow("res",img) cv2.waitKey(0) cv2.destroyAllWindows()
  参考文章2:https://blog.csdn.net/shenglong456/article/details/71174175?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf
  4 greentocolor:绿色背景变色
  =======================
  4.1 图片:来自今日头条图库
  绿色背景图:ls.jpeg
  4.2 代码:import cv2 import numpy #绿色背景照片 img=cv2.imread("/home/xgj/Desktop/pic-bg/mask/ls.jpeg",1)   # opencv 将BGR 转换成 HSV imgHSV=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)  #遍历 for i in range(img.shape[0]):   for j in range(img.shape[1]): #判断是否绿色 50和75参数可以改变 应该不是最好     if imgHSV[i,j,0]<75 and imgHSV[i,j,0]>50:   #难点:判断背景颜色       #下面是可变背景颜色,附带几种,color       #img[i,j]=[255,255,255]   #变白色       #img[i,j]=[0,0,255]   #变红色       img[i,j]=[255,0,0]   #变蓝色  cv2.namedWindow("Image",cv2.WINDOW_NORMAL) cv2.imshow("Image",img) cv2.waitKey(0) cv2.destoryAllWindows()
  4.3 效果图:
  小bug
  ===以上都是单一背景颜色的改变===
  5 复杂背景的改色或改背景图片:
  =========================
  5.1 图片:来自今日头条图库
  bw1.jpeg
  5.2 先抠图,代码如下:交互式抠图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))#前景区域      #读取图像 img = cv2.imread("/home/xgj/Desktop/pic-bg/ppp/bw1.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) mask2 = np.where((mask==2)|(mask==0),0,1).astype("uint8") img = img*mask2[:,:,np.newaxis] #显示图像 cv2.imshow("img",img) #保存,抠图后的图片 cv2.imwrite("/home/xgj/Desktop/pic-bg/ppp/bw2.jpeg",img) cv2.waitKey() cv2.destroyAllWindows()
  5.3 操作如下图:
  上述得到的图:bw2.jpeg
  需要设置背景图片:back.jpeg
  5.4 更换背景图片:
  =============
  5.4.1 参考文章3:https://blog.csdn.net/haofan_/article/details/76687238
  5.4.2 代码:import cv2 import  numpy as np #人物图 img=cv2.imread("/home/xgj/Desktop/pic-bg/ppp/bw2.jpeg")  #需要更改成的背景图片 img_back=cv2.imread("/home/xgj/Desktop/pic-bg/ppp/back.jpeg") #日常缩放 rows,cols,channels = img_back.shape img_back=cv2.resize(img_back,None,fx=0.7,fy=0.7) cv2.imshow("img_back",img_back) #原人物图片缩放40% img=cv2.resize(img,None,fx=0.4,fy=0.4) cv2.imshow("img",img) rows,cols,channels = img.shape  #rows,cols最后一定要是前景图片的,后面遍历图片需要用到 #转换hsv hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) #获取mask lower_black = np.array([0, 0, 0]) upper_black = np.array([180, 255, 46]) mask = cv2.inRange(hsv, lower_black, upper_black) cv2.imshow("Mask", mask) #腐蚀膨胀 erode=cv2.erode(mask,None,iterations=1) cv2.imshow("erode",erode) dilate=cv2.dilate(erode,None,iterations=1) cv2.imshow("dilate",dilate) #遍历替换 #center=[50,50]#在新背景图片中的位置 center=[int(img.shape[0]/2),50] for i in range(rows):     for j in range(cols):         if dilate[i,j]==0:#0代表黑色的点             img_back[center[0]+i,center[1]+j]=img[i,j]#此处替换颜色,为BGR通道 cv2.imshow("res",img_back)  #显示效果图 cv2.imwrite("/home/xgj/Desktop/pic-bg/ppp/bw3back.png",img_back)  #保存合成图 cv2.waitKey(0) cv2.destroyAllWindows()
  5.4.3 操作效果图:
  ===自己整理并分享出来===
  喜欢的人,请点赞,关注、评论、转发和收藏。

985211年薪到底有多少?工资谁比谁更高?现实差异一文讲透文樱花谈教育(原创文章,欢迎转载分享)毕业季又到了,很多应届生,都面临着应聘工作的现状,而高材生的薪资也是大家所关注的热点。很多应届生带着在大学学习的经历和对于自己掌握专业知识的自别以为大学通知书到手就万事大吉,准备一档三证才是关键文樱花谈教育(原创文章,欢迎转载分享)2021年的高考已经结束,录取通知书陆陆续续的都发到了考生手中。很多人认为拿到录取书就可以万事大吉了,这样想其实大错特错,学生在开学之前一定要高中三年哪一年更重要?家长别弄错了方向,否则坑学生文樱花谈教育(原创文章,欢迎转载分享)高考深深地影响着学生的前途和命运,高考的重要性已经无需多言。为了高考取得一个好成绩,高中三年一定要好好把握。看到这儿,相信有不少朋友要问高中三15岁女孩考上北大,身世背景令人唏嘘,寒门出贵子照进现实文樱花谈教育(原创文章,欢迎转载分享)15岁的女孩都在上初中,而她15岁就已经参加了高考。并且,她成功的以696分被北京大学录取,成为北大年龄最小的本科生。她的名字叫屈诗颖,一个寒提前放学却要实行课后服务,这看似矛盾的两方,为何要共存文樱花谈教育(原创文章,欢迎转载分享)提笔点墨书卷上,垂髫稚子学语忙。在社会竞争压力的激增的今天,随着赢在起跑线上变为越来越多家长信奉的教育理念,作为义务教育第一步的小学教育难免受715工作制来临,西贝创始人双手赞成,表示员工是自愿的文樱花谈教育(原创,欢迎个人转载分享)从小学开始,到大学毕业,就算不发生意外也需要整整16年的时间,很多人之所以能忍受如此漫长的学习生涯,目的不外乎就是为了就是将来能找到一个有趣工在职男教师大量出逃,铁饭碗不香了?离职老师说出原因文樱花谈教育(原创,欢迎个人转载分享)在90年代,如果说什么职位最受欢迎,教师一定位列其中,不仅工作稳定,社会地位也很高,为了吃到教师饭,很多人更是抢破了头。随着时代的变化,教师这课后服务正式实施,反倒引起家长质疑,孩子在校饿了怎么办?文樱花谈教育(原创,欢迎个人转载分享)如今,整个社会内卷情况严重,延后下班时间无规律的加班,很多人早就已经司空见惯。可即便是这种普遍的社会现象,对于需要接送孩子的家长来说,却也是巨课后服务实施,要求教师比常人晚下班半小时,老师表示太难了文樱花谈教育(原创,欢迎个人转载分享)下班时间跟孩子放学的时间对不上,学生的作业自己辅导难度大,相信是现如今大多数家长都会感到头痛的问题。为了改变这种现状,教育部正式作出了全面普及双减政策发布,补课考试接连停止英语教材也难逃一劫文樱花谈教育(原创,欢迎个人转载分享)近段时间以来,我国教育界可谓是迎来了天翻地覆的变化,前有中考55分流政策,后有正准备在秋季学期全面实行的中小学生52课后服务模式等等。无论是哪张文宏遭人举报,中科院博士实锤论文抄袭,网红名医身陷舆论风波文樱花谈教育(原创,欢迎个人转载分享)俗话常说乱世出英雄,2020年的一场疫情,仅仅只用了短短几个月的时间就搅动了整个世界的风云。动荡的时局当中,升起了无数耀眼的新星,他们既不是演
抓住4个方面,养出聪明的孩子来源生命时报受访专家南京市妇幼保健院研究员郑蓉本报记者单祺雯养育出聪明的孩子是每个家长的心愿。美国波士顿学院心理学教授天才儿童科学培育儿童指南作者埃伦温纳在书中说,高智商儿童5岁前孩子要求多,不满足就闹不停,常与大人对着干,往往是缺乏安全感文霓裳01hr昨天,一位妈妈向我求助请教你一下,对于孩子提的要求,该怎么满足?我女儿每天都有不同要求,如果不满足就无休止闹,能闹一小时,闹完就不上学。这位妈妈说,她的女儿11岁,什孩子被邪教中招后的表现家长们注意分辨了孩子言行突变不可理喻?孩子厌学想退学?孩子动辄吵闹甚至说要离家?作为家长,你是不是觉得越来越不懂自己的孩子?往早恋青春叛逆期人际冲突等查原因?抑或觉得孩子已经长大了,应该有自己的隐给宝宝吃鸡蛋应该注意哪些事?鸡蛋一定是宝宝饮食中的常客了。因为它营养好,做法方便,还很好吃。但是给宝宝吃鸡蛋,妈妈们一定要注意这几点必须吃全熟鸡蛋,不能生吃。因为鸡蛋很容易被一些致病菌污染,最典型的就是沙门氏妈妈们的母亲节愿望草根影响力新视野法兰瓷编译母亲节要到了,蛋糕珠宝锅具,这些常见的母亲节礼物真的能够打进妈妈们的心坎里吗?事实似乎不然。根据亲子平台parents在Instagram上所做的调查,以宝宝站立并非越早越好,学站立的正确月龄,爸妈们要收藏好宝宝从出生的那一刻,爸爸妈妈们看着宝宝一点点的长大,从一开始的翻身到可以坐立,再到会爬行,宝宝出现的每一个小的转变,都让家长们激动不已。但是激动的同时,爸爸妈妈心中也会有许多的疑问4个月宝宝长湿疹,新手妈妈急病乱投医,导致湿疹越来越严重4个月宝宝长湿疹,新手妈妈急病乱投医,导致湿疹越来越严重宝宝长湿疹怎么办?别急病乱投医,湿疹初期做到这一点就行了。随着气温的升高,很多宝宝开始慢慢长湿疹了,有的甚至全身都是湿疹,虽漫画科普课又来了!这次聊聊婚姻中的那些育儿事4月23日,赵丽颖与冯绍峰宣布离婚5月4日,比尔盖茨和梅琳达宣布离婚。离婚已经成为这个社会不再陌生的一个词汇。据统计,到2020年,我国的离婚结婚比率已经达到了53。3,而在这个庞幼儿大便里的5个健康信息来源生命时报湖南省人民医院新生儿科护士长吴莎莉老一辈常用一把屎一把尿,辛辛苦苦拉扯大形容养儿育女的艰辛。可别小看这一泡屎一泡尿,它可是婴幼儿身体状况的晴雨表。通过观察大便的性状气味孕妇视网膜脱离左眼被黑影挡住本报讯(记者刘蓉通讯员钟婷婷)怀孕6个月的准妈妈小李,突然发现自己看东西很模糊。她原本以为是近视度数加深了,没有在意,结果视力越来越差,一查却是视网膜脱离。近日,她在厦门市中医院眼孕期为什么会腰痛呢?怀孕期间出现腰背酸痛属于比较常见的现象,女人怀孕以后,身体内的激素发生了相应的变化,为了分娩时婴儿能顺利通过产道,到怀孕中期以后,卵巢开始会分泌一种松弛激素,松弛素能使肌肉放松,可