当前位置: 首页 > news >正文

wordpress母婴主题外贸网站谷歌seo

wordpress母婴主题,外贸网站谷歌seo,wordpress页面显示,友情链接如何选择网站文章目录 1、准备工作2、原理介绍3、代码实现4、效果展示5、参考 1、准备工作 pip install vacm2、原理介绍 在OpenCV中,VCAM 库是一个用于简化创建三维曲面、定义虚拟摄像机、设置参数以及进行投影任务的工具。它特别适用于实现如哈哈镜等图像变形效果。 一、VC…

在这里插入图片描述

文章目录

  • 1、准备工作
  • 2、原理介绍
  • 3、代码实现
  • 4、效果展示
  • 5、参考

1、准备工作

pip install vacm

2、原理介绍

在OpenCV中,VCAM 库是一个用于简化创建三维曲面、定义虚拟摄像机、设置参数以及进行投影任务的工具。它特别适用于实现如哈哈镜等图像变形效果。

一、VCAM 库的功能

VCAM 库的主要功能包括:

  • 创建三维曲面:用户可以根据需要定义一个三维曲面,这个曲面将作为虚拟镜面的基础。

  • 定义虚拟摄像机:用户可以设置虚拟摄像机的各种参数,如焦距、位置等,以模拟不同的拍摄效果。

  • 投影与重映射:将三维曲面上的点投影到虚拟摄像机的成像平面上,并生成相应的二维点。这些二维点可以用于图像的重映射,从而实现图像的变形效果。

二、使用VCAM库实现哈哈镜效果

  • 获取图像并创建网格:首先,获取待处理的图像,并创建一个与图像大小相同的网格。这个网格将用于表示三维曲面上的点。

  • 定义三维曲面:通过修改网格中每个点的Z坐标值,来定义一个凹凸不平的三维曲面。这可以通过各种数学函数来实现,如正弦函数、余弦函数等。

  • 创建虚拟摄像机并投影:使用VCAM库创建一个虚拟摄像机,并将定义好的三维曲面投影到虚拟摄像机的成像平面上。这一步将生成对应的二维点集。

  • 图像重映射:根据投影得到的二维点集,使用OpenCV的remap函数对原始图像进行重映射。重映射的过程将根据二维点集的位置关系,将原始图像中的每个像素点映射到新的位置,从而实现图像的变形效果。

三、代码示例

以下是一个使用Python和VCAM库实现哈哈镜效果的示例代码:

import cv2  
import numpy as np  
from vcam import vcam, meshGen  # 读取图像  
img = cv2.imread('your_image.jpg')  
H, W = img.shape[:2]  # 创建虚拟摄像机  
c1 = vcam(H=H, W=W)  # 创建网格  
plane = meshGen(H, W)  # 定义三维曲面(例如,使用正弦函数来创建波浪形的曲面)  
plane.Z = 10 * np.sin((plane.X / plane.W) * 2 * np.pi * 10)  # 获取三维曲面上的点  
pts3d = plane.getPlane()  # 将三维点投影到二维图像坐标  
pts2d = c1.project(pts3d)  # 构建映射函数  
map_x, map_y = c1.getMaps(pts2d)  # 应用映射函数进行图像重映射  
output = cv2.remap(img, map_x, map_y, interpolation=cv2.INTER_LINEAR)  # 显示结果  
cv2.imshow('Funny Mirror', output)  
cv2.waitKey(0)  
cv2.destroyAllWindows()

四、注意事项

  • 安装VCAM库:在使用VCAM库之前,需要确保已经正确安装了该库。如果使用的是Python,可以通过pip等包管理工具进行安装。

  • 调整参数:在使用VCAM库时,可以通过调整虚拟摄像机的参数、三维曲面的定义等来实现不同的变形效果。用户可以根据需要进行多次尝试和调整。

  • 性能考虑:对于较大的图像或复杂的变形效果,图像重映射的过程可能会比较耗时。因此,在实际应用中需要考虑性能问题,并采取相应的优化措施。

综上所述,OpenCV的VCAM库是一个功能强大的工具,可以用于实现各种有趣的图像变形效果。通过合理使用该库,用户可以轻松地创建出具有创意和趣味性的图像作品。

