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

python期末总结 python大一上半学期期末总结 不知不觉就度过一个学期,作为一名顺利度过大一上半学期的学生,我受益颇丰。回顾加入泸州职业技术学院来的点点滴滴,历历在目。   学习方面,我克服了从高中到大学转变的种种不适,经过一学期的锻炼,我认识到了大学与高中在学习动机、学习动力以及学习习惯方面的重大区别,并有了一点心得。   通过这一学期,我适应了大学的生活,让自己在新的人生旅程里有了一个好的开始。也让我明白自己将来要走怎样的路,明确了路的方向。进入大学,第一学期就这样悄无声息的过了,在学业上,好像我并没有太大的收获。但 阅读详情

640?wx_fmt=png

大数据文摘出品

作者:曹培信、宁静

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

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

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

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

640?wx_fmt=png

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

640?wx_fmt=png

图片来自网络

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

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

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

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

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

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

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

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

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

  • opencv自带肤色检测类AdaptiveSkinDetector;

相关链接:

https://blog.youkuaiyun.com/qq_22527639/article/details/81501565

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

640?wx_fmt=jpeg

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

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 < 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!'

参考链接:

https://blog.youkuaiyun.com/shadow_guo/article/details/43635181

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

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

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

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

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

640?wx_fmt=jpeg

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

640?wx_fmt=jpeg

从左至右依次为0-12度

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

640?wx_fmt=png

人类视觉对绿色最敏感,因此它具有最大的系数值(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):	
            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))	

输出的结果如下图所示:

640?wx_fmt=png

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

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

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

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

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

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

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

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

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

640?wx_fmt=png
点「在看」的人都变好看了哦!
算法竞赛备考冲刺必刷题(Python) | 蓝桥云课 2942 数字王国之军训排队 题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。(数字王国里的名字就是一个正整数,注意学生们可能出现重名的情况),此时叛逆教官来看了之后感觉十分别扭,决定将学生重新分队。排队规则为:将学生分成若干队,每队里面至少一个学生,且每队里面学生的名字不能出现倍数关系(注意名字相同也算是倍数关系)数字王国开学了,它们也和我们人类一样有开学前的军训,现在一共有。行,包含一个整数,表示最少可以分成几队。名学生,每个学生有自己的一个名字。个由空格隔开的整数,第。 阅读详情

相关推荐

字节跳动消息队列深度剖析:从BMQ架构到重复消费实战

消息队列作为分布式系统的核心基础设施,承担着解耦、异步、削峰填谷的关键职责。从Kafka到自研BMQ,字节跳动通过存储计算分离架构与EC纠删码技术解决了海量数据下的存储成本与扩展性难题。深入理解Topic、Partition、Consumer Group与Offset机制,是掌握消息队列原理的基础。消息重复消费无法完全避免,需通过幂等设计、手动提交Offset等手段兜底。同时,从嵌入式FreeRTOS消息队列到分布式消息中间件,生产者-消费者模型一脉相承。本文结合字节跳动内部实践,剖析消息队列架构演进、重复

weixin_29061509的博客 222

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

