您好,登錄后才能下訂單哦!
隨著圣誕的到來,想給給自己的頭像加上一頂圣誕帽。如果不是頭像,就加一個圣誕老人陪伴。
用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))
添加小圖標
當然有些同學的頭像不是人物或不能準確的識別無關,所有添加了標識。(即在右下添加小圖標)。
小圖標避免單調,是從圖標中隨機選擇一個:
代碼如下:
# 水印圖片 num = random.randint(1, 5) logo = Image.open("img_icon/santa_" + str(num) + ".png") img = Image.open(imgPath) print(img.size, logo.size) # 圖層 layer = Image.new("RGBA", img.size, (255, 255, 255, 0)) layer.paste(logo, (img.size[0] - logo.size[0], img.size[1]-logo.size[1])) # 覆蓋 img_after = Image.composite(layer, img, layer) # img_after.show() img_after.save(outImgePath)
結果如下
源代碼:https://github.com/silencesmile/Christmas_Hat
總結
以上所述是小編給大家介紹的使用Python給頭像加上圣誕帽或圣誕老人小圖標附源碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。