十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
随着圣诞的到来,想给给自己的头像加上一顶圣诞帽。如果不是头像,就加一个圣诞老人陪伴。
创新互联是一家专业提供中山企业网站建设,专注与成都网站制作、成都做网站、外贸营销网站建设、HTML5、小程序制作等业务。10年已为中山众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。用Python给头像加上圣诞帽,看了下大概也都是来自2017年大神的文章:https://zhuanlan.zhihu.com/p/32283641
主要流程
素材准备
人脸检测与人脸关键点检测
调整大小,添加帽子
用dlib的正脸检测器进行人脸检测,用dlib提供的模型提取人脸的五个关键点
调整帽子大小,带帽
选取两个眼角的点,求中心作为放置帽子的x方向的参考坐标,y方向的坐标用人脸框上线的y坐标表示。然后我们根据人脸检测得到的人脸的大小调整帽子的大小,使得帽子大小合适。
# 选取左右眼眼角的点 point1 = shape.part(0) point2 = shape.part(2) # 求两点中心 eyes_center = ((point1.x+point2.x)//2,(point1.y+point2.y)//2) # cv2.circle(img,eyes_center,3,color=(0,255,0)) # cv2.imshow("image",img) # cv2.waitKey() # 根据人脸大小调整帽子大小 factor = 1.5 resized_hat_h = int(round(rgb_hat.shape[0]*w/rgb_hat.shape[1]*factor)) resized_hat_w = int(round(rgb_hat.shape[1]*w/rgb_hat.shape[1]*factor)) if resized_hat_h > y: resized_hat_h = y-1 # 根据人脸大小调整帽子大小 resized_hat = cv2.resize(rgb_hat,(resized_hat_w,resized_hat_h))