知行编程网知行编程网  2022-04-08 08:00 知行编程网 隐藏边栏 |   抢沙发  19 
文章评分 0 次,平均分 0.0

拍个自拍,让Python告诉你,军训过后你黑了几度?

大数据文摘出品

作者:曹培信、宁静


一年一度的大学开学季,一年一度的军训季。


在六月中旬高考结束之后,万千学子迎来了他们人生中最长也是最无忧无虑的假期,到了八月底九月初,他们将踏上人生的一段重要旅程——大学。


然而等待他们的第一课,便是军训


每所高校对军训的要求不同,从时间来看,短的只有5天,长的多达一个月,根据网上一份军训时间排行榜,比如清华大学,以34天稳居第二。(警校排第一也是无可厚非了,不过吉林的院校确实热衷军训,前十中两所吉林的院校上榜)


拍个自拍,让Python告诉你,军训过后你黑了几度?


除了一些开始又晚、时间又长的院校(比如重庆大学),大部分院校的军训应该已经结束了,然而经历了军姿、齐步、正步、阅兵甚至拉练的“摧残”后,军训岁月在身上留下的最深的痕迹便是——晒!黑!了!


拍个自拍,让Python告诉你,军训过后你黑了几度?

图片来自网络


军训前和军训后,就是“白古”和“黑古”的差别啊!想知道自己军训后究竟晒黑了多少么?下面文摘菌就带你用Python看看,自己究竟军训后黑了几个度。


基于RGB和YCbCr颜色空间的混合肤色检测


想知道自己的皮肤颜色,首先要将皮肤检测出来。


肤色检测有很多方法,比如:


  • 基于RGB的颜色空间模型;

  • 基于椭圆皮肤模型的皮肤检测;

  • YCrCb颜色空间Cr分量+Otsu法阈值分割;

  • 基于YCrCb颜色空间Cr,Cb范围筛选法;

  • HSV颜色空间H范围筛选法;

  • opencv自带肤色检测类AdaptiveSkinDetector;


相关链接:

https://blog.csdn.net/qq_22527639/article/details/81501565


2004年,Georgy Kukharev和Adam Nowosielski为了提高模型的稳定性,将多个颜色空间结合,提出RGB颜色空间和YCbCr颜色空间的混合肤色检测器。像素值满足如下条件:


拍个自拍,让Python告诉你,军训过后你黑了几度?


实现的代码也很简单,首先引入必要的包:



然而操纵图像,将RGB颜色空间3通道的值和YCbCr颜色空间3通道的值结合起来,然后根据判别条件进行肤色检测:



参考链接:

https://blog.csdn.net/shadow_guo/article/details/43635181


对比色卡,看看你黑了几度


检测出了皮肤的区域,我们就需要将皮肤区域的颜色RGB值计算出来,然后与色卡进行对比。


说到色卡,不得不提到Pantone(潘通)——一家专注于研究颜色的公司,以其Pantone颜色匹配系统(PMS)而闻名,该系统被广泛用于各种行业,特别是平面设计,时装设计,产品设计,印刷和制造,并支持从设计到生产的色彩管理。


2013年,潘通发布了一款彩通肤色指南(PANTONE SkinTone Guide),这个指南根据科学测量各种人类皮肤类型中数千种实际肤色而建立,为再现实体肤色而配制,被称为人类肤色的完整视觉参考。


110种人类肤色被从1Y01 SP至4R15 SP编号,适用于各个人种。


拍个自拍,让Python告诉你,军训过后你黑了几度?


文摘菌从中选取了比符合中国人肤色的1Y01-1Y13作为对比色卡。


拍个自拍,让Python告诉你,军训过后你黑了几度?

从左至右依次为0-12度


然后将肤色颜色RGB与色卡的RGB数值进行对比,因为人眼对于R、G、B的敏感程度不同,在转换的时候需要给予不同的权重。


拍个自拍,让Python告诉你,军训过后你黑了几度?


人类视觉对绿色最敏感,因此它具有最大的系数值(0.7152),对蓝色最不敏感,因此具有最小的系数(0.0722)。



最后我们输入“白古”和“黑古”的图片,与比色卡的RGB数值进行对比,输出结果:



输出的结果如下图所示:


拍个自拍,让Python告诉你,军训过后你黑了几度?


也就是说,“黑古”比“白古”整整黑了5个度,虽然文摘菌认为结果可能还有偏差,因为12是比色表的最高值,“黑古”很可能已经爆表了。


军训结束,写代码的日子开始了


也许当你拍下自己军训后的照片,用文摘菌的代码和自己一个月前的自拍对比了一下,然后留下了伤心的眼泪。


文摘菌想告诉你:你不是一个人在战斗!


今年参加军训的大学新生有数百万,短则5天,长则一个月的军训,风吹日晒,大家的皮肤变黑在所难免,然而,就算是1个月的军训,也并不能真正掌握多少军事技能,其实重要的还是原本初次见面还陌生的同班同学,通过军训开始熟络起来;原本还陌生的校园,也齐步走了几个来回。


可以说,军训是大学的预科班,结束了军训,就正式开始了大学生活。


文摘菌本着行业内人士的身份,自然要对那些报读计算机相关专业的新生们说一句:军训结束,你们写代码的日子就要开始了!


也许在某个深夜,当你停下敲击键盘的双手,抚摸着额前稀疏的头发,你可能会意识到,原来军训并不是大学最痛苦的时候。


最后,需要完整代码的同学请在后台回复“军训”



点「在看」的人都变好看了哦!

本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享