获取皮肤范围

在HSV色彩空间中,H通道对应不同颜色。颜色的差异主要取决于H通道值,所以通过筛选H通道值就能筛选出特定的颜色。例如在一幅HSV图像中,如果通过控制仅将H通道内值为240(在Opencv内被调整为120)的像素点显示出来,那么就会只显示蓝色部分图像。

本节将通过具体例题展示如何将图像内的特定颜色标记出来,即将一幅图像内的其他颜色屏蔽,仅将特定颜色显示出来。

Opencv通过函数cv2.inRange()来判断图像内像素点的像素值是否在指定的范围内。

标记特定颜色,即可标注改颜色对应的特定对象,如通过分析可以估算出肤色在HSV色彩空间内筛选出皮肤范围内的值

这里将肤色划分为:

色调值为[0,33]

饱和度为[10,255]

明度为[80,255]

import cv2
import numpy as np
img = cv2.imread('D:/PixC/01.jpeg')hsv = cv2.cvtColor(img,cv.COLOR_BGR2HSV)
min_hsv = np.array([0,10,80],dtype='uint8')
max_hsv = np.array([33,255,255],dtype='uint8')
print(max_hsv)mask = cv.inRange(hsv,min_hsv,max_hsv)
result = cv.bitwise_and(img,img,mask=mask)
cv2.imshow('img',img)
cv2.imshow('result',result)cv2.waitKey()
cv2.destroyAllWindows()

滤波处理

在尽量保留图像原有信息的情况下,过滤掉图像内不的噪声过程称为对图像的平滑处理,又称滤波处理,所得图像称为平滑图像。图像平滑处理的基本原理是,将噪声所在像素点的像素值处理为其周围邻近像素点像素值的近似值。取近似值的方式很多,我们主要介绍均值滤波,高斯滤波,中值滤波等方法。

均值滤波

均值滤波是指用当前像素点周围N*N个像素值的均值代替当前像素值。使用该方法遍历处理图像内的每一个像素点,即可完成整个图像的均值滤波

在进行均值滤波时,首先要考虑需要对周围多少个像素点取平均值。通常情况下会以当前像素点为中心,求行数和列数相等的一块区域内的所有像素点的像素平均值。

用函数cv2.blur()来展现,具体代码如下

import cv2
img = cv2.imread('D:/PixC/02.jpeg')cv2.imshow('img',img)
r3 = cv2.blur(img,(3,3))
cv2.imshow('r3',r3)
r5 = cv2.blur(img,(5,5))
cv2.imshow('r5',r5)cv2.waitKey()
cv2.destroyAllWindows()

得到如下图

高斯滤波

在进行均值滤波时,其邻域内每个像素的权重值是相等的。在高斯滤波中,会将邻近中心像素点的权重值加大,原理中心像素点的权重值减小,在此基础上计算邻域内各个像素值不同权重的和。

函数:cv2.GaussianBlur()

import cv2
img = cv2.imread('D:/PixC/02.jpeg')cv2.imshow('img',img)
r1 = cv2.GaussianBlur(img,(5,5),0,0)
cv2.imshow('r1',r1)
r2 = cv2.GaussianBlur(img,(5,5),0.1,0.1)
cv2.imshow('r2',r2)
r3 = cv2.GaussianBlur(img,(5,5),1,1)
cv2.imshow('r3',r3)
cv2.waitKey()
cv2.destroyAllWindows()

中值滤波

中值滤波与前面介绍的滤波方式不同,不再采用加权求均值的方式计算滤波结果,而是用领域内所有像素值的中间值来替代当前像素点的像素值。

函数:cv2.medianBlur()

cv2.imshow('img',img)
r3 = cv2.medianBlur(img,3)
cv2.imshow('r3',r3)
r5 = cv2.medianBlur(img,5)
cv2.imshow('r5',r5)
r7 = cv2.medianBlur(img,7)
cv2.imshow('r7',r7)
cv2.waitKey()
cv2.destroyAllWindows()

