| 
                        副标题[/!--empirenews.page--]
                           
大数据文摘出品 
作者:曹培信、宁静 
一年一度的大学开学季,一年一度的军训季。 
在六月中旬高考结束之后,万千学子迎来了他们人生中最长也是最无忧无虑的假期,到了八月底九月初,他们将踏上人生的一段重要旅程——大学。 
然而等待他们的第一课,便是军训。 
每所高校对军训的要求不同,从时间来看,短的只有5天,长的多达一个月,根据网上一份军训时间排行榜,比如清华大学,以34天稳居第二。(警校排第一也是无可厚非了,不过吉林的院校确实热衷军训,前十中两所吉林的院校上榜) 
  
除了一些开始又晚、时间又长的院校(比如重庆大学),大部分院校的军训应该已经结束了,然而经历了军姿、齐步、正步、阅兵甚至拉练的“摧残”后,军训岁月在身上留下的最深的痕迹便是——晒!黑!了! 
  
图片来自网络 
军训前和军训后,就是“白古”和“黑古”的差别啊!想知道自己军训后究竟晒黑了多少么?下面文摘菌就带你用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颜色空间的混合肤色检测器。像素值满足如下条件: 
  
实现的代码也很简单,首先引入必要的包: 
- 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 
 -         imgimgSkin = 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.csdn.net/shadow_guo/article/details/43635181 
对比色卡,看看你黑了几度 
检测出了皮肤的区域,我们就需要将皮肤区域的颜色RGB值计算出来,然后与色卡进行对比。 
                                                (编辑:91站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |