1,在unity电脑屏幕上得到的相机的四个点做标记。

2,调整投影用到的相机的Transform让四个标记与真实的相重合,记下位置后,停止运行unity,然后把值重新调整到刚才记下的位置。组件上右击copy component,----paste as new

3,为了快速的调好,应该让投影仪和相机的位置比近,近似认为在一起的那样。

4,用于投影的那个相机看到的平面,的大小应该是每次都一样的不然比例会出错。

5,用普通相机时视频里会有彩虹纹,采用工业相机时色彩不正常,不好调,如果反光则可以调unity中投影相机的背景颜色。

6,眼动的标定

可以先htc头盔中能看见可视化的眼动,也可以看到投影的红色小球。但两者有一定的偏差,通过标记来解决。先新建四个 红色的小球,然后运行工程,看一个标记的位置,把正确的投影位置用四个 东西标记,最后调整投影相机的位置和视角完成标记。然后可以把可视化的眼动结果不可见,即只能看到投影出来的一个红色小球,问题完美解决。

上面这图是在HTC头盔中可视化与投影的都可见。应该这样来标记更快,只要四个标记点本来就在那个平面则调整相机重合就好。

--------------------------------------------------------------------------------------------------------------------------------------------

上面的相机采用平行投影可能会效果好一点

===============================================================================

方案二

投影和相机的标定,在物理世界中投影和相机有一定的距离,标记的目的简单的说就相当于当投影仪和相机的成像中心重合,投影仪可以看为逆光的相机,这样说来要做的事就是将给投影仪视野的虚拟相机与真实相机重合,且比例相同(这里我们采用unity的虚拟相机为平行投影)。

1 打开unity工程并将虚拟相机调整为平行投影。

2 调出要投影的game窗口,调整scale可以看到虚拟相机的边界-----》即下图的黑框;并记下scale比例,如果标定好后下次可以快速调整好。

3 打开相机,可以看到投影的game窗口,然后拖动game窗口的中心和相机视野的中心相重合。=====这就相当于将投影用的虚拟相机和真实相机的中心重合了。

4  在桌面上测量投影game窗口的 L边的真实尺寸。

5 修改unity工程中虚拟相机size的大小,size的大小 为平行投影测量L的一半。

6 这样基本上可以实现投影仪和相机的标定。

===============================================================================

方案三

相机和投影安装平行,投影先采用梯形校正(为了投影的是正或长方形),相机的视野比投影的范围大

1,确定相机视野中物体真实长与像素比

测量相机视野中真实物体的边长Lreal,对应物体边长在图像中的像素值Lpixel

2, 确定投影的真实长

在投影的四个边界点上放四个小球,方便检测。通过相机检测投影的边界,求得像素值Ppixel

Lreal/Lpixel = Preal/Ppixel = BILI

求得Preal

3, 计算相机的ROI

以相机视野中投影的范围取ROI,并以ROI的中心像素位置求得真实坐标

4,调整投影使用的虚拟相机位置

ROI的真实坐标赋给虚拟相机位置,同时根据Preal调整虚拟相机的W或H值

以上方法相机视野中的实物可以采用标定板,实现一定程度的自动化

===============================================================================

方案四

采用单应性变换

假设在相机视野中有四个点(a, b, c, d),在相机视野中叠加远程专家的装配引导信息(如<ARANAO>),通过虚实融合后共享到装配现场,采用投影仪当四个点(a, b, c, d)投影到工作台,对应的四个点是e, f, g, h如图4-6所示。正确的虚实融合应当a, b, c, de, f, g, h对应重合,则远程专家的装配引导信息会投影到装配现场正确的位置。具体实现步骤如下:

手动调整本地客户端Unity 3D工程中,投影的虚拟相机位置;然后通过投影仪的梯形校正功能,调整投影画面。

Step3: 采用机器视觉开源库Opencv计算点集e, f, g, ha, b, c, d的单应性矩阵,并生成DLL,通过Unity 3D工程调用。以a(ax, ay)点对应的e(ex, ey)点为例则单应性变换可表示为:H

式中H为3´3单应性矩阵。

Step4: 在视频流上叠加装配引导信息,再通过单应性变化后投影至工作台,则共享的视觉信息会在正确的位置。变换的是要投影的图像信息。

如果通过单应性变换相机采集的信息则视野会变小,而且真实空间中的物体位置是不能变化的。

