不少人在生活中都有抠人像图换背景的需求。那怎么抠图呢?
相信不少人第一韶光就想到了 PS 抠图大法,是为了学会 PS 抠图很多人还花费不少精力,而且学会后大家想必都有共同
感触:PS 抠图在制作抠图选区这个步骤太耗费韶光!
!就跟我减肥似的!
本日木木子就手把手教大家编写一款抠图人像技能——上篇已经写完了——接着写抠图之后换背景啦!
这款小程序实现一键智能抠取人像图的功能,非常强大,比 PS 逐步抠图效率可提升了太多了,而且还能让不会 PS 的
群体也能轻松学会抠人像图。吹了这么多,让我们正式开始开始敲代码吧!
我知道看到这篇文章标题,有的吃瓜群众会八卦:哎呀,那个朋友结婚啊……
写这篇文章的灵感紧张是来源于上个月尾结婚的那两个人:
带着这一份冲动,
那是怎么达到这个一键抠图换背景的呢?
1)附主程序
# 日常缩放rows, cols, channels = img_back.shapeimg_back = cv2.resize(img_back, None, fx=0.7, fy=0.7)cv2.imshow('img_back', img_back)rows, cols, channels = img.shapeimg = cv2.resize(img, None, fx=0.4, fy=0.4)cv2.imshow('img', img)rows, cols, channels = img.shape # rows,cols末了一定假如前景图片的,后面遍历图片须要用到# 转换hsvhsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)# 获取masklower_blue = np.array([78, 43, 46])upper_blue = np.array([110, 255, 255])mask = cv2.inRange(hsv, lower_blue, upper_blue)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] # 在新背景图片中的位置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.waitKey(0)cv2.destroyAllWindows()
好啦!
上面的抠图换背景便是这个代码的效果滴!
2)展示其他
那我们来看看我最近一贯在用的其余一个抠图app吧!
这个抠图效果实在比我代码更好 哈哈哈哈~
2.1 我不说那张是原图——你能猜出来嘛?
2.2 从漫画走进现实
2.3想用什么背景换什么背景
总结
好啦!
全体抠图换背景的效果,你只须要节制利用opencv,加上小小的【创意】,末了就能做出效果不错,又有实用
的不同背景图来,赶紧自己也来试试吧~
源码基地——私信【Opencv实战】如何快速Get专属头像?惊艳—女友要的头像终于找到了~
项目1.1 动漫化人物
【打破次元壁】谁说二次元离我们迢遥?Python殊效火遍全网,关键技能原来是它。
项目1.4 自动车辆检测违章
听说拍人家违章月入十万?那我写了个自动检测车辆是否违章不发财了
项目1.5 AI检测抄袭小脚本
同学:你因作业作弊已被AI抓获,Python制作一款AI检测抄袭小脚本。
文章汇总——
项目1.0 Python—2021 |已有文章汇总 | 持续更新,直接看这篇就够了
(更多内容+源码都在文章汇总哦!
!
欢迎阅读~)