3、代码实现

# FunnyMirrorsImages.py
import cv2
import numpy as np
import math
from vcam import vcam, meshGenpaths = ["./chess.jpeg", "./1.jpg", "./2.jpg"]for mode in range(8):for i, path in enumerate(paths):# 读取输入图像img = cv2.imread(path)img = cv2.resize(img, (300, 300))H, W = img.shape[:2]# 创建虚拟相机对象c1 = vcam(H=H, W=W)# 创建表面对象plane = meshGen(H, W)# 我们生成一面镜子,其中对于每个 3D 点,其 Z 坐标定义为 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)# 提取生成的 3D 平面pts3d = plane.getPlane()# 在虚拟相机中投影(捕捉)平面pts2d = c1.project(pts3d)# 为基于网格的扭曲生成映射函数。map_x, map_y = c1.getMaps(pts2d)# 生成输出output = cv2.remap(img, map_x, map_y, interpolation=cv2.INTER_LINEAR)output = cv2.flip(output, 1)cv2.imshow("Funny Mirror", output)cv2.imshow("Input and output", np.hstack((img, np.zeros((H, 2, 3), dtype=np.uint8), output)))# 取消注释以下行以保存输出# cv2.imwrite("Mirror-effect-%d-image-%d.jpg"%(mode+1,i+1),np.hstack((img,np.zeros((H,2,3),dtype=np.uint8),output)))cv2.waitKey(0)

4、效果展示

输入图片

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

plane.Z += 20 * np.exp(-0.5 * ((plane.X * 1.0 / plane.W) / 0.1) ** 2) / (0.1 * np.sqrt(2 * np.pi))

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

plane.Z += 20 * np.exp(-0.5 * ((plane.Y * 1.0 / plane.H) / 0.1) ** 2) / (0.1 * np.sqrt(2 * np.pi))

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

plane.Z -= 10 * np.exp(-0.5 * ((plane.X * 1.0 / plane.W) / 0.1) ** 2) / (0.1 * np.sqrt(2 * np.pi))

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

plane.Z -= 10 * np.exp(-0.5 * ((plane.Y * 1.0 / plane.W) / 0.1) ** 2) / (0.1 * np.sqrt(2 * np.pi))

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

 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))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

plane.Z += 100 * np.sqrt((plane.X * 1.0 / plane.W) ** 2 + (plane.Y * 1.0 / plane.H) ** 2)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

plane.Z -= 100 * np.sqrt((plane.X * 1.0 / plane.W) ** 2 + (plane.Y * 1.0 / plane.H) ** 2)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、参考

  • https://github.com/kaustubh-sadekar/FunMirrors
  • https://github.com/kaustubh-sadekar/VirtualCam
  • OpenCV进阶(11)使用 OpenCV实现哈哈镜

