關於微信官方授予使用者聖誕帽子的原理

2021-08-14 01:29:19 字數 1548 閱讀 6862

# -*- coding: utf8 -*-

import cv2

import random

# opencv 人臉檢測

# 聖誕帽

hats =

for i in

range(4):

% i, -

1))for face in faces:

# 隨機一頂帽子

hat = random.choice(hats)

# 調整帽子尺寸

scale = face[3] / hat.shape[0] *

1.25

hat = cv2.resize(hat, (0, 0), fx

=scale, fy

=scale)

# 根據人臉座標調整帽子位置

x_offset =

int(face[0] + face[2] /

2- hat.shape[1] /

2)y_offset =

int(face[1] - hat.shape[0] /

2)# 計算貼圖位置,注意防止超出邊界的情況

x1, x2 =

max(x_offset, 0), min(x_offset + hat.shape[1], sample_image.shape[1])

y1, y2 =

max(y_offset, 0), min(y_offset + hat.shape[0], sample_image.shape[0])

hat_x1 =

max(0, -x_offset)

hat_x2 = hat_x1 + x2 - x1

hat_y1 =

max(0, -y_offset)

hat_y2 = hat_y1 + y2 - y1

# 透明部分的處理

alpha_h = hat[hat_y1:hat_y2, hat_x1:hat_x2, 3] /

255alpha =

1- alpha_h

# 按3個通道合併

for c in

range(0, 3):

sample_image[y1:y2, x1:x2, c] = (alpha_h * hat[hat_y1:hat_y2, hat_x1:hat_x2, c] + alpha * sample_image[y1:y2, x1:x2, c])

# 儲存最終結果

cv2.imwrite('faces_detect.png'

, sample_image)

微信小程式「聖誕帽」的實現思路詳解

這兩天朋友圈被 聖誕帽 刷屏,這個小程式連微信官方都程式設計客棧出來闢謠了,又乙個現象級的玩意兒。從產品角度而言無疑是非常成功,但從技術角度而言是確實習以為常,創意很重要!簡單說一下思路 獲取頭像,把頭像畫在canvas裡面,接著往canvas裡畫帽子,調整帽子的引數 位置 大小 旋轉 最後儲存為。...

php實現的微信紅包演算法分析(非官方)

最近一直在微信群裡體驗紅包功能,紅包型別有兩種 1.普通紅包 2.拼手氣紅包 普通紅包就不用多解析了,大鍋飯原理,平分。拼手氣紅包講的是手氣 運氣 有人可以搶到很多,有人搶的少得可憐,當然也不是先搶就一定多,說到底了就是隨機。想了想,自己寫寫看,能不能實現類似的功能 不敢說是演算法 bonus to...

微信官方 千萬別信今天的「萬元」紅包

又是一年愚人節,微信官方今天中午放出提醒 請不要相信今天的 萬元 紅包 隨機金額 紅包,因為你最終可能會發現都是表情包的功勞。官方程式設計客棧曬vabfpp圖顯示,華哥發放了乙個 10000 元 紅包,開啟後卻發現只有 1 毛錢。原來,實現所謂 萬元 紅包,只是利用了乙個障眼法,自從微信更新至7.0...