日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發(fā)布時間:2025/3/20 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 拍个自拍,让Python告诉你,军训过后你黑了几度? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一年一度的大學開學季,一年一度的軍訓季。

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

然而等待他們的第一課,便是軍訓。

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

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

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

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

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

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

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

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

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

import cv2 import numpy as np from matplotlib import pyplot as plt

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

''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助, 群里還有不錯的視頻學習教程和PDF電子書! ''' def skin_color(imgFile):# load an original imageimg = cv2.imread(imgFile)rows,cols,channels = img.shape# convert color space from rgb to ycbcrimgYcc = 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 spaceimgSkin = np.zeros(img.shape, np.uint8)# copy original imageimgSkin = img.copy()s=0sum_R=sum_G=sum_B=0for 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 spaceR = 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 detectionif 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!'

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

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

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

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

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

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

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

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

''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助, 群里還有不錯的視頻學習教程和PDF電子書! ''' def Compare(list,color):min=100count=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.0722if(error<min):min=errorindex=i return index+1

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

''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助, 群里還有不錯的視頻學習教程和PDF電子書! ''' 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是比色表的最高值,“黑古”很可能已經(jīng)爆表了。

總結

以上是生活随笔為你收集整理的拍个自拍,让Python告诉你,军训过后你黑了几度?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。