红头文件rgb红色值_拿下抖音小姐姐,我写了个口红色号识别器
對于廣大“鋼鐵直男”的程序員來說,送什么禮物給女朋友一直是個世紀難題。
其實哄女朋友開心最深的套路就是花式送口紅,就問誰抵擋得住啊啊啊啊......
“沒有什么問題是一支口紅解決不了的,如果有,那就兩支。”于是,直男們紛紛開始各種買口紅、送口紅……
畢竟李佳琦一句"OMG買它”,女朋友披頭散發搶購,錢包就空了一半。
但是,口紅色號千千萬,選對了牌子才成功了一半。
快樂橙、傷心紫,姨媽紅,雞屎綠…直男眼里沒什么區別的顏色,在女生眼里各種色調、質地細微的區別都能分析一清二楚。
那么,對于直男來說,怎么才能搞清楚如此多的口紅色號呢?
我耗費一毫米發際線,琢磨了一下,做出了一個口紅色號識別器,希望能幫大家在關鍵時刻把深刻的革命友誼再升華一下。
先來看看效果。讓我們假設,小姐姐發來了一張美妝博主的美照,并暗示你,“人家也喜歡這個顏色。”
圖片來自網絡
這個時候,用我們的口紅色號識別器,就能定位嘴唇,并迅速給出它的顏色隸屬哪家品牌的哪個色號。
OMG!簡直比李佳琦還準確!
好啦,廢話不多說,馬上開始教學時間!
來自 Github 的口紅色號宇宙
要想識別口紅色號,先得讓機器知道到底都有哪些顏色。
聽柜姐介紹,紅色系有:“草莓紅、鐵銹紅、楓葉紅...”,其他還有“豆沙色、吃土色、番茄色...”
世界觀還未建立完全就要開始土崩瓦解,這看著有區別嗎?“豆沙色最為百搭,橘調的番茄色比較顯白...”眼前的黑不是黑,你說的紅是什么紅?
還好,在萬能的 Github 上找到了一個寶藏數據庫“口紅顏色可視化”,這個數據庫堪比口紅的色號宇宙,不僅囊括了當前最主流品牌的各種系列色號,還很良心的在色盤上排列了出來。
這個數據集是一個嵌套的字典數據結構,存為 json 串的形式,里面記錄了每個口紅品牌系列下不同口紅色號的顏色 id、名稱、和 16 進制顏色值。
直!男!救!星!有木有!
口紅色號可視化鏈接:
https://github.com/Ovilia/lipstick不過看著這密密麻麻的顏色,真心佩服各大口紅品牌的文案高手,是怎么樣區別每一個看不出區別的顏色,并且還要分別取名字的。
傻傻分不清的我對 5 個品牌的不同系列做了一下統計和色號錄入,于是,剩下的就交給計算機啦。
先用番茄做個實驗?
既然有了如此完備的色號數據庫,那么文摘菌就有了一個討巧的方法:要想找到合適的色號,可以直接截取顏色,然后在數據庫中進行比對。
這個方法非常好操作,在上唇色之前,我們不如先拿別的紅色物品來練手。
比如,這里有一只番茄圖片,你看這個番茄它又大又圓:
在其中截取了成色均勻、無高亮的矩形圖片:
提取這張純色圖片的 RGB 值在技術上是可行的,getcolor.py 代碼如下:
import colorsysimport PIL.Image as Imagedef get_dominant_color(image): max_score = 0.0001 dominant_color = None for count,(r,g,b) in image.getcolors(image.size[0]*image.size[1]): # 轉為HSV標準 saturation = colorsys.rgb_to_hsv(r/255.0, g/255.0, b/255.0)[1] y = min(abs(r*2104+g*4130+b*802+4096+131072)>>13,235) y = (y-16.0)/(235-16) #忽略高亮色 if y > 0.9: continue score = (saturation+0.1)*count if score > max_score: max_score = score dominant_color = (r,g,b) return dominant_color為了減少誤差,需要裁剪多個不同位置的圖片,保存在本地的一個文件夾中,讀取文件,提取顏色,求平均值,得到的番茄最終的 RGB 顏色,代碼如下:
import osimport getcolorfrom os.path import join as pjoinfrom scipy import miscdef load_color(color_dir,list): count = 0 for dir in os.listdir(color_dir): img_dir = pjoin(color_dir, dir) image = getcolor.Image.open(img_dir) image = image.convert('RGB') get=getcolor.get_dominant_color(image) list.append(get) count = count+1 #print(person_dir) #print(count) return countdef Mean_color(count,list): Mean_R=Mean_G=Mean_B=0 for i in range(count): tuple=list[i] Mean_R+=tuple[0] Mean_G+=tuple[1] Mean_B+=tuple[2] MeanC=((int)(Mean_R/count),(int)(Mean_G/count),(int)(Mean_B/count)) return Me番茄的顏色提取到了,那么和什么做比對呢?
當然是口紅的數據,文摘菌這兒用到了 5 個品牌,分別是圣羅蘭、香奈兒可可小姐、迪奧、美寶蓮、紀梵希,共 17 個系列,271 個口紅色號。
數據集是一個嵌套的字典數據結構,存為 json 串的形式,里面記錄了每個口紅品牌系列下不同口紅色號的顏色 id、名稱、和 16 進制顏色值。
lipstick.json部分數據集展示如下:
{"brands":[{"name":"圣羅蘭總結
以上是生活随笔為你收集整理的红头文件rgb红色值_拿下抖音小姐姐,我写了个口红色号识别器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑系统桌面安装教程(下载安装电脑桌面)
- 下一篇: 腾讯offer是什么样子_月薪35K:2