1.图片来源

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

2.读取图片并显示

imread():读取图片;

imshow():展示图片;

waitkey():设置窗口等待,如果不设置,窗口会一闪而过;

import cv2

import numpy as np

# 读取照片

img=cv2.imread("girl.jpg")

# 显示图像

cv2.imshow("img",img)

# 窗口等待的命令,0表示无限等待

cv2.waitKey(0)

效果如下:

3.图片缩放

resize():图片缩放,其中fx和fy表示缩放比例,0.5表示缩放为以前的 一半。

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)

# 窗口等待的命令,0表示无限等待

cv2.waitKey(0)

结果如下:

4.将图片转换为灰度图像

三色图片有RGB三个颜色通道,无法进行腐蚀和膨胀的操作。这个就需要我们将彩色图片转换为hsv灰度图像后,再完成腐蚀和膨胀的操作。

cv2.cvtColor(img,cv2.COLOR_BGR2HSV)可以将彩色图片转化为hsv灰度图片。

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)

# 窗口等待的命令,0表示无限等待

cv2.waitKey(0)

结果如下:

5.将图片进行二值化处理

二值化处理是为了将图片转换为黑白图片。二值化类似于1表示男、2表示女,对于图像的处理我们也需要自定义一个最小值和最大值,这里分别用lower_blue和upper_blue表示

lower_blue = np.array([90,70,70])

upper_blue = np.array([110,255,255])

inRange(hsv, lower_blue, upper_blue)将图片进行二值化操作。

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)

# 显示图像

cv2.imshow("mask",mask)

# 窗口等待的命令,0表示无限等待

cv2.waitKey(0)

结果如下:

缺点:我们观察第三章图片,发现黑色区域有时候会出现一些噪声(白点),这里可能显示的不是很明显,有的图片显示的很明显,这就需要我们进行腐蚀或膨胀。

6.图象的腐蚀和膨胀

上面的图象进行二值化后,出现了一些噪声,我们可以采用腐蚀或膨胀进行图片的处理,观察哪种的处理效果好一些。

erode(mask,None,iterations=1)进行腐蚀操作。

dilate(erode,None,iterations=1)进行膨胀操作。

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)

结果如下:

观察上图:对于这个图片,无论是腐蚀或膨胀,都起到了很好的去图片噪声的操作,我们使用腐蚀后的图片也可以,我们使用膨胀后的图片也可以。

7.遍历每个像素点进行颜色替换

图片是由每一个像素点组成的,我们就是要找到腐蚀后得到图片的,白色底色处的像素点,然后将原图中对应位置处的像素点,替换为红色。

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)

#遍历替换

for i in range(rows):

for j in range(cols):

if erode[i,j]==255: # 像素点为255表示的是白色,我们就是要将白色处的像素点,替换为红色

img[i,j]=(0,0,255) # 此处替换颜色,为BGR通道,不是RGB通道

cv2.imshow("res",img)

# 窗口等待的命令,0表示无限等待

cv2.waitKey(0)

效果如下:

到此这篇关于20行代码教你用python给证件照换底色的方法示例的文章就介绍到这了,更多相关python 证件照换底色内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