AR标记时虚实融合投影仪和相机的手动标定相关推荐

  1. 结构光相移法中相机投影仪的标定信息如何与相位差联系

    前奏 先解释一下相移法中相机所捕获的条纹图案的数学表达式的含义 这里需要解释的是,表示第n张相移图上(x,y)点处的灰度值,为条纹图背景值,为调制强度函数.与上图中的变量解释不一样,查看了将近十几个人 ...

  2. 到底什么是元宇宙?建立一个虚实融合的数字空间?

    目录 1.前言 2.如何带着一组问题去选书.阅读和思考? 3.关于元宇宙比较一致的看法 4.一千个人有一千个元宇宙 5.元宇宙的本质是什么? 6.<柏拉图与技术呆子> 7.为什么只能对真实 ...

  3. 使用Android OpenGL ES 2.0绘图之四:应用投影和相机视图

    传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 传送门☞系统架构设计☞转载请注明☞http://blog.csdn.net/levera ...

  4. 投影仪和电视哪个更好?一文科普详细比较

    电视专业人士 画质高:与投影仪相比,电视机的色域更广,更能还原大自然的色彩. 高亮度:电视具有更高的画面亮度,让用户在白天无需拉窗帘即可轻松观看电影和电视节目. 更实惠:电视机更便宜,一台 60 英寸 ...

  5. 地方两会前瞻布局 谋定·经信研究-李刚:各地元宇宙虚实融合

    地方两会前瞻布局 谋定·经信研究-李刚:各地元宇宙虚实融合 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 国研智库 国情讲坛 商协社团 谋定论道 经信研究 哲商对话 万赢信采编:"身处 ...

  6. 多投影完美拼接——边缘融合投影技术

    一.什么是边缘融合技术? 当二台或多台投影机组合投射一幅画面时,会有一部分影象灯泡重叠,边缘融合的最主要功能就是把二台投影机重叠部分的灯光亮度逐渐调低,使整幅画面的亮度一致. 现在市场上也有很多拼接方 ...

  7. 计算机与投影仪的记录,投影仪和二次元测量仪的区别

    二次元测量仪与投影仪之间还是有一些差别的,我们可以从以下几个方面介绍: 1.产品需摆正:投影仪在测量产品时必须先找一条产品的基准线,以这个基准线和投影仪的X轴或Y轴平行,这期间就需要花费许多时间进行摆 ...

  8. 会议室屏幕显示小,内容不全,多通道融合投影给客户完美的视觉体验

    随着大型会议对展示的要求提高,单台投影投射效果存在很多的缺陷,如投影的距离.画面的宽度.弧度.亮度.聚焦情况等已不能适应展示要求.很多场所都会需要大面积投影,这样才能保证在场的每个人都能够看到播放内容 ...

  9. CK11N对物料进行价格标记时,系统提示物料递归错误;物料的BOM里面勾选了“递归允许”。

    CK11N对物料进行价格标记时,系统提示物料递归错误:物料的BOM里面勾选了"递归允许".但依然有错误: Material 1780030556 in plant 3587 bel ...

  10. Java黑皮书课后题第8章:8.9(井字游戏)玩家使用各自标志标记3*3网格中的某个空格,当一个玩家在网格的水平、垂直或对角线方向标记了三个相同的标记时,游戏结束,该玩家获胜。创建一个玩井字游戏的程序

    ***8.9(井字游戏)玩家使用各自标志标记3*3网格中的某个空格,当一个玩家在网格的水平.垂直或对角线方向标记了三个相同的标记时,游戏结束,该玩家获胜.创建一个玩井字游戏的程序 题目 题目描述与运行 ...

最新文章

  1. C#Winform+WindowsAPI做个剪贴板无缝自动保存器(视频截图利器)
  2. 大数据分析,在中国,找个身高1米7年入20万的老公,到底有多难?
  3. 使用GPS实时记录运动路线
  4. C语言中printf是不是关键字,C语言中printf是什么意思
  5. 如何发现 Redis 热点 Key ,解决方案有哪些?
  6. 5、leetcode剑指offer53 二分查找之0~n-1缺失的数字**
  7. Hibernate基本概念 (3)
  8. 强制删除tfs未迁入项的两个方法。
  9. Kali linux安装漏洞扫描工具Nessus指南
  10. Apache Nifi 入门与进阶 GitChat连接
  11. 三大开源生信基础教程(bookdown编写,源码可作为模板)和视频课程
  12. Laravel服务提供者在平台短信服务中的应用
  13. getParameterMap()的返回值为MapString, String[],从其中取得请求参数转为MapString, String的方法如下:...
  14. git push 失败出现error: src refspec master does not match any.解决方案
  15. VC开发工具与各运行库对应关系
  16. Python实现cosx函数(泰勒公式)
  17. Spyder中不能输入中文注释
  18. uboot网口调试Marvell phy 88E1111
  19. vue-echarts绘制地图轮廓
  20. 钻石闪耀天体,但我还是忘不了-孔卡

热门文章

  1. c#使用正则表达式获取TR中的多个TD_Linux之正则表达式
  2. linux 系统监控、诊断工具之 lsof 用法简介
  3. 使用百度统计分析你的网站访问数据
  4. 【企业级框架整合】Springmvc+mybatis+restful+bootstrap框架整合
  5. Spring AOP 本质(1)
  6. 科学家预测:未来100万年人类将变成半机械人类
  7. win32学习之 --------GDI使用 代码记录
  8. PHP Yii开源框架入门学习(二)修改Yii网站访问路径
  9. [C/C++] ccpuid:CPUID信息模块 V1.02版,支持Mac OS X,支持纯C,增加CPUF常数
  10. 2011-10-10