怎么通过图片辨别口红的颜色,辨别口红颜色的方法

首页 > 经验 > 作者:YD1662023-12-03 14:55:18

可以看到和图片的颜色已经十分接近了,而数据集合lipstick.json中这种口红存储的16进制颜色值为#842C71,对应的颜色如下:

怎么通过图片辨别口红的颜色,辨别口红颜色的方法(25)

明显看到数据集存储的颜色和实际照片的颜色是有些许误差的,而在本文算法实现过程中,又不可避免的有以下误差:

  1. 嘴唇区域截取不可避免会截取到皮肤中的一部分颜色,虽然算法已经将那种可能降到最低;
  2. 颜色提取上,虽然截取多个嘴唇图片求平均值,但是本身的提取算法还是和实际值稍有偏差;
  3. RGB颜色相似度比对的算法也不够精确;
  4. 最最重要的是,照片必须是原图,而且光线要自然,加了滤镜的图是怎么也不可能识别出来的。

以上种种,使得让计算机快速高效地识别不同的口红色号还是有困难的,原来计算机有时候也会很直男。

文末福利:实时人像口红色号预测

看到这儿,可能很多读者朋友想实时地试一下能不能让计算机判断自己的口红色号,这对于OpenCV这一强大的图形操作库来说,不是什么问题,它可以打开你的摄像头,读取每一帧的图片,结合前文提到的人脸识别代码,可以实时地截取到嘴唇区域的图片,然后交给计算机预测,从此再也不怕女朋友的灵魂拷问!

怎么通过图片辨别口红的颜色,辨别口红颜色的方法(26)

最后,附上打开摄像头的代码,快叫女朋友过来试下吧!

#coding=utf8import cv2import timeprint('Press Esc to exit')imgWindow = cv2.namedWindow('FaceDetect', cv2.WINDOW_NORMAL)import sysimport osimport dlibimport globimport numpyfrom skimage import iodef detect_face(): capInput = cv2.VideoCapture(0) #nextCaptureTime = time.time() faces = [] feas = [] if not capInput.isOpened(): print('Capture failed because of camera') while 1: ret, img = capInput.read() gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) gray = cv2.equalizeHist(gray) time=0 eTime = time.time() 0.1 detector = dlib.get_frontal_face_detector()  predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat') dets = detector(gray, 1) print("Number of faces detected: {}".format(len(dets))) for a in dets: cv2.rectangle(img,(a.left(),a.top()),(a.right(),a.bottom()),(255,0,0)) for index, face in enumerate(dets): print('face {}; left {}; top {}; right {}; bottom {}'.format(index, face.left(), face.top(), face.right(), face.bottom())) shape = predictor(gray, face) for i, pt in enumerate(shape.parts()): #print('Part {}: {}'.format(i, pt)) pt_pos = (pt.x, pt.y) cv2.circle(img, pt_pos, 2, (255, 0, 0), 1) cv2.imshow('FaceDetect',img) if cv2.waitKey(1) & 0xFF == 27: break capInput.release() cv2.destroyAllWindows()if __name__ == "__main__": detect_face()

好啦,佳期如梦,双星良夜,在这个充满爱意的日子里,定位好女神常用的口红色号,和那个她来场华丽的邂逅吧!

不说了,文摘菌去下单口红了!

,
上一页34567末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.