隨著圣誕的到來,想給給自己的頭像加上一頂圣誕帽。如果不是頭像,就加一個圣誕老人陪伴。
創(chuàng)新互聯(lián)是一家專業(yè)提供中山企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、HTML5、小程序制作等業(yè)務(wù)。10年已為中山眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。用Python給頭像加上圣誕帽,看了下大概也都是來自2017年大神的文章:https://zhuanlan.zhihu.com/p/32283641
主要流程
素材準(zhǔn)備
人臉檢測與人臉關(guān)鍵點(diǎn)檢測
調(diào)整大小,添加帽子
用dlib的正臉檢測器進(jìn)行人臉檢測,用dlib提供的模型提取人臉的五個關(guān)鍵點(diǎn)
調(diào)整帽子大小,帶帽
選取兩個眼角的點(diǎn),求中心作為放置帽子的x方向的參考坐標(biāo),y方向的坐標(biāo)用人臉框上線的y坐標(biāo)表示。然后我們根據(jù)人臉檢測得到的人臉的大小調(diào)整帽子的大小,使得帽子大小合適。
# 選取左右眼眼角的點(diǎn) point1 = shape.part(0) point2 = shape.part(2) # 求兩點(diǎn)中心 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() # 根據(jù)人臉大小調(diào)整帽子大小 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 # 根據(jù)人臉大小調(diào)整帽子大小 resized_hat = cv2.resize(rgb_hat,(resized_hat_w,resized_hat_h))