使用针孔相机模型时,像素位置大于图像维数或为负

4次浏览(最近30天)
凯撒
凯撒 2018年12月28日
编辑: 凯撒2020年1月25日
你好
我有一个问题与一个简单的代码,使用针孔相机模型。问题是,当我试图在场景中的某个点的图像平面上定位像素位置时,它会给我一些奇怪的结果,比如负数或图像维数。这是我的代码在x, y和z坐标的点我camx感兴趣,camy和camz相机的坐标在现场所有mm.Image分辨率1440 * 960像素(宽*高),焦距是40 mm.旋转矩阵是认同的,因为相机正面临现场如图片所示。从上面的坐标来看,点应该在相机的正前方(Y是相机到房子的距离,X位于房屋正面视图的中间位置,z是相机的高度,如下图所示),因此像素应该大致位于图像的中间,但结果是[w,h]=[2970.6, 636.2]。
我认为我在翻译矩阵中做错了什么,但我不知道是什么,
任何帮助请
mathwork.jpg
x = 1.067621626992524 e + 03;
y = -3.718505419300001 e + 03;
z = 2848.17;
camx = -1871.14;
camy = -7763.71;
camz=2848.17;
F = 40;%在millimetere
Pixelox = 720;
Pixeloy = 480;
像素x=0.025;
pixe = 0.025;
K=[F/Pixelx 0 0;0 F/Pixelx 0;Pixelox 1];
R= [1 0 0;0 1 0;0 0 1];
T =[x-camx y-camy z-camz];
P = [R; t] * K;
tem= [x y z 1]*P;
w = tem (1) / tem (3);
h = tem (2) / tem (3);

接受的答案

马特J
马特J 2018年12月28日
编辑:马特J 2018年12月28日
从你的描述中,我可以推断出一些错误:
  1. 你说这个点在“摄像机的正前方”Y表示从摄像机到房子的距离。这难道不意味着点的y坐标应该是正的而(x,z)应该都近似等于camx和camz吗?这不是你展示的数据的情况。
  2. 如果Y轴从摄像机指向房屋,则R矩阵不应为同一矩阵。R的第一列和第二列应分别指向图像的w轴和h轴。但是当R=eye(3)时,R的第二列将沿着Y轴指向房屋,而不是沿着h轴。
  3. 摄像机参数t不应该依赖于任何特定的(x,y,z)。我觉得你的意思是,
t = [-camx -camy, -camz]。
6个评论
凯撒
凯撒 2019年2月13日
一如既往,您的回复如此之快,我深表感谢。根据你的建议改变R并没有很好地发挥作用,特别是对于H (F=-40 &f=40)。但是,将第一列更改为(-1)就可以了。当YCam

登录以发表评论。

更多答案(2)

图像分析
图像分析 2018年12月29日
不确定你所说的“Y是从相机到房子的距离,X正好在房子前视图的中间,z是相机的高度,如下图所示”是不是X和Y是从光轴的距离?如果没有,您是否定义了光轴不在(0,0)的新参考系?(这会使事情复杂化。)
你说“x,y和z是我感兴趣的点的坐标,camx,camy和camz是场景中摄像机的坐标”。让我们直说吧。哪一套在电视里 场景 (在针孔前面)和哪一套是在 “焦平面” 场景中的图像在哪里着陆?
你还指定了这两个,这样就可以把其他的东西都固定下来了。
你说“F = 40;但是对于针孔相机来说,没有焦距。它是针孔,所以所有的东西都在焦点上,不管它离针孔有多远。
还有关于旋转矩阵的讨论是什么?既然是针孔相机,为什么会有旋转呢?如果场景和焦平面平行,就不会有旋转矩阵。您的场景是一个平面,并且您的场景或焦平面与光轴不垂直吗?
你到底想弄明白什么?h ?w ?R ?
1评论
凯撒
凯撒 2018年12月29日
在我的问题中,讨论y和x是为了解释坐标轴,也就是图像边上的小箭头所示的轴。
我不知道你所说的“设置新框架”是什么意思,因为我在这方面不是很在行,但是,我试图遵循以下理论:
所以根据这个课题,我应该有相机的协调(camx,camy, camz),兴趣点的协调(x,y,z),相机的焦距,世界上的像素大小联合起来在像面上找到像素的[w,h]。
我在代码中尝试过,但没有成功,因为我不确定T(翻译矩阵)和 马特J 指出我在R矩阵中有一些错误。
我希望你现在情况好多了。
提前感谢您的回复

登录以发表评论。


凯撒
凯撒 2020年1月25日
编辑:凯撒 2020年1月25日
嗨,马特J
我很久没有接受这个答案了,一切都很顺利。现在,我面临的另一个问题是,如果相机不是围绕任何轴旋转的直线,如何构造旋转矩阵?例如,现在我看的是z轴周围20度。?
我不知道我是否被允许在这里发布链接,但我已经提交了一个与这个问题相关的问题,而不是关于相机本身。给你 链接
提前谢谢

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始狩猎!