昨天朋友忙要把白色背景的证件照换为红色的,比较急用,本人也不太会用PS,网上的那些转换小工具都是要收费的,就想着自己搞一搞,原理很简单,白色背景的像素值为[255,255,255],用这个信息生成mask,再将生成的Mask对应回原图像将背景区域换为红色的像素值[256,0,0]即可实现。

read image

def read_source_image(image_path):img = cv2.imread(image_path)return img

resize

def resize(img,height,whight):return cv2.resize(img,(whight,height))

生成mask

def generator_mask(img):""":param img: source image:return: mask"""mask = np.zeros_like(img)row,col,channels = img.shapefor i in range(row):for j in range(col):if sum(img[i, j]) == 255 * 3:mask[i, j] = (255, 255, 255)else:mask[i, j] = [0, 0, 0]# Gaussian Blurmask = cv2.GaussianBlur(mask, (7, 7), 0)return mask

白色转红色

def white_to_red(img,mask):""":param img: source image:param mask: mask image:return: red background image"""img_copy = np.zeros_like(img)row, col, channels = img.shapefor i in range(row):for j in range(col):if sum(mask[i,j]) != 0:img_copy[i,j] = [0,0,255]else:img_copy[i,j] = img[i,j]return img_copy

白色转蓝色

def white_to_blue(img,mask):""":param img: source image:param mask: mask image:return: Blue background image"""img_copy = np.zeros_like(img)row, col, channels = img.shapefor i in range(row):for j in range(col):if sum(mask[i,j]) != 0:img_copy[i,j] = [255,0,0]else:img_copy[i,j] = img[i,j]return img_copy

我自己转出来的结果还可以,但是在人的边缘位置上还是能够看到有瑕疵,所以在mask生成里面做了高斯模糊,实验验证是有用的,经过高斯模糊之后生成的图像质量改了很多,但在真用的时候还是会有一些问题,比如背景并不是纯白色的时候,分割就会有问题,后面有时间的话可以考虑用分割的方法来继续完善这个小工具。

python opencv给证件照换底色相关推荐

  1. 2020-11-06 Python OpenCV给证件照换底色

    投简历.找工作这些事都需要证件照,有些还要求证件照背景颜色.尺寸大小,本文分享一下如果通过Python OpenCV来实现照片裁剪和更换背景色 1.读取照片 import cv2import nump ...

  2. php-opencv身份证识别,python opencv实现证件照换底功能

    本文实例为大家分享了python opencv实现证件照换底功能的具体代码,供大家参考,具体内容如下 思路:先转到HSV空间,利用颜色提取背景制作掩模版mask,然后通过按位操作提取人像和制作新背景, ...

  3. Python+OpenCV对证件照换底

    Python的函数库OpenCV真的很强大,前不久刚领略OpenCV对验证码图片进行降维来在selenium模拟登录之后破解验证码.今天又尝试用OpenCV对证件照进行换底色.太好用了,直接上源码. ...

  4. 用20行python代码给证件照换底色

    作者:黄伟呢 来源:数据分析与统计学之美 1.需求说明 曾经有位同学在入职的前一天晚上被告知需要提交红色背景的证件照用以制作工号牌,然而此时他手头只有一张蓝色背景的.于是,他用PS替换了背景,省去了大 ...

  5. 基于python的证件照_用20行python代码给证件照换底色

    imread:读取图片: imshow:展示图片: waitkey:设置窗口等待,如果不设置,窗口会一闪而过: imread:读取图片: imshow:展示图片: waitkey:设置窗口等待,如果不 ...

  6. 用python+Removebg,证件照换底色

    1.安装 removebg和PIL模块 运行命令提示行,执行命令: pip install removebg pip install Pillow 2.获取API Key 搜索removebg,进入官 ...

  7. 对比Python,看看Excel如何3步给证件照换底色?

    公众号后台回复"图书",了解更多号主新书内容 作者:黄伟呢 来源:数据分析与统计学之美 Python完成证件照换底色 该图片来源于百度图片,如果侵权,请联系我删除!图片仅用于知识交 ...

  8. python opencv pdf脚本之家_python opencv实现证件照换底功能

    本文实例为大家分享了python opencv实现证件照换底功能的具体代码,供大家参考,具体内容如下 思路:先转到HSV空间,利用颜色提取背景制作掩模版mask,然后通过按位操作提取人像和制作新背景, ...

  9. 原来 Excel 只需三步就可以给证件照换底色!

    作者 | 黄伟呢 来源 | 数据分析与统计学之美(ID:gh_21c25c7e71d0) 头图 |  CSDN 下载自东方IC Python完成证件照换底色 该图片来源于百度图片,如果侵权,请联系我删 ...

最新文章

  1. 为什么vs数据库中文显示问号_本科论文知网不收录为什么会被知网查重到?
  2. java面向对象电子科大版答案_电子科大17秋《面向对象程序设计》在线作业1
  3. 如果有两个很大的数加在一起
  4. 怎样用原生js配合css的transition写个无缝滚动
  5. GCD6: 在GCD上异步执行非UI相关任务
  6. mongodb 存储过程 遍历表数据_三、redis数据存储之跳跃表(SKIP LIST)
  7. PHP数据结构之四 一元多项式的相加PHP单链实现
  8. 【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)...
  9. 计算机专业数据结构试题答案,2021考研计算机408数据结构试题及答案解析
  10. 联想ts250进bios_联想ts240怎么进bios
  11. 热血江湖服务器节点位置,热血江湖服务器合并相关说明
  12. mysql左连接查询时多条件的注意事项
  13. win7下pytorch-gpu安装
  14. 市民注意啦 这3组家用无线路由器未达国家标准
  15. vs2010学习版loadimage();函数载入图片无法加载的问题
  16. OSPF高级特性—Distribute-list过滤、修改接口OSPF优先级配置、OSPF—被动接口详解、修改参考带宽值
  17. 学习Python人工智能前景如何
  18. 关于CH552G单片机连接电脑和烧录程序的细节总结
  19. 商务英语有计算机课吗,如何去学商务英语
  20. 计算机考试打字合格速度,雅思考试使用机考,打字速度决定最终成绩

热门文章

  1. 直播预告 | AAAI 2022论文解读:基于能量的主动域自适应学习方法
  2. NLP技术中的Tokenization
  3. 推荐一个C++练手项目,面试也可用
  4. 54万奖金+百度地图海量业务数据集,智能交通CV赛题来了
  5. 计算机视觉:基于眼疾分类数据集iChallenge-PM图像分类经典模型剖析(LeNet,AlexNet,VGG,GoogLeNet,ResNet)
  6. 【学习笔记】吴恩达机器学习 WEEK2 线性回归 Octave教程
  7. java全文检索的框架_lucene框架全文检索搜索引擎方案
  8. android获取apk名称_安卓逆向——APK安装流程
  9. 刚构桥的优缺点_连续刚构桥相对于连续梁来说有优点吗
  10. android 多点触控缩放,Android多点触控(图片的缩放Demo)