哈哈镜图片(OpenCV(47)——实现抖音哈哈镜效果)

内容头部广告位(手机)

前言

在现实生活中,哈哈镜是指一种表面凹凸不平的镜子,可以反映出人像及物体的扭曲面貌。简单点来说就是拉伸人脸(物件),或者压缩人脸(物体)的效果。

假设输入图像的宽高为w和h,图像中心点的坐标为(cx,cy)。那么图像中任意一点(x,y)到中心点的距离为(x-cx),(y-cy)。

x=(tx/2)*ty)/r)+cx

tx+ty*同理,压缩缩小的公式如下(press为压缩强度):

press*tx+ty*press*tx+ty*既然我们了解了其数学公式以及其实现的原理,下面我们来直接实现哈哈镜的放大效果。具体代码如下所示:

#哈哈镜放大效果实现 def enlarge_effect(img): h, w, n = img0) new_img = img0) * (math0) * (mathimread("4imshow("4", enlarge_img) cv2destroyAllWindows()

需要注意的是,上面的计算过程可能导致有浮点数的出现,而像素值必须为整数。所以,为了保证像素值的有效性,必须在计算过程完整之后,进行强制类型转换int()。另外,计算x,y值时,可能会导致超过图像坐标的范围,所以必须用x<w和y<h来判断防止越界。

哈哈镜缩小效果

运行之后,效果如下:

直接视频实现哈哈镜效果

内容底部广告位(手机)
标签:

管理员
草根站长管理员

专注网站优化+网络营销,只做有思想的高价值网站,只提供有担当的营销服务!

上一篇:乌苏拉(演员帕特·卡罗尔去世,曾为动画电影《小美人鱼》“乌苏拉”配音)
下一篇:和信广场(明日起,海口新增10个“一站式”发热就医服务站)