从图中可以看出,由于没有进行均值滤波处理,中值滤波不存在均值滤波等滤波方式带来的细节模糊问题。中值滤波处理使用领域像素点中间的像素作为当前像素点的像素值。一半情况下噪声的像素值是一个特殊值,因此噪声成分很难被选作替代当前像素点的像素值,从而实现在不影响原有图像的情况下去除全部噪声。但是由于需要进行排序等操作,中值滤波的运算量较大。

Python图像识别-Opencv06 人像处理、滤波处理相关推荐

  1. Python图像识别

    Python图像识别 第一次写博客 首先说明,我只是一个刚开始学习python的学生,此博客纯粹记录我学习的过程,如果代码过程中有问题或者有更好的实现方法,希望业界各位大佬指点.评论 工具 pycha ...

  2. [Python图像识别] 五十.Keras构建AlexNet和CNN实现自定义数据集分类详解

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  3. Python 图像处理 | 图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波

    作者 | 杨秀璋,责编 | 夕颜 题图  | 视觉中国 出品 | CSDN博客 本篇文章主要讲解Python调用OpenCV实现图像平滑,包括四个算法:均值滤波.方框滤波.高斯滤波和中值滤波.全文均是 ...

  4. python 图像识别_python图像识别之图片相似度计算

    作者 | a1131825850疯子 来源 | Python爬虫scrapy 原文 | python图像识别---------图片相似度计算 1.背景 要识别两张图片是否相似,首先我们可能会区分这两张 ...

  5. python图片识别-python图像识别

    python图像识别一般基础到的就是tesseract了,在爬虫中处理验证码广泛使用. 安装 安装教程网上大都差不多,Windows下确实比较麻烦,涉及到各种路径.环境变量甚至与linux不同的路径分 ...

  6. [Python图像识别] 四十九.图像生成之什么是生成对抗网络GAN?基础原理和代码普及

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  7. [Python图像识别] 四十八.Pytorch构建Faster-RCNN模型实现小麦目标检测

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  8. [Python图像识别] 四十六.图像预处理之图像去雾详解(ACE算法和暗通道先验去雾算法)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  9. [Python图像识别] 四十七.Keras深度学习构建CNN识别阿拉伯手写文字图像

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

最新文章

  1. Proteus仿真STM32F103R6的寄存器版跑马灯程序(存储器宏定义)
  2. challenging Programming questions
  3. Docker管理面板Portainer中文汉化教程
  4. Qt-在控件上绘图的方式
  5. Linux大作业任务书,《Linux系统管理》期末大作业任务书(2014.12)(1).doc
  6. 爱奇艺副总裁离职?本人回应了 曾一手打造现象级节目《中国有嘻哈》
  7. css animate属性spend不生效
  8. azure 入门_Azure数据目录入门
  9. cmd查看当前python安装路径_python环境配置
  10. 【Spring Boot】创建一个简单的Spring Boot的 Demo
  11. 钰泰ETA8113,ETA8120,ETA8121降压转换器,2A/3A电流,OVP保护
  12. 大数据线性回归预测学生成绩
  13. c#窗体程序未响应问题
  14. esp32 Flash分区与OTA功能简析
  15. 碧蓝航线最新服务器2018,2018最新碧蓝航线建造时间表 舰娘建造时间表一览
  16. pytorch下的lib库 源码阅读笔记(1)
  17. 量化交易入门阶段:好事要成双——双均线策略
  18. 【Android】自定义View的位置参数
  19. 马少平、周枫、王小川、楼天城、唐文斌……清华计算机系与AI的40年
  20. 没有时间进行测试? —有关在Python中对AWS Lambda进行单元测试的12条建议

热门文章

  1. 2021年6月券商App行情刷新及交易体验评测报告
  2. C语言课设--班级档案管理系统(设计文档+源码)
  3. 一键合成拼图怎么弄?安利三款照片拼图工具
  4. 多传感器融合定位 第八章 基于滤波的融合方法进阶
  5. GO map(集合)
  6. matlab读取idl的变量,[转]IDL中全局变量的处理
  7. Barrett模乘与蒙哥马利模乘算法(附源码实现)
  8. 软件测试——性能测试
  9. OSChina 周四乱弹 —— 不能空腹吃早餐
  10. 通过修改 initrd.img 来实现 PXE 启动过程中进行硬盘 RAID 初始化