对比Python,用Excel只要3步就能给证件照换底色!-数据与编程-热点资讯-野望文存-科技 
    欢迎来到野望文存-科技!
当前位置:野望文存-科技 > 热点资讯 > 数据与编程 >  对比Python,用Excel只要3步就能给证件照换底色!

对比Python,用Excel只要3步就能给证件照换底色!

发表时间:2020-11-21 16:01:00  来源:野望文存  浏览:次   【】【】【



文末扫海报二维码领【超全Excel常用模板】


黄伟呢 |  作者

数据分析与统计学之美 | 来源

http://suo.im/6catRJ



1


Python完成证件照换底色


该图片来源于百度图片,如果侵权,请联系我删除!图片仅用于知识交流。


不久前,我写了一篇Python怎么给证件照换底色的文章,阅读2万+,评论102,点赞347,收藏1808。更好玩儿的是,整个留言区简直爆炸了(部分截图如下),好多人都给出自己的看法,褒贬不一。



其实我想说明的是,一种事儿可能有很多种解决办法,我的这篇文章只是提供了一种思路。你只有知道了Python可以完成这件事儿,才会想着以后去优化它,不是吗?


Python证件照换底色:http://suo.im/60i6pb


import cv2
import numpy as np
# 读取照片
img=cv2.imread('girl.jpg')

# 图像缩放
img = cv2.resize(img,None,fx=0.5,fy=0.5)
rows,cols,channels = img.shape
print(rows,cols,channels)
cv2.imshow('img',img)

# 图片转换为灰度图
hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
cv2.imshow('hsv',hsv)

# 图片的二值化处理
lower_blue=np.array([90,70,70])
upper_blue=np.array([110,255,255])
mask = cv2.inRange(hsv, lower_blue, upper_blue)


#腐蚀膨胀
erode=cv2.erode(mask,None,iterations=1)
cv2.imshow('erode',erode)

dilate=cv2.dilate(erode,None,iterations=1)
cv2.imshow('dilate',dilate)


# 窗口等待的命令,0表示无限等待
cv2.waitKey(0)


这篇文章最终展示出来的效果并不是那么的好,可以看出轮廓周围的毛边,并没有很好的去除,可能我的学艺不精的缘故。如果哪位大神有兴趣,可以将这个代码完善一下,上方我提供了原文链接。



2


Excel完成证件照换底色


既然大家都对这个技能如此感兴趣,我必须要找到一个既容易又效果好的方法,来完成证件照换底色的需求。如果说Python效果不太好,PS又需要一定的基础,那么Excel照换底色,会是很好的选择(效果如下)。



从上图可以看出:Excel证件照换底色的效果还是蛮好的,轮廓周围的毛边完全没有。


废话不多说,我们直接进入主题。看看Excel中,如何完成证件照换底色这个操作?


1. 导入图片



2. 单击图片,依次点击格式-->删除背景


这一步有一个很关键的步骤,如果没处理好,有可能会将衣服背景一并删除。因此我们需要标记要保留的区域。



注意:是不断点击要保留的区域,直至这个衣服完全出现为止。如果没有做这一步,出来的就是一个人头像,效果如图。



3. 随意更换你想要替换的背景色



当我们换好证件照底色后,还可以给图片做一系列的修改,简直不要太爽!



END -

本文已获作者授权,如需转载请与作者联系


责任编辑:蔡学森