一年一度的大学开学季,一年一度的军训季。
在六月中旬高考结束之后,万千学子迎来了他们人生中最长也是最无忧无虑的假期,到了八月底九月初,他们将踏上人生的一段重要旅程——大学。
然而等待他们的第一课,便是军训。
每所高校对军训的要求不同,从时间来看,短的只有5天,长的多达一个月,根据网上一份军训时间排行榜,比如清华大学,以34天稳居第二。(警校排第一也是无可厚非了,不过吉林的院校确实热衷军训,前十中两所吉林的院校上榜) 除了一些开始又晚、时间又长的院校(比如重庆大学),大部分院校的军训应该已经结束了,然而经历了军姿、齐步、正步、阅兵甚至拉练的“摧残”后,军训岁月在身上留下的最深的痕迹便是——晒!黑!了!
军训前和军训后,就是“白古”和“黑古”的差别啊!想知道自己军训后究竟晒黑了多少么?下面文摘菌就带你用Python看看,自己究竟军训后黑了几个度。
想知道自己的皮肤颜色,首先要将皮肤检测出来。
肤色检测有很多方法,比如:
- 基于RGB的颜色空间模型;
- 基于椭圆皮肤模型的皮肤检测;
- YCrCb颜色空间Cr分量+Otsu法阈值分割;
- 基于YCrCb颜色空间Cr,Cb范围筛选法;
- HSV颜色空间H范围筛选法;
- opencv自带肤色检测类AdaptiveSkinDetector; 2004年,Georgy Kukharev和Adam Nowosielski为了提高模型的稳定性,将多个颜色空间结合,提出RGB颜色空间和YCbCr颜色空间的混合肤色检测器。像素值满足如下条件:
实现的代码也很简单,首先引入必要的包:
import cv2
import numpy as np
from matplotlib import pyplot as plt
'''
这是小编准备的python爬虫学习资料,加群:821460695 即可免费获取!
'''
然而操纵图像,将RGB颜色空间3通道的值和YCbCr颜色空间3通道的值结合起来,然后根据判别条件进行肤色检测:
def skin_color(imgFile):
# load an original image
img = cv2.imread(imgFile)
rows,cols,channels = img.shape
# convert color space from rgb to ycbcr
imgYcc = cv2.cvtColor(img, cv2.COLOR_BGR2YCR_CB)
# convert color space from bgr to rgb
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# prepare an empty image space
imgSkin = np.zeros(img.shape, np.uint8)
# copy original image
imgSkin = img.copy()
s=0
sum_R=sum_G=sum_B=0
for r in range(rows):
for c in range(cols):
# non-skin area if skin equals 0, skin area otherwise
skin = 0
# get values from rgb color space
R = img.item(r,c,0)
G = img.item(r,c,1)
B = img.item(r,c,2)
# get values from ycbcr color space
Y = imgYcc.item(r,c,0)
Cr = imgYcc.item(r,c,1)
Cb = imgYcc.item(r,c,2)
# skin color detection
if R > G and R > B:
if (G >= B and 5 * R - 12 * G + 7 * B >= 0) or (G < B and 5 * R + 7 * G - 12 * B >= 0):
if Cr > 135 and Cr < 180 and Cb > 85 and Cb < 135 and Y > 80:
# print 'Skin detected!'
对比色卡,看看你黑了几度
检测出了皮肤的区域,我们就需要将皮肤区域的颜色RGB值计算出来,然后与色卡进行对比。
说到色卡,不得不提到Pantone(潘通)——一家专注于研究颜色的公司,以其Pantone颜色匹配系统(PMS)而闻名,该系统被广泛用于各种行业,特别是平面设计,时装设计,产品设计,印刷和制造,并支持从设计到生产的色彩管理。
2013年,潘通发布了一款彩通肤色指南(PANTONE SkinTone Guide),这个指南根据科学测量各种人类皮肤类型中数千种实际肤色而建立,为再现实体肤色而配制,被称为人类肤色的完整视觉参考。
110种人类肤色被从1Y01 SP至4R15 SP编号,适用于各个人种。 文摘菌从中选取了比符合中国人肤色的1Y01-1Y13作为对比色卡。
然后将肤色颜色RGB与色卡的RGB数值进行对比,因为人眼对于R、G、B的敏感程度不同,在转换的时候需要给予不同的权重。
人类视觉对绿色最敏感,因此它具有最大的系数值(0.7152),对蓝色最不敏感,因此具有最小的系数(0.0722)。
'''
这是小编准备的python爬虫学习资料,加群:821460695 即可免费获取!
'''
def Compare(list,color):
min=100
count=len(list)
for i in range(count):
value=list[i]
error=abs(color[0]-value[0])*0.2126+abs(color[1]-value[1])*0.7152+abs(color[2]-value[2])*0.0722
if(error
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?