输入图像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 mathdef MaxFrame(frame):height, width, n = frame.shapecenter_X = width / 2center_Y = height / 2radius = 200real_radius =int(radius / 2.0)new_data = frame.copy()for i in range(width):for j in range(height):tX = i - center_XtY = j - center_Y
下一篇:归并排序分析