在抖音中,我们经常看到各种抖音玩家都喜欢使用哈哈镜效果。那么什么是哈哈镜呢?
在现实生活中,哈哈镜是指一种表面凹凸不平的镜子,可以反映出人像及物体的扭曲面貌。简单点来说就是拉伸人脸(物件),或者压缩人脸(物体)的效果。
哈哈镜的实现原理如下:
假设输入图像的宽高为w和h,图像中心点的坐标为(cx。cy)。那么图像中任意一点(x,y)到中心点的距离为(x-cx),(y-cy)。
那么拉升放大,图像变换的半径为r(r是哈哈镜的范围大小)。得到公式如下:
x=(tx/2)*(sqrt(tx*tx+ty*ty)/r)+cx
y=(ty/2)*(sqrt(tx*tx+ty*ty)/r)+cy
同理,压缩缩小的公式如下(compress为压缩强度):
x=cos(atan2(ty,tx))*compress*sqrt(sqrt(tx*tx+ty*ty))+cx y=cos(atan2(ty,tx))*compress*sqrt(sqrt(tx*tx+ty*ty))+cy
哈哈镜放大效果既然我们了解了其数学公式以及其实现的原理,下面我们来直接实现哈哈镜的放大效果。具体代码如下所示:
运行之后,效果如下:
直接视频实现哈哈镜效果抖音上面的哈哈镜都是动态的,并不是单一的图片这么变来变去。其实,只要我们集合前面的摄像头视频录制功能,就可以完成视频哈哈镜的动态效果。具体代码如下:
if __name__ == "__main__": cap = cv2.VideoCapture(0) while (cap.isOpened()): ret, frame = cap.read() frame=enlarge_effect(frame) cv2.imshow('video', frame) c = cv2.waitKey(1) if c == 27: break cap.release() cv2.destroyAllWindows()
以上就是抖音哈哈镜图标的详细内容,更多抖音里面的哈哈镜特效怎么找内容请关注鼎品软件其它相关文章!