我有来自同一台相机的图像 A 和图像 B。
图像 A 中的点
PA=[
1 2172 998.9
2 2405 225.2
3 1480 1420
4 1045 1342
5 3039 1789
6 3727 968.7
7 1038 443.1
8 3606 856.6
9 1248 520.1
10 2189 976.8
]
图像 B 中的点
PB=[
1 2363 1598
2 2551 840.7
3 1768 2045
4 1404 1985
5 3040 2335
6 3636 1485
7 1393 1142
8 3514 1379
9 1550 1199
10 2378 1575]
t=1e-4;
[F, 内点] = ransacfitfundmatrix(x1, x2, t);
F=[ 5.12243654806919e-009 -5.65511649689218e-008 -3.90901140383986e-006
9.48853562184938e-008 4.56036186476569e-008 -0.00133231474573608
-0.000178137312702315 0.00112651242300972 1.10421882784367]
相机文件
focallength =18.6188 mm
format size
width =22.6791 mm
height=15.1130 mm
Image size
5184*3456 pixel
Principle point
x0=11.5399 mm
y0=07.8574 mm
lens distortion (ideal)
K1=0 mm
K2=0 mm
K3=0
P1=0mm
P2=0 mm
H = vgg_H_from_x_lin(x1,x2)
**问题A=我想取回PointsB
例如,PointsB(:,1)==H*x1(:,1)
结果是错误的,为什么,缺少任何东西
More detail:
x2(:,1)'*F*x1(:,1)= -0.000644154818346676 % I guess its OK.
PointsB(:,1)==H*x1(:,1)= [ 2240.66095080911
1522.92361373263
0.953866074561989] %%%%%% WHY not 1
PB=[ 1 2363 1598]; SHOULD BE
问题 B= 如何从上述信息中获得 3D 点。
任何链接或 matlab 代码都会有所帮助。
我该如何使用
vgg_X_from_xP_lin.m 来自图像投影和相机的 3D 点, 线性
X = vgg_X_from_xP_lin(u,P,imsize) % 你是什么