标记肤色
2021-09-29 本文已影响0人
大龙10
《OpenCV轻松入门:面向Python》读书笔记
作者:李立宗
出版社:电子工业出版社
出版时间:2019-05
第4章 色彩空间类型转换
4.4 HSV色彩空间讨论
4.4.4 标记肤色
1)推广
在标记特定颜色的基础上,可以将标注范围进一步推广到特定的对象上。例如,通过分析可以估算出肤色在HSV色彩空间内的范围值。在HSV空间内筛选出肤色范围内的值,即可将图像内包含肤色的部分提取出来。
这里将肤色范围划定为:
- 色调值在[5, 170]之间
- 饱和度值在[25, 166]之间
2)程序
【例4.10】提取一幅图像内的肤色部分。
# -*- coding: utf-8 -*-
import cv2
img=cv2.imread("lesson2.jpg")
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h,s,v=cv2.split(hsv)
minHue=5
maxHue=170
hueMask=cv2.inRange(h, minHue, maxHue)
minSat=25
maxSat=166
satMask = cv2.inRange(s, minSat, maxSat)
mask = hueMask & satMask
roi = cv2.bitwise_and(img,img, mask= mask)
cv2.imshow("img",img)
cv2.imshow("ROI",roi)
cv2.waitKey()
cv2.destroyAllWindows()
3)运行结果

程序实现了将人的图像从背景内分离出来。提取后的图像仅保留了人像肤色(包含衣服)部分,背景为黑色。