Python图像识别-Opencv06 人像处理、滤波处理

本文介绍了如何使用OpenCV进行人像处理,特别是在HSV色彩空间中识别肤色。通过cv2.inRange()函数,确定肤色在色调、饱和度和明度的范围。接着探讨了图像滤波处理,包括均值滤波、高斯滤波和中值滤波,用于去除噪声并保持图像细节。均值滤波通过cv2.blur()实现,高斯滤波利用cv2.GaussianBlur(),而中值滤波则使用cv2.medianBlur(),其中中值滤波能有效去除噪声且避免细节模糊。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取皮肤范围

在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.destr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值