自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

拍個自拍,讓Python告訴你,軍訓(xùn)過后你黑了幾度?

開發(fā) 后端
軍訓(xùn)前和軍訓(xùn)后,就是“白古”和“黑古”的差別啊!想知道自己軍訓(xùn)后究竟曬黑了多少么?下面文摘菌就帶你用Python看看,自己究竟軍訓(xùn)后黑了幾個度。

[[277454]]

大數(shù)據(jù)文摘出品

作者:曹培信、寧靜

一年一度的大學(xué)開學(xué)季,一年一度的軍訓(xùn)季。

在六月中旬高考結(jié)束之后,萬千學(xué)子迎來了他們?nèi)松凶铋L也是最無憂無慮的假期,到了八月底九月初,他們將踏上人生的一段重要旅程——大學(xué)。

然而等待他們的第一課,便是軍訓(xùn)。

每所高校對軍訓(xùn)的要求不同,從時間來看,短的只有5天,長的多達一個月,根據(jù)網(wǎng)上一份軍訓(xùn)時間排行榜,比如清華大學(xué),以34天穩(wěn)居第二。(警校排第一也是無可厚非了,不過吉林的院校確實熱衷軍訓(xùn),前十中兩所吉林的院校上榜)

除了一些開始又晚、時間又長的院校(比如重慶大學(xué)),大部分院校的軍訓(xùn)應(yīng)該已經(jīng)結(jié)束了,然而經(jīng)歷了軍姿、齊步、正步、閱兵甚至拉練的“摧殘”后,軍訓(xùn)歲月在身上留下的最深的痕跡便是——曬!黑!了!

[[277455]]

圖片來自網(wǎng)絡(luò)

軍訓(xùn)前和軍訓(xùn)后,就是“白古”和“黑古”的差別啊!想知道自己軍訓(xùn)后究竟曬黑了多少么?下面文摘菌就帶你用Python看看,自己究竟軍訓(xùn)后黑了幾個度。

基于RGB和YCbCr顏色空間的混合膚色檢測

想知道自己的皮膚顏色,首先要將皮膚檢測出來。

膚色檢測有很多方法,比如:

  • 基于RGB的顏色空間模型;
  • 基于橢圓皮膚模型的皮膚檢測;
  • YCrCb顏色空間Cr分量+Otsu法閾值分割;
  • 基于YCrCb顏色空間Cr,Cb范圍篩選法;
  • HSV顏色空間H范圍篩選法;
  • opencv自帶膚色檢測類AdaptiveSkinDetector;

相關(guān)鏈接:https://blog.csdn.net/qq_22527639/article/details/81501565

2004年,Georgy Kukharev和Adam Nowosielski為了提高模型的穩(wěn)定性,將多個顏色空間結(jié)合,提出RGB顏色空間和YCbCr顏色空間的混合膚色檢測器。像素值滿足如下條件:

實現(xiàn)的代碼也很簡單,首先引入必要的包:

  1. import cv2 
  2. import numpy as np 
  3. from matplotlib import pyplot as plt 

然而操縱圖像,將RGB顏色空間3通道的值和YCbCr顏色空間3通道的值結(jié)合起來,然后根據(jù)判別條件進行膚色檢測:

  1. def skin_color(imgFile): 
  2.  
  3.  
  4.         # load an original image 
  5.         img = cv2.imread(imgFile) 
  6.  
  7.  
  8.         rows,cols,channels = img.shape 
  9.  
  10.  
  11.         # convert color space from rgb to ycbcr 
  12.         imgYcc = cv2.cvtColor(img, cv2.COLOR_BGR2YCR_CB) 
  13.           
  14.         # convert color space from bgr to rgb                         
  15.         img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 
  16.           
  17.         # prepare an empty image space 
  18.         imgSkin = np.zeros(img.shape, np.uint8) 
  19.         # copy original image 
  20.         imgimgSkin = img.copy() 
  21.  
  22.  
  23.         s=0 
  24.         sum_R=sum_G=sum_B=0 
  25.         for r in range(rows): 
  26.             for c in range(cols): 
  27.                  
  28.                 # non-skin area if skin equals 0, skin area otherwise         
  29.                 skin = 0 
  30.  
  31.  
  32.                 # get values from rgb color space 
  33.                 R = img.item(r,c,0) 
  34.                 G = img.item(r,c,1) 
  35.                 B = img.item(r,c,2) 
  36.                  
  37.                 # get values from ycbcr color space    
  38.                 Y = imgYcc.item(r,c,0) 
  39.                 Cr = imgYcc.item(r,c,1) 
  40.                 Cb = imgYcc.item(r,c,2)                                                                                                                                         
  41.                 # skin color detection 
  42.                  
  43.                 if R > G and R > B: 
  44.                     if (G >= B and 5 * R - 12 * G + 7 * B >= 0) or (G < B and 5 * R + 7 * G - 12 * B >= 0): 
  45.                         if Cr > 135 and Cr < 180 and Cb > 85 and Cb < 135 and Y > 80: 
  46.                          # print 'Skin detected!' 

參考鏈接:https://blog.csdn.net/shadow_guo/article/details/43635181

對比色卡,看看你黑了幾度

檢測出了皮膚的區(qū)域,我們就需要將皮膚區(qū)域的顏色RGB值計算出來,然后與色卡進行對比。

說到色卡,不得不提到Pantone(潘通)——一家專注于研究顏色的公司,以其Pantone顏色匹配系統(tǒng)(PMS)而聞名,該系統(tǒng)被廣泛用于各種行業(yè),特別是平面設(shè)計,時裝設(shè)計,產(chǎn)品設(shè)計,印刷和制造,并支持從設(shè)計到生產(chǎn)的色彩管理。

