使用OpenCV实现哈哈镜效果

导入工具包

import cv2
import numpy as np
import math
from vcam import vcam,meshGen
#导入python绘图matplotlib
import matplotlib.pyplot as plt
#使用ipython的魔法方法,将绘制出的图像直接嵌入在notebook单元格中
%matplotlib inline
#定义可视化图像函数
def look_img(img):'''opencv读入图像格式为BGR,matplotlib可视化格式为RGB,因此需将BGR转RGB'''img_RGB = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)plt.imshow(img_RGB)plt.show()

单张图片的镜子效果

file = "./data/test01.jpg"for mode in range(8):# Reading the input imageimg = cv2.imread(file)img = cv2.resize(img,(300,300))H,W = img.shape[:2]# Creating the virtual camera objectc1 = vcam(H=H,W=W)# Creating the surface objectplane = meshGen(H,W)# We generate a mirror where for each 3D point, its Z coordinate is defined as Z = F(X,Y)if mode == 0:plane.Z += 20*np.exp(-0.5*((plane.X*1.0/plane.W)/0.1)**2)/(0.1*np.sqrt(2*np.pi))elif mode == 1:plane.Z += 20*np.exp(-0.5*((plane.Y*1.0/plane.H)/0.1)**2)/(0.1*np.sqrt(2*np.pi))elif mode == 2:plane.Z -= 10*np.exp(-0.5*((plane.X*1.0/plane.W)/0.1)**2)/(0.1*np.sqrt(2*np.pi))elif mode == 3:plane.Z -= 10*np.exp(-0.5*((plane.Y*1.0/plane.W)/0.1)**2)/(0.1*np.sqrt(2*np.pi))elif mode == 4:plane.Z += 20*np.sin(2*np.pi*((plane.X-plane.W/4.0)/plane.W)) + 20*np.sin(2*np.pi*((plane.Y-plane.H/4.0)/plane.H))elif mode == 5:plane.Z -= 20*np.sin(2*np.pi*((plane.X-plane.W/4.0)/plane.W)) - 20*np.sin(2*np.pi*((plane.Y-plane.H/4.0)/plane.H))elif mode == 6:plane.Z += 100*np.sqrt((plane.X*1.0/plane.W)**2+(plane.Y*1.0/plane.H)**2)elif mode == 7:plane.Z -= 100*np.sqrt((plane.X*1.0/plane.W)**2+(plane.Y*1.0/plane.H)**2)else:print("Wrong mode selected")exit(-1)# Extracting the generated 3D planepts3d = plane.getPlane()# Projecting (Capturing) the plane in the virtual camerapts2d = c1.project(pts3d)# Deriving mapping functions for mesh based warping.map_x,map_y = c1.getMaps(pts2d)# Generating the outputoutput = cv2.remap(img,map_x,map_y,interpolation=cv2.INTER_LINEAR)output = cv2.flip(output,1)#look_img(output)look_img(np.hstack((img,np.zeros((H,2,3),dtype=np.uint8),output)))






使用OpenCV实现哈哈镜效果相关推荐

  1. OpenCV 实现哈哈镜效果

    代码,有参考别人的代码 // haha_mirror.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostrea ...

  2. OpenCV 图像处理 哈哈镜效果

    原文地址:http://www.cnblogs.com/magiccaptain/archive/2013/05/21/3091035.html 两个效果:放大和挤压,分别由MaxFrame和MinF ...

  3. 利用python-opencv 做出图像/视频的哈哈镜效果

    @[TOP](利用python-opencv 做出图像/视频的哈哈镜效果) 引言 在进行过相机校准的学习之后,我们已经理解了相机的外参/内参矩阵. 关于相机校准的原理以及内外参矩阵的介绍可以参考 我们 ...

  4. Learn Opencv ---- 使用Opencv构建哈哈镜

    阅读原文 使用Opencv构建哈哈镜 前言 形成图像的理论 如何实现 创建虚拟相机 定义三维曲面 使用Python的VCAM库 图像重映射 总结 前言 在童年时期,有一个东西时常能给我带来欢乐,那就是 ...

  5. OpenCV进阶(11)使用 OpenCV实现哈哈镜

    我们都记得那些我们经常去游乐园或县集市的美好童年时光.这些游乐园中我最喜欢的元素之一是游乐园镜室. 哈哈镜不是平面镜,而是凸/凹反射面的组合,当我们在这些镜子前移动时,会产生扭曲效果,看起来很有趣. ...

  6. 实现抖音哈哈镜效果---OpenCV-Python开发指南(47)

    目录 前言 哈哈镜放大效果 哈哈镜缩小效果 直接视频实现哈哈镜效果 前言 在抖音中,我们经常看到各种抖音玩家都喜欢使用哈哈镜效果.那么什么是哈哈镜呢? 在现实生活中,哈哈镜是指一种表面凹凸不平的镜子, ...

  7. IOS – OpenGL ES 图像哈哈镜效果 GPUImageStretchDistortionFilter

    目录 一.简介 二.效果演示 三.源码下载 四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 Ope ...

  8. 用opencv达到图片的哈哈镜效果

    输入图像f(x,y),宽.高分别为Width和Height,设置图像中心坐标Center(cx,cy)为缩放中心点, 图像上任意一点到中心点的相对坐标为tx=x-cx,ty=y-cy. 图像拉伸放大 ...

  9. opencv实现哈哈镜变换

    我绝对是无聊爆炸了,所以我又丧心病狂处理二次元图片了. 今天基于像素变换来实现图像的哈哈镜变换,效果就是下面这样了: 哈哈镜分两种,一种是挤压,一种是放大.分别对应凹函数和凸函数. 输入一副图像,首先 ...

最新文章

  1. sql2008 删除日志
  2. shell查看并修复网络连接
  3. 函数默认形参与占位参数
  4. Jupyter notebook 导出PDF的3种方法
  5. 动态生成的html元素无法调用js函数,如何确保动态生成的div在js函数被调用之前被加载到DOM中?...
  6. 第八十三期:这些高性能负载均衡架构知识点,90%的人分不清!
  7. html 透视效果,html – CSS – 对背景图像的“敲除”/透视效果
  8. php修改学生信息代码_PHP程序员从入门到佛系第二十八弹:PHP $_POST 变量
  9. 物联网中使用的常见通信技术
  10. 查看apache的日志与状态
  11. BZOJ3123:[SDOI2013]森林——题解
  12. 一些嵌入式面试题目的集锦
  13. keil5代码可以下载但无法进行串口通信
  14. 方德系统服务器,国产方德桌面操作系统介绍
  15. MP4-M3U8在线P2P加速视频播放器PHP源码
  16. R语言列联表的统计分析及假设检验
  17. Android 自定义apk名称
  18. ERROR: No matching distribution found for xxx
  19. 利用记忆规律促进学生有效学习(记忆规律在教学中的运用)
  20. STM32-ISP烧录检测不到芯片问题

热门文章

  1. Windows使用Openssl生成免费证书
  2. Centos 7配置jdk
  3. 微信的玩法(终端零售)
  4. SpringBoot集成Bean Searcher实现各种复杂查询
  5. 计算机毕业设计Java汽车配件管理系统(源代码+数据库+系统+lw文档)
  6. NoteExpress使用记录
  7. 使用Mathtype的“插入下一章”导致整个自动生成的目录出现难看的章节号
  8. 【许晓笛】EOS 超级节点的五个使命
  9. 康复医学导论计算机PPT论文,康复医学导论重点.docx
  10. 腾讯从社群端整治淘宝客,90%的淘客群被封