python换照片底色,20行代码教你用python给证件照换底色的方法示例相关推荐

  1. python读取身份证照片信息_20行代码教你用Python改变身份证照片的背景色,python,给,证件照,换,底色...

    1.图片来源 该图片来源于百度图片,如果侵权,请联系我删除!图片仅用于知识交流. 2.读取图片并显示 imread():读取图片: imshow():展示图片: waitkey():设置窗口等待,如果 ...

  2. 基于python的证件照_20行代码教你用python给证件照换底色的方法示例

    1.图片来源 该图片来源于百度图片,如果侵权,请联系我删除!图片仅用于知识交流. 2.读取图片并显示 imread():读取图片: imshow():展示图片: waitkey():设置窗口等待,如果 ...

  3. 40行代码教你利用Python网络爬虫批量抓取小视频

    1. 前言 还在为在线看小视频缓存慢发愁吗?还在为想重新回味优秀作品但找不到资源而忧虑吗?莫要慌,让python来帮你解决,40行代码教你爬遍小视频网站,先批量下载后仔细观看,岂不美哉! 2. 整理思 ...

  4. python爬取小视频-40行代码教你利用Python网络爬虫批量抓取小视频

    /1 前言/ 还在为在线看小视频缓存慢发愁吗?还在为想重新回味优秀作品但找不到资源而忧虑吗?莫要慌,让python来帮你解决,40行代码教你爬遍小视频网站,先批量下载后仔细观看,岂不美哉! /2 整理 ...

  5. python网页版_经典python学习教程:20行代码打造一个微信群聊助手,解放双手

    今天的Python学习教程教大家如何用20行Python代码实现微信群聊助手,可以用来活跃群气氛,好多群主创建完群后,拉完一群人,之后就一片寂静,有个群聊助手,就可以帮忙活跃群里气氛,通过今天在自己的 ...

  6. python界面怎么改颜色_20行代码教你用python给证件照换底色

    1.图片来源 该图片来源于百度图片,如果侵权,请联系我删除!图片仅用于知识交流.本文只是为了告诉大家:python其实有很多黑科技(牛逼的库),我们既可以用python处理工作中的一些事儿,同时我们也 ...

  7. 10行代码教你用Python扫描Excel表格,自动生成条形码!

    一.需求分析 条形码应用广泛,尤其是人事.财务和库管等等岗位,常需根据excel文件成批生成条码,如果是经常性天天做,用excel的自己控件还是很枯燥烦人的. 当然在学习Python的道路上肯定会困难 ...

  8. Python用20行代码实现完整邮件功能 [完整代码+建议收藏]

    大家好,我是Lex 喜欢欺负超人那个Lex 擅长领域:python开发.网络安全渗透.Windows域控Exchange架构 今日重点:python脚本实现发送邮件,邮件添加附件,读取接收邮件等功能. ...

  9. 女神相册密码忘记了,我只用Python写了20行代码

    ​视频地址 我用20行代码,帮女神破解相册密码 一.事情是这样的 今早上班,公司女神小姐姐说,她去年去三亚旅游的照片打不开了 好奇问了一下才知道. 原来是,她把照片压缩了,而且还加了密码. 但是密码不 ...

  10. Python黑科技:20行Python代码打造一个微信群聊助手

    今天要教大家一个黑科技,20行代码实现自己定制的微信群聊助手,可以用来活跃群气氛,好多群主创建完群后,拉完一群人,之后就一片寂静,有个群聊助手,就可以帮忙活跃群里气氛,通过今天在自己的微信上有一大批好 ...

最新文章

  1. YOTO来了!你只需训练一次,谷歌大脑提出调参新trick
  2. 西农计算机考研专业课压分,考研:西农大计算机初试第一名被淘汰,倒数第一成功逆袭...
  3. 老梁观世界“20120713期 癌症女博士的生命箴言”
  4. AB1601读触摸芯片ASC0106的IIC波形图
  5. code vs 1026 逃跑的拉尔夫
  6. linux 实时功能,linux – 什么是同时具有实时循环和非实时功能的更好方法
  7. vue从入门到精通之进阶篇(五)脚手架vue-cli
  8. PyQt5和Python的多线程
  9. RNN系列之四 长期依赖问题
  10. 怎样做小游戏挖金子(VC,源码3)
  11. 一篇文章带你搞懂DEX文件的结构
  12. html图片在桌面的路径,桌面路径无法恢复以前的路径
  13. 全球服务器系统排行,服务器操作系统排行榜
  14. 《Implicit Class-Conditioned Domain Alignment for Unsupervised Domain Adaptation》
  15. 论文解读:ARNOR: Attention Regularization based Noise Reduction for Distant Supervision Relation Class...
  16. 交互设计好书推荐:【A029】[图灵交互设计丛书].简约至上:交互式设计四策略.第2版
  17. linux 下MySQL本地安装mysql - u root - p 无法登入
  18. 手把手教你,搭建内网穿透服务
  19. c语言中的static inline
  20. Wordcount()--ASP字数计算函数

热门文章

  1. 缅甸文字库 缅甸语字库 缅甸字库算法
  2. vmware整套实施项目文档(包含vmware安装配置,emc存储安装配置,emc光纤交换配置,...
  3. STVP烧录HEX文件方法
  4. win10远程桌面连接记录
  5. win10无法被远程计算机,win10无法被远程连接解决方法
  6. matlab插值:拉格朗日插值
  7. JAVA代码实现MD5加密算法
  8. sql server windows nt 64bit 内存占用过高解决办法
  9. ftp服务器和共享文件夹权限设置,ftp服务器共享文件夹权限设置
  10. MAC PS更换登记照背景颜色