一年一度的大学开学季,一年一度的军训季。 在六月中旬高考结束之后,万千学子迎来了他们人生中最长也是最无忧无虑的假期,到了八月底九月初,他们将踏上人生的一段重要旅程——大学。 然而等待他们的第一课,便是军训。 每所高校对军训的要求不同,从时间来看,短的只有5天,长的多达一个月,根据网上一份军训时间排行榜,比如清华大学,以34天稳居第二。(警校排第一也是无可厚非了,不...

Pythoncxy的博客 524

手把手教你用gmid方法设计二级运放:从理论到仿真全流程(附避坑指南)

本文详细介绍了使用gmid方法设计二级运放的全流程,从理论到仿真实践,特别针对初学者常见问题提供避坑指南。通过系统化的晶体管尺寸确定技术,帮助工程师在性能、功耗和面积之间找到最佳平衡点,适用于模拟集成电路设计中的关键模块开发。

weixin_29213525的博客 273

赛码网算法: 军训队列( python实现 )

军训队列 题目描述某大学开学进行军训队列训练,将学生从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列剩下的依次向前靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的依次向前靠拢,继续从头开始进行一至二报数。。。以后每次从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。输入第一行为组数...

weixin_30784141的博客 480

人工智能-CS188 Project 2: Multi-agents

一、项目介绍 项目介绍网页 项目代码下载 本项目是采用Berkeley的CS188课程内容实习二的内容,在这个项目中,我们将为经典版本的Pacman 设计自动算法,包括幽灵。在此过程中,我们将实现 minimax 和 expectimax 搜索并尝试评估函数设计 完成作业只需要完成5个题目,按照项目介绍的步骤进行完成,主要是在multiAgents.py文件中进行补充代码 二、代码详情 1、Question1:Reflex Agent 略 2、Question2:Minimax 套用ppt上的minm

xiten的博客 8286

STM32外部中断与事件机制深度解析:从硬件触发到软件响应

本文深入解析STM32外部中断与事件机制,从硬件触发到软件响应的完整流程。通过对比中断和事件的应用场景、响应速度及配置方法,帮助开发者优化嵌入式系统设计,特别适合需要低功耗或高实时性的项目。

weixin_29175469的博客 413

白纸编程:49.军训报数

通过解密军训场上的缺席之谜,我不仅学到了两种不同的解决问题的方法,还深入了解了“找缺失元素”类型问题的通用思路。在实际应用中,了解并能够熟练运用这样的算法,对于数据完整性检查、错误检测等方面都具有重要的意义。在编程的世界中,寻找缺失的元素是一项常见而有趣的任务,相信通过这篇博客的学习,读者对此类问题的解决方法有了更深入的理解。

The_Scott的博客 516

告别CNN局限:用Transformer+迁移学习搞定高光谱图像分类(附Pytorch代码)

本文探讨了如何利用Transformer的自注意力机制和迁移学习策略解决高光谱图像分类中的挑战。通过结合CNN的局部特征提取和Transformer的全局建模能力,提出的DenseTransformer架构在多个数据集上实现了显著的性能提升。文章还提供了详细的PyTorch实现代码和工程优化技巧,帮助开发者快速应用这一技术。

weixin_32771907的博客 613

数字王国之军训排队

数字王国开学了,它们也和我们人类一样有开学前的军训,现在一共有 nn 名学生,每个学生有自己的一个名字 aiai​(数字王国里的名字就是一个正整数,注意学生们可能出现重名的情况),此时叛逆教官来看了之后感觉十分别扭,决定将学生重新分队。例:有 44 名学生 (2,3,4,4)(2,3,4,4),最少可以分成 (2,3)(2,3)、(4)(4)、(4)(4) 共 33 队。排队规则为:将学生分成若干队,每队里面至少一个学生,且每队里面学生的名字不能出现倍数关系(注意名字相同也算是倍数关系)。

m0_74354498的博客 304

本地部署大模型 vs 网页版大模型区别

fill:#333;color:#333;color:#333;fill:none;本地服务器/工作站硬件资源私有化部署GPU集群高速存储模型文件训练框架推理引擎。

Ds-Rag的博 1715

大模型的应用与微调:如何调用 LLM?从 OpenAI API 到本地部署

本篇文章介绍了如何调用 OpenAI、DeepSeek、Manus、通义千问等大模型 API,并探讨了 LLM 本地部署的方法。在实际应用中,可以根据需求选择云端 API 或本地化部署方案,以满足不同的计算需求和隐私要求。下一篇:大模型微调与 RAG 技术(LoRA、QLoRA、向量数据库)

晴天彩虹雨的博客 1157

springboot/java/php/node/python微信小程序军训管理系统【计算机毕设】

系统提供的即时通讯功能和通知推送服务,能够确保信息的快速准确传达,减少误解和延误。系统还能为学生提供自我学习和互动交流的平台,增强军训的趣味性和互动性,提升学生的参与度和满意度。微信小程序军训管理系统的开发不仅能够提高军训的管理效率和质量,还能够增强学生的军训体验,对于推动军训工作的信息化进程具有重要的实践意义和长远的社会价值。后端由Spring Boot提供支持,前端由Vue.js构建,数据存储和管理通过MySQL和Navicat实现,整个开发流程由Maven进行管理,并在Tomcat服务器上运行。

and867的博客 601

YOLO26涨点改进 | 独家首发创新、Conv卷积改进篇 | TGRS 2025 | YOLO26利用HLKConv分层大核卷积,含HLKConvC3k2二次创新,大核卷积改进,多种改进助力有效涨点

⭐YOLO26 作为当前主流的单阶段目标检测模型,凭借高效的特征提取与多尺度检测能力,在通用目标检测任务中表现优异,但面对小目标、低对比度目标(如红外小目标、远距离小物体)检测时,仍存在 “大感受野与细粒度特征保留矛盾”“空洞卷积伪影干扰” 等问题。将 HLKConv(分层大核卷积)引入 YOLO26,可针对性弥补这些短板,同时强化模型在特定场景下的性能与效率。🔥欢迎订阅我的专栏、带你学习使用最新-最前沿-独家YOLO26创新改进!

Ai缝合怪、助力小伙伴高效发论文 148

学生军训管理系统

开源免费分享学生军训管理系统可提供说明文档 可以通过*AIGC**技术包括:MySQL、VueJS、ElementUI、(Python或者Java或者.NET)等等*功能如图所示。可以滴我获取详细的视频介绍

a1694619497的博客 291

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

python+vue3的学生军训管理系统72540488

Python版本:python3.7+前端:vue.js+elementui框架:django/flask都有,都支持后端:python数据库:mysql数据库工具:Navicat开发软件:PyCharm1.进一步理解软件技术与理论知识。2.掌握软件编程的设计方法。3.进一步理解b/s模式的开发运用。4.掌握python软件编程,数据库mysql的使用。5.加强vue.js前端实践能力训练。6.掌握程序测试方法与技术。.Python语言。

QQ58850198的博客 567

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

赛码习题:军训队列

题目描述       某大学开学进行军训队列训练,将学生从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列剩下的依次向前靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的依次向前靠拢,继续从头开始进行一至二报数。。。以后每次从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。 ...

weixin_44953902的博客 513

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

学生军训成绩管理系统-菜单截图

小型单机版软件。用于管理和计算学生军训成绩(平时成绩,队列成绩,打靶成绩)。                   C#/ACCESS/EXCEL

weixin_34209851的博客 293

【线性DP练习题】军训队列(queue)

题目描述 操场,烈日,鸣蝉,偶尔一阵风吹过四周的香樟树,顿时感到一 阵凉爽。某大学大一新生正在进行军训。计算机系 1 班的 n 名(例如 6 人)同学,按照顺时针站成了一圈。教官要求从第 1 个人开始报数, 数到第 m 个(例如第 2 个)就出列,出列的人站成一排,如此这般, 直至 n 个人全部出列(出列顺序 2 号,4 号,6 号,3 号,1 号,5 号)。 以出列后的队伍为准,在不改变同学们站立顺序的前提下,从队伍中 选出若干个人,使得他们的身高呈上身趋势,请统计最多可以选出的人数。 输入格式 两行

1 1246

Python学完工作不好找?看看数据分析可视化都可以做什么

大数据文摘出品 作者:曹培信、宁静 一年一度的大学开学季,一年一度的军训季。 在六月中旬高考结束之后,万千学子迎来了他们人生中最长也是最无忧无虑的假期,到了八月底九月初,他们将踏上人生的一段重要旅程——大学。 然而等待他们的第一课,便是 军训。 每所高校对军训的要求不同,从时间来看,短的只有5天,长的多达一个月,根据网上一份军训时间排行榜,比如清华大学,以34天稳居第二。(警校排第...

339
上一篇: 谷歌TF2.0凌晨发布!“改变一切,力压PyTorch”
下一篇: 80后、90后、95后,哪个才是垮掉的一代?
菜鸟学Python
博客等级 码龄9年 8088粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值