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)

效果如下:

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

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

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

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

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

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

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

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

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

  5. python读取文件第n行-Python读取文件后n行的代码示例

    这篇文章主要介绍了Python实现读取文件最后n行的方法,涉及Python针对文件的读取.遍历与运算相关操作技巧,需要的朋友可以参考下# -*- coding:utf8-*- import os im ...

  6. 100行代码教你爬取斗图网(Python多线程队列)

    100行代码教你爬取斗图网(Python多线程队列) 前言 根据之前写的两篇文章,想必大家对多线程和队列有了一个初步的了解,今天这篇文章就来实战一下,用多线程 + 队列 爬取斗图网的全网图片. 你还在 ...

  7. 如何用python读取文本中指定行的内容

    如何用python读取文本中指定行的内容 搜索资料 我来答 分享 新浪微博 QQ空间 浏览 5284 次 查看全文 http://www.taodudu.cc/news/show-64036.ht ...

  8. 40行代码教你爬遍小视频网站

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

  9. python读取文件某一行-使用python读取.text文件特定行的数据方法

    如何用python循环读取下面.txt文件中,用红括号标出来的数据呢? 首先,观察数据可知,不同行的第一个数据元素不一样,所以考虑直接用正则表达式. 再加上,对读和写文件的操作,就行了 注:我用的是p ...

最新文章

  1. 织梦html仅动态,dede织梦系统后台发布文章时设置为默认动态浏览的方法
  2. bin/...的访问被拒绝被拒绝的问题
  3. Jq remove的使用
  4. 《计算机网络自顶向下》知识体系完全梳理
  5. python数据分析与基础实战_《python数据分析与挖掘实战》基础概念
  6. C#开发ActiveX控件及制作CAB包
  7. python显示中文文件内容_Python实现的json文件读取及中文乱码显示问题解决方法...
  8. java 文件名 类名_java文件名为什么要与类名相同
  9. 牛客网--华为机试在线训练2:计算字符个数
  10. 使用浏览器去检查exchange 2013 协议的健康状况
  11. 小米wifi设置access_小米帐号的开放API
  12. 前端开发-MongoDB快速掌握上手知识总结
  13. [转发]Labview2015 vi文件程序框图密码破解过程
  14. HDU 3221 Brute-force Algorithm(指数降幂公式)
  15. 华为荣耀畅玩7安卓系统升级为鸿蒙系统,华为EMUI系统迎来绝唱!内核升级为鸿蒙,荣耀被彻底放弃?...
  16. 第十一周OJ-Q50解题方法
  17. html 内嵌iframe,html页面 内嵌iframe
  18. 如何低成本减少企业知识流失?天翎知识文档系统+群晖NAS值得一试
  19. 极客学院 Android 系统体系教程
  20. Sklearn 损失函数如何应用到_菜鸟学机器学习,Sklearn库主要模块功能简介

热门文章

  1. Visual C++必备运行库-vc++2015运行库提供下载
  2. windows下git bash 添加zip命令功能
  3. PIM-SM(ASM模型)
  4. 《马云给年轻人的77条忠告》读书笔记2
  5. 使用Hexo 和Github搭建个人博客
  6. 金蝶云星空套打模板选横向打印输出仍是竖向解决方法
  7. Pdfium.Net SDK增强您的功能快速生成PDF
  8. mysql计算均线_MySQL移动平均线 – 4周
  9. 小白在学习编程的道路上该如何杀出一条血路
  10. my ReadSupermarket / micromarket / chaoshi / suguo / supermarket