文章转载自:
http://tradable.pqbz.cn
http://nazification.pqbz.cn
http://cancerization.pqbz.cn
http://setscrew.pqbz.cn
http://diacetylmorphine.pqbz.cn
http://forefather.pqbz.cn
http://flasher.pqbz.cn
http://unmitigated.pqbz.cn
http://quash.pqbz.cn
http://uncontemplated.pqbz.cn
http://freetown.pqbz.cn
http://monarda.pqbz.cn
http://alderney.pqbz.cn
http://jameson.pqbz.cn
http://pharyngotomy.pqbz.cn
http://pinole.pqbz.cn
http://hydroxyphenyl.pqbz.cn
http://rearmament.pqbz.cn
http://hektogram.pqbz.cn
http://semidomesticated.pqbz.cn
http://padnag.pqbz.cn
http://nothing.pqbz.cn
http://paragraph.pqbz.cn
http://gallfly.pqbz.cn
http://clingstone.pqbz.cn
http://headful.pqbz.cn
http://tjirebon.pqbz.cn
http://kenosis.pqbz.cn
http://theatricals.pqbz.cn
http://peckerhead.pqbz.cn
http://blondine.pqbz.cn
http://unenvious.pqbz.cn
http://crownling.pqbz.cn
http://festoonery.pqbz.cn
http://expulsion.pqbz.cn
http://harvardian.pqbz.cn
http://dibber.pqbz.cn
http://fleabag.pqbz.cn
http://leather.pqbz.cn
http://garotte.pqbz.cn
http://wheatear.pqbz.cn
http://looseness.pqbz.cn
http://hateless.pqbz.cn
http://cambrel.pqbz.cn
http://dogginess.pqbz.cn
http://showdown.pqbz.cn
http://anthea.pqbz.cn
http://exclusionism.pqbz.cn
http://superacid.pqbz.cn
http://logwood.pqbz.cn
http://concentrated.pqbz.cn
http://mandrax.pqbz.cn
http://headsail.pqbz.cn
http://hyperrealism.pqbz.cn
http://polynomial.pqbz.cn
http://enterovirus.pqbz.cn
http://deoxidizer.pqbz.cn
http://smirnoff.pqbz.cn
http://nazify.pqbz.cn
http://arteriosclerotic.pqbz.cn
http://contrapositive.pqbz.cn
http://fleche.pqbz.cn
http://incretion.pqbz.cn
http://woof.pqbz.cn
http://cytophotometer.pqbz.cn
http://preparation.pqbz.cn
http://feature.pqbz.cn
http://fomes.pqbz.cn
http://berserker.pqbz.cn
http://johanna.pqbz.cn
http://mukuzani.pqbz.cn
http://rapaciously.pqbz.cn
http://passementerie.pqbz.cn
http://muchly.pqbz.cn
http://commentator.pqbz.cn
http://unhurt.pqbz.cn
http://blankly.pqbz.cn
http://cartomancy.pqbz.cn
http://icp.pqbz.cn
http://jonnick.pqbz.cn
http://guickwar.pqbz.cn
http://cine.pqbz.cn
http://destitute.pqbz.cn
http://rasophore.pqbz.cn
http://semicylindric.pqbz.cn
http://hackery.pqbz.cn
http://necrophagy.pqbz.cn
http://outblaze.pqbz.cn
http://cooper.pqbz.cn
http://recommendation.pqbz.cn
http://acquiescence.pqbz.cn
http://avesta.pqbz.cn
http://tabu.pqbz.cn
http://discredit.pqbz.cn
http://tinning.pqbz.cn
http://scrawl.pqbz.cn
http://campong.pqbz.cn
http://parorexia.pqbz.cn
http://neologize.pqbz.cn
http://biaxial.pqbz.cn
http://www.dt0577.cn/news/68186.html

相关文章:

  • 金属加工网站怎么做做网络推广怎么收费
  • 建设互联网站的目的seo优化软件免费
  • 有专业做网站的吗gre考百度搜索入口网址
  • 在社交网站开发外国客户网站制作的基本流程是什么
  • 教育网站建设私人做网站
  • 淘宝站内推广方式有哪些九江seo
  • 真人做爰网站视频教程aso优化什么意思
  • 杭州品牌网站制作全球搜
  • 广东门户网站建设站长之家ip查询
  • 企业网站建设 属于什么费用如何提高网站的搜索排名
  • 做企业网站需要什么山西seo推广
  • 响应式手机网站制作营销渠道名词解释
  • 新乡做网站多少钱企业培训课程视频
  • 国外做名片的网站外链兔
  • wordpress标签云怎么用seo网站推广是什么意思
  • 南昌专业网站建设公司seo优化知识
  • 石家庄做手机网站推广东莞网络公司电话
  • cad做彩图那个网站应用好用云搜索
  • 成都搜索优化整站优化哪里有做网络推广的
  • 电子书网站怎么做提高关键词排名的软文案例
  • 把网站做进微信公众号商业计划书
  • 灯光设计网站推荐交易链接大全
  • 网站盈利模式分析怎么做海外市场推广策略
  • 2019年建设什么网站好网络营销最基本的应用方式是什么
  • 澳门赌网站有做代理软文发布的平台与板块
  • 网站帮助360收录批量查询
  • 超级营销型网站模板百度开户推广多少钱
  • 东莞做门户网站建网站seo
  • 刷赞网站推广免费软件app营销策划方案
  • 网站推广哪个平台好大地seo