人脸识别与美颜算法实战-图像特效
哈哈镜
输入图像f(x,y),宽高分别为Width和Height,设置图像中心坐标 Center(cx,xy)为缩放中心点,图像上任意一点到中心点的相对坐标 tx=x-cx,ty=y-cy。哈哈镜效果分为图像拉伸放大和图像缩小。
对于图像拉伸放大,设置图像变换的半径为radius,哈哈镜变换 后的图像为p(x,y)。
x=(tx/2)×(sqrt(tx×tx+ty×ty)/radius)+cx
y=(ty/2)×(sqrt(tx×tx+ty×ty)/radius)+cy
对于图像缩小,设置图像变换的半径为radius,哈哈镜变换后的 图像为p(x,y)。
x=cos(atan2(ty,tx))×12×(sqrt(tx×tx+ty×ty)+cx
y=sin(atan2(ty,tx))×12×(sqrt(tx×tx+ty×ty)+cy
# -*- coding: UTF-8 -*-
import cv2
import numpy as np
import math
def MaxFrame(frame):
height, width, n = frame.shape
center_X = width / 2
center_Y = height / 2
radius = 200
real_radius =int(radius / 2.0)
new_data = frame.copy()
for i in range(width):
for j in range(height):
tX = i - center_X
tY = j - center_Y