2013年,潘通發(fā)布了一款彩通膚色指南(PANTONE SkinTone Guide),這個指南根據(jù)科學(xué)測量各種人類皮膚類型中數(shù)千種實際膚色而建立,為再現(xiàn)實體膚色而配制,被稱為人類膚色的完整視覺參考。

110種人類膚色被從1Y01 SP至4R15 SP編號,適用于各個人種。

文摘菌從中選取了比符合中國人膚色的1Y01-1Y13作為對比色卡。

從左至右依次為0-12度

然后將膚色顏色RGB與色卡的RGB數(shù)值進行對比,因為人眼對于R、G、B的敏感程度不同,在轉(zhuǎn)換的時候需要給予不同的權(quán)重。

人類視覺對綠色最敏感,因此它具有最大的系數(shù)值(0.7152),對藍色最不敏感,因此具有最小的系數(shù)(0.0722)。

  1. def Compare(list,color): 
  2.     min=100 
  3.     count=len(list) 
  4.     for i in range(count): 
  5.         value=list[i] 
  6.         error=abs(color[0]-value[0])*0.2126+abs(color[1]-value[1])*0.7152+abs(color[2]-value[2])*0.0722 
  7.         if(error<min): 
  8.             min=error 
  9.             iindex=i         
  10.     return index+1 

最后我們輸入“白古”和“黑古”的圖片,與比色卡的RGB數(shù)值進行對比,輸出結(jié)果:

  1. if __name__ == '__main__': 
  2.      
  3.     img_before'images/before1.jpg' 
  4.     img_after='images/after.jpg' 
  5.     color_before=skin_color(img_before) 
  6.     color_after=skin_color(img_after) 
  7.     print("before:the extracted RGB value of the skin color is {0}".format(color_before)) 
  8.     print("after:the extracted RGB value of the color is {0}".format(color_after)) 
  9.     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)] 
  10.     #color_dir="skin_color" 
  11.     #skincolor.load_color(color_dir,list) 
  12.      
  13.     #print(list) 
  14.     #print(list) 
  15.     degree_before=Compare(list,color_before) 
  16.     degree_after=Compare(list,color_after) 
  17.     print("before:the degree of the skin color is {0}".format(degree_before)) 
  18.     print("after:the degree of the skin color is {0}".format(degree_after)) 

輸出的結(jié)果如下圖所示:

也就是說,“黑古”比“白古”整整黑了5個度,雖然文摘菌認為結(jié)果可能還有偏差,因為12是比色表的最高值,“黑古”很可能已經(jīng)爆表了。

軍訓(xùn)結(jié)束,寫代碼的日子開始了

也許當你拍下自己軍訓(xùn)后的照片,用文摘菌的代碼和自己一個月前的自拍對比了一下,然后留下了傷心的眼淚。

文摘菌想告訴你:你不是一個人在戰(zhàn)斗!

今年參加軍訓(xùn)的大學(xué)新生有數(shù)百萬,短則5天,長則一個月的軍訓(xùn),風吹日曬,大家的皮膚變黑在所難免,然而,就算是1個月的軍訓(xùn),也并不能真正掌握多少軍事技能,其實重要的還是原本初次見面還陌生的同班同學(xué),通過軍訓(xùn)開始熟絡(luò)起來;原本還陌生的校園,也齊步走了幾個來回。

可以說,軍訓(xùn)是大學(xué)的預(yù)科班,結(jié)束了軍訓(xùn),就正式開始了大學(xué)生活。

文摘菌本著行業(yè)內(nèi)人士的身份,自然要對那些報讀計算機相關(guān)專業(yè)的新生們說一句:軍訓(xùn)結(jié)束,你們寫代碼的日子就要開始了!

也許在某個深夜,當你停下敲擊鍵盤的雙手,撫摸著額前稀疏的頭發(fā),你可能會意識到,原來軍訓(xùn)并不是大學(xué)最痛苦的時候。

【本文是51CTO專欄機構(gòu)大數(shù)據(jù)文摘的原創(chuàng)譯文,微信公眾號“大數(shù)據(jù)文摘( id: BigDataDigest)”】

     大數(shù)據(jù)文摘二維碼

戳這里,看該作者更多好文 

 

責任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2014-11-05 10:58:00

編程

2013-07-10 14:58:22

2015-03-02 10:08:09

Apple Watch

2019-04-01 14:16:42

IBM服務(wù)數(shù)字化轉(zhuǎn)型

2021-02-27 10:38:56

Python結(jié)構(gòu)數(shù)據(jù)

2019-07-24 13:45:46

開發(fā)技能代碼

2016-01-22 12:59:25

2011-03-07 09:44:09

赤裸的密碼密碼

2010-07-15 10:04:46

2012-07-03 16:56:12

Hadoop

2018-11-19 15:06:23

Python算法

2018-05-15 09:24:19

硬盤網(wǎng)絡(luò)CPU

2015-09-02 11:44:39

視頻云華為

2018-11-06 13:24:27

爬蟲分析房租

2020-02-24 12:34:21

JuliaPython編程語言

2015-11-06 09:41:03

圖標可視化

2018-09-03 14:49:27

Python實戰(zhàn)項目

2022-04-29 08:00:36

web3區(qū)塊鏈比特幣

2017-09-26 11:40:38

Juniper安全Contrail Se

2023-05-24 10:24:56

代碼Python
點贊
收藏

51CTO技術(shù)棧公眾號