您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 泰安分类信息网,免费分类信息发布

各大新生的军训马上快结束了!Python告诉你军训前后你黑了几度

2019/9/30 1:58:53发布123次查看
一年一度的大学开学季,一年一度的军训季。
在六月中旬高考结束之后,万千学子迎来了他们人生中最长也是最无忧无虑的假期,到了八月底九月初,他们将踏上人生的一段重要旅程——大学。
然而等待他们的第一课,便是军训。
每所高校对军训的要求不同,从时间来看,短的只有5天,长的多达一个月,根据网上一份军训时间排行榜,比如清华大学,以34天稳居第二。(警校排第一也是无可厚非了,不过吉林的院校确实热衷军训,前十中两所吉林的院校上榜)
除了一些开始又晚、时间又长的院校(比如重庆大学),大部分院校的军训应该已经结束了,然而经历了军姿、齐步、正步、阅兵甚至拉练的“摧残”后,军训岁月在身上留下的最深的痕迹便是——晒!黑!了!
图片来自网络
军训前和军训后,就是“白古”和“黑古”的差别啊!想知道自己军训后究竟晒黑了多少么?下面文摘菌就带你用python看看,自己究竟军训后黑了几个度。
基于rgb和ycbcr颜色空间的混合肤色检测
想知道自己的皮肤颜色,首先要将皮肤检测出来。
肤色检测有很多方法,比如:
基于rgb的颜色空间模型;基于椭圆皮肤模型的皮肤检测;ycrcb颜色空间cr分量+otsu法阈值分割;基于ycrcb颜色空间cr,cb范围筛选法;hsv颜色空间h范围筛选法;opencv自带肤色检测类adaptiveskindetector;
相关链接:
/article/details/81501565
2004年,georgy kukharev和adam nowosielski为了提高模型的稳定性,将多个颜色空间结合,提出rgb颜色空间和ycbcr颜色空间的混合肤色检测器。像素值满足如下条件:
实现的代码也很简单,首先引入必要的包:
import cv2
import numpy as np
from matplotlib import pyplot as plt
然而操纵图像,将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 = 0):
if cr > 135 and cr 85 and cb 80:
# print skin detected!
参考链接:

对比色卡,看看你黑了几度
检测出了皮肤的区域,我们就需要将皮肤区域的颜色rgb值计算出来,然后与色卡进行对比。
说到色卡,不得不提到pantone(潘通)——一家专注于研究颜色的公司,以其pantone颜色匹配系统(pms)而闻名,该系统被广泛用于各种行业,特别是平面设计,时装设计,产品设计,印刷和制造,并支持从设计到生产的色彩管理。
2013年,潘通发布了一款彩通肤色指南(pantone skintone guide),这个指南根据科学测量各种人类皮肤类型中数千种实际肤色而建立,为再现实体肤色而配制,被称为人类肤色的完整视觉参考。
110种人类肤色被从1y01 sp至4r15 sp编号,适用于各个人种。
文摘菌从中选取了比符合中国人肤色的1y01-1y13作为对比色卡。
从左至右依次为0-12度
然后将肤色颜色rgb与色卡的rgb数值进行对比,因为人眼对于r、g、b的敏感程度不同,在转换的时候需要给予不同的权重。
人类视觉对绿色最敏感,因此它具有最大的系数值(0.7152),对蓝色最不敏感,因此具有最小的系数(0.0722)。
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
min=error
index=i
return index+1
最后我们输入“白古”和“黑古”的图片,与比色卡的rgb数值进行对比,输出结果:
if __name__ == __main__:
img_before= images/before1.jpg
img_after=images/after.jpg
color_before=skin_color(img_before)
color_after=skin_color(img_after)
print(before:the extracted rgb value of the skin color is {0}.format(color_before))
print(after:the extracted rgb value of the color is {0}.format(color_after))
list=[(200, 172, 153), (200, 169, 149), (197, 166, 145), (194, 163, 142), (190, 157, 134), (187, 152, 129), (182, 146, 121), (177, 136, 108), (168, 127, 100), (160, 118, 90), (148, 108, 81), (135, 98, 73), (119, 87, 65)]
#color_dir=skin_color
#skincolor.load_color(color_dir,list)
#print(list)
#print(list)
degree_before=compare(list,color_before)
degree_after=compare(list,color_after)
print(before:the degree of the skin color is {0}.format(degree_before))
print(after:the degree of the skin color is {0}.format(degree_after))
输出的结果如下图所示:
也就是说,“黑古”比“白古”整整黑了5个度,虽然文摘菌认为结果可能还有偏差,因为12是比色表的最高值,“黑古”很可能已经爆表了。
军训结束,写代码的日子开始了
也许当你拍下自己军训后的照片,用文摘菌的代码和自己一个月前的自拍对比了一下,然后留下了伤心的眼泪。
文摘菌想告诉你:你不是一个人在战斗!
今年参加军训的大学新生有数百万,短则5天,长则一个月的军训,风吹日晒,大家的皮肤变黑在所难免,然而,就算是1个月的军训,也并不能真正掌握多少军事技能,其实重要的还是原本初次见面还陌生的同班同学,通过军训开始熟络起来;原本还陌生的校园,也齐步走了几个来回。
可以说,军训是大学的预科班,结束了军训,就正式开始了大学生活。
文摘菌本着行业内人士的身份,自然要对那些报读计算机相关专业的新生们说一句:军训结束,你们写代码的日子就要开始了!
也许在某个深夜,当你停下敲击键盘的双手,抚摸着额前稀疏的头发,你可能会意识到,原来军训并不是大学最痛苦的时候。

泰安分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录