- 你说这个点在“摄像机正前方”,Y表示从摄像机到房子的距离。这是不是意味着点的y坐标应该是正的而(x,z)应该都近似等于camx和camz?你所展示的数据并非如此。
- 如果Y轴从摄像机指向房子,那么R矩阵就不应该是单位矩阵。R的第一列和第二列应该分别指向图像的w轴和h轴。但是当R=eye(3)时,R的第二列反而是沿着y轴指向房子,而不是沿着h轴。
- 相机参数t不应该依赖于任何特定的(x,y,z)。我觉得你的意思是,
使用针孔相机模型时,像素位置大于图像尺寸或为负
5ビュ(過去30日間)
表示古いコメント
大家好
我有一个简单的代码使用针孔相机模型的问题。问题是,当我试图在场景中某个点的图像平面中定位像素位置时,它会给我奇怪的结果,如负值或图像维度的数字。这是我的代码,其中x,y和z是我感兴趣的点camx的坐标,camy和camz是相机在场景中的坐标,单位都是mm。图像分辨率为1440* 960像素(宽*高),焦距为40毫米。旋转矩阵是单位,因为相机正对着场景如图所示。从上面的坐标,点应该在相机的正前方(Y是相机到房子的距离,X是房子正面视图的正中间,z是相机的高度,如下图所示),因此像素应该大致在图像的中间,但结果是[w,h]=[2970.6, 636.2]。
我想我在翻译矩阵中做错了什么,但我不知道是什么,
请帮忙
x = 1.067621626992524 e + 03;
y = -3.718505419300001 e + 03;
z = 2848.17;
camx = -1871.14;
camy = -7763.71;
camz = 2848.17;
F = 40;%以毫米为单位
Pixelox = 720;
Pixeloy = 480;
Pixelx = 0.025;
pixe = 0.025;
K=[F/Pixelx 0 0;0 F/Pixelx 0;Pixelox Pixeloy 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);
0件のコメント
採用された回答
その他の回答(2件)
图像分析
2018 年 12 月 29 日
不知道你说的“Y是相机到房子的距离,X在房子正面视图的中间,z是相机的高度,如下图所示”的意思是什么? X和Y不是到光轴的距离吗?如果不是,你是否定义了一个新的参照系,其中光轴不在(0,0)?(这会使事情复杂化。)
你说“x,y和z是我感兴趣的点的坐标camx,camy和camz是场景中摄像机的坐标”。让我们把事情搞清楚。哪个集合在
场景
(在针孔前面)和哪一套是在
“焦平面”
现场的图像落在哪里?
同时你指定了这两个,这样就把其他的东西都固定下来了。
你说"F=40;但是对于针孔相机来说,没有焦距。它是一个针孔,所以任何地方的所有东西都是聚焦的,不管它在针孔后面有多远。
这个旋转矩阵是什么意思?既然是针孔相机,为什么会有旋转?如果场景和焦平面平行,就不会有旋转矩阵。你的场景是平面吗?你的场景或焦平面不是垂直于光轴的?
你到底想搞清楚什么?h ?w ?R ?