为什么一运行kinect相机坐标系系转换的坐标就被改变

你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
【Unity3D的四种坐标系】
1、World Space(世界坐标):我们在场景中添加物体(如:Cube),他们都是以世界坐标显示在场景中的。transform.position可以获得该位置坐标。
2、Screen Space(屏幕坐标):以像素来定义的,以屏幕的左下角为(0,0)点,右上角为(Screen.width,Screen.height),Z的位置是以相机的世界单位来衡量的。注:鼠标位置坐标属于屏幕坐标,Input.mousePosition可以获得该位置坐标,手指触摸屏幕也为屏幕坐标,Input.GetTouch(0).position可以获得单个手指触摸屏幕坐标。
  Screen.width = Camera.pixelWidth
  Screen.height = Camera.pixelHeigth
3、ViewPort Space(视口坐标):视口坐标是标准的和相对于相机的。相机的左下角为(0,0)点,右上角为(1,1)点,Z的位置是以相机的世界单位来衡量的。
4、绘制GUI界面的坐标系:这个坐标系与屏幕坐标系相似,不同的是该坐标系以屏幕的左上角为(0,0)点,右下角为(Screen.width,Screen.height)。
【四种坐标系的转换】
1、世界坐标→屏幕坐标:camera.WorldToScreenPoint(transform.position);这样可以将世界坐标转换为屏幕坐标。其中camera为场景中的camera对象。
2、屏幕坐标→视口坐标:camera.ScreenToViewportPoint(Input.GetTouch(0).position);这样可以将屏幕坐标转换为视口坐标。其中camera为场景中的camera对象。
3、视口坐标→屏幕坐标:camera.ViewportToScreenPoint();
4、视口坐标→世界坐标:camera.ViewportToWorldPoint();
是我孤陋寡闻了么,真没听说unity里面有个本地坐标~
。。。世界坐标系其实就是固定的一种宏观上的坐标系。。。本地坐标系就是自己的坐标系,物体旋转,世界坐标系不会改变,但本地坐标系会随着旋转变化而变化
两个坐标的参考系不一样,世界坐标,你只要随便创建一个物体A,然后看他的position,显示的就是世界坐标。本地坐标,你在创建一个物体B,不过他要弄一个父对象C,父对象C稍微移动一下,然后把AB移动到看见的一个地方,这是你会看到他们的坐标是不一样的,A是世界坐标,B是本地坐标(localposition)
要回复问题请先或
浏览: 3481
关注: 4 人0世界坐标系到相机坐标系的转换(3D物体到2D图像)_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
0世界坐标系到相机坐标系的转换(3D物体到2D图像)
&&计算机视觉基础。3D物体到2D图像的投影变换;世界坐标系到相机坐标系的转换过程。
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩6页未读,
定制HR最喜欢的简历
你可能喜欢查看: 4464|回复: 9
关于相机标定,像素坐标到世界坐标转换的问题
本帖最后由 rezin 于
11:17 编辑
大家好!我最近用opencv做相机标定。通过调用cvCalibrateCamera2等函数已经获得了相机内外参数,也知道通过cvInitUndistortMap和cvRemap来矫正图片(消除畸变)。但是接下来的校正图片、获得世界坐标以及测量距离就有很多疑问了,具体如下:
1、计算内外参数的时候没有用到棋盘格尺寸,比如我打印的棋盘单元格边长是10mm,这个数据怎么体现到内外参数里面去?还是说后面转换世界坐标的时候再来使用?
2、怎么利用相机外参把图像变换到垂直于相机光轴的状态,也就是校正图片?
3、相机内外参已知的情况下,从原始图像上取得两个像素坐标p1(r1,c1)和p2(r2,c2),如何求这两点的世界坐标距离?
希望已经做过相机标定的朋友来指点一下,不胜感激!正在做相机标定的朋友来一起讨论讨论,共同进步~~file:///C:\Users\wwj\Documents\Tencent Files\\Image\Group\{T~Q7GF0QE3W@5X%(ZOLSAD.png
1) 标定的时候需要世界坐标,棋盘格尺寸的就是世界坐标,没用到你怎么求?
2) 有个函数是可以矫正的,你可以搜索下
3) 一个相机不能从其图像上就三维坐标的,三维投影到二维是唯一的,二维对应三维是一条射线啊
1) 标定的时候需要世界坐标,棋盘格尺寸的就是世界坐标,没用到你怎么求?
2) 有个函数是可以矫正的,你可以搜 ...
谢谢你的回答!我好像前进了一点了:
1)cvCalibrateCamera2的参数有个object_points,难道这就是世界坐标?书上的例子是这样写的,
CV_MAT_ELEM(*object_points, float, i, 0) = j/board_w;
CV_MAT_ELEM(*object_points, float, i, 1) = j%board_w;
CV_MAT_ELEM(*object_points, float, i, 2) = 0.0f;
我应该把等式后面的值改成世界坐标吧?
2)矫正是用cvInitUndistortMap和cvRemap吧?这个是消除畸变的。但是校正(转换到垂直于相机光轴的姿态)用什么函数呢?
3)单目相机是可以做测量的,我看到康耐视和halcon都做到了。姿态确定以后,用内外参是可以算出世界距离的,只是我还没有弄明白其中的细节。希望大家多讨论。
hello, 我也在做这块。看到消息的话加我qq1179843,一起研究。谢谢。
hello, 我也在做这块。看到消息的话加我qq1179843,一起研究。谢谢。
我是新手&&希望指教
貌似要给出你的拍照高度的,即相机到被拍物体之间的距离,这样就可转换了,不过不知道cv是否提供了这个函数
1) 标定的时候需要世界坐标,棋盘格尺寸的就是世界坐标,没用到你怎么求?
2) 有个函数是可以矫正的,你可以搜 ...
我也是新手&&希望一起交流吧
标定的作用其一就是为了求取畸变系数(因为经过镜头等成像后,或多或少都有畸变),其二是为了得到空间坐标系和图像坐标系的对应关系
你知道了相机外参和内参后,那么把世界坐标转成相机坐标,有参数有公式,应该能求出来;再把相机坐标转成图像坐标,有参数有公式,应该能求出来。一张图片对应世界坐标的图像坐标你知道了,那么第二张图片的坐标你也知道了,那两个图片的图像坐标点,你也知道了,通过两点计算距离和角度,你也应该能求出来。
Powered by为什么一运行相机的坐标就被改变_百度知道
为什么一运行相机的坐标就被改变
我有更好的答案
如果你说的坐标是地理坐标。国内相机不能使用地理坐标。你说的坐标改变可能是程序地理坐标偏移。
采纳率:80%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 世界坐标系相机坐标系 的文章

 

随机推荐