对于广大“钢铁直男”的程序员来说,送什么礼物给女朋友一直是个世纪难题。

其实哄女朋友开心最深的套路就是花式送口红,就问谁抵挡得住啊啊啊啊......

“没有什么问题是一支口红解决不了的,如果有,那就两支。”于是,直男们纷纷开始各种买口红、送口红……

毕竟李佳琦一句"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红色值_拿下抖音小姐姐,我写了个口红色号识别器相关推荐

  1. 用 Python 全自动下载抖音小姐姐视频(附源码)

    作者:法纳斯特 为什么写这篇文章,主要也是因为看了一篇文章. 「用Python在抖音扒了这些高颜值女神后,突然成了人生赢家」,文中简述了一名工程师利用Python+ADB+鹅厂的AI,一晚上关注了一千 ...

  2. 潘通色号与rgb转换_中秋福利!手把手教你用Python做一只口红色号识别器,秒变李佳琦...

    大数据文摘编辑组出品技术实现:宁静 中秋节,直男送礼,首选口红.毕竟李佳琦一句"OMG买它",女朋友披头散发抢购,钱包就空了一半.但是,口红色号千千万,选对了牌子才成功了一半.快乐 ...

  3. python爬取无水印抖音小姐姐视频(2018最新,含Pyqt客户端)

    各位小伙伴,之前一段时间迷上了抖音小姐姐视频,但是下载的视频都有水印,于是自己用Python 写了个爬取小姐姐视频的工具,大家可以直接拷贝到自己编译器上运行.此外,我还利用pyqt5写了个操作界面,这 ...

  4. 快手老司机与抖音小姐姐 ,终有一战?

    点击"开发者技术前线",选择"星标?" 在看|星标|留言,  真爱 来源:网易科技(ID:tech_163) | 彭丽慧  编辑 | 章剑锋  出品 | 网易科 ...

  5. python可以自动录凭证_我用 Python 实现自动刷抖音小姐姐

    具体实现代码 # 图片压缩比例 SIZE_normal = 1.0 SIZE_small = 1.5 SIZE_more_small = 2.0 # adb手机截图 def get_screen_sh ...

  6. 骚操作!用Python自动下载抖音小姐姐

    阅读文本大概需要 15 分钟. 1 目 标 场 景 相信大家平时刷抖音短视频的时候,看到颜值高的小姐姐,都有随手点赞关注的习惯. 如果一条条去刷确实很耗时间,如果 Python 能帮忙筛选出颜值高的小 ...

  7. 抖音小姐姐属于你的四种姿势

    作 者:煌金的咸鱼 来 源:咸鱼学Python 广而告之:由于此订阅号换了个皮肤,系统自动取消了读者的公众号置顶.导致用户接受文章不及时.您可以打开订阅号,选择置顶(标星)公众号.重磅干货,第一时间送 ...

  8. pyqt5练手项目-抖音小姐姐短视频下载

    pyqt5=Python+ qt,这块的资料现在慢慢多起来了,这里给大家送一个小的demo用来练手. 里面技术点: 1)控件 Pushbutton的使用: 2)pyqt5线程的用法; 3)界面和逻辑分 ...

  9. 21年抓取抖音小姐姐最新版教程!最关键的是无水印下载。这还学不会?

    概叙 我想很多人一开始接触爬虫,想学的目的就是抓取某些小姐姐的视频啊,图片啊 或者抓取小说之类的!这个应该是大家想学爬虫的一个动力吧!今天就给大家整一期爬小姐姐视频,本来爬正经视频的,但是想了想,还是 ...

最新文章

  1. Python训练营2021:构建8个真实世界的Python项目
  2. 如何动态调用WebServices
  3. 动态链接库和静态库的区别
  4. mysql索引有几种使用索引的好处_mysql索引的类型和优缺点
  5. Lottie 站在巨人的肩膀上实现 Android 酷炫动画效果
  6. 厉害插件_2个相见恨晚的浏览器插件,让你的工作效率提升100%
  7. Spring bean作用范围
  8. ASCII与unicode的转换
  9. Uva 247 - Calling Circles(传递闭包 / 强连通分量)
  10. jquery ajax jsonp跨域调用实例代码
  11. BZOJ1969 [AHIO2005]航线规划
  12. VB基础入门教程.doc
  13. 和利时dcs系统服务器设置,和利时DCS控制系统组态流程
  14. matlab进化树的下载,Dendroscope(进化树显示分析软件)
  15. python 回归方程及回归系数的显著性检验_使用Excel和python来做回归分析
  16. 数值分析常见算法C++实现
  17. 【arcgis 批量将属性表批量导出成excel】
  18. 【视频】马尔可夫链蒙特卡罗方法MCMC原理与R语言实现|数据分享
  19. 养生产品如何进行线上推广?产品线上推广的渠道有哪些?
  20. 简单实现mui-底部选项卡

热门文章

  1. Mockito –带有注释和静态方法的额外接口
  2. Spring MVC 3模板和Apache Tiles
  3. JRockit – JRCMD有用的命令
  4. Rube GoldbergSpring整合
  5. Java 7对抑制异常的支持
  6. Eclipse 如何生成项目的javadoc(API 文档)
  7. Linux 命令之 let -- bash 中用于计算的工具,用于执行一个或多个表达式
  8. HH SaaS电商系统的商品关联版式功能模块设计
  9. linux视音频解码教程,音视频编解码:NVIDIA Jetson Linux Multimedia API(总结)
  10. php主机安装v2,RackTables 安装教程Installation GuideV2