对于点
P
[
X
,
Y
,
Z
]
P[X,Y,Z]
P[X,Y,Z],其在某个相机下在图像上的坐标为
[
u
,
v
]
[u,v]
[u,v].如果已知相机的内参为
K
K
K,外参为
R
R
R和
T
T
T,其中
K
K
K为
3
∗
3
3*3
3∗3的矩阵,
R
R
R为
3
∗
3
3*3
3∗3的矩阵,
t
t
t为
3
∗
1
3*1
3∗1的向量。按理想相机模型,点
P
[
X
,
Y
,
Z
]
P[X,Y,Z]
P[X,Y,Z]在该相机下的投影坐标计算如下:
s
(
u
v
1
)
=
(
K
0
)
(
R
t
0
T
1
)
(
X
Y
Z
1
)
s\begin{pmatrix} u \\ v \\ 1 \\ \end{pmatrix} = \begin{pmatrix} K & 0 \\ \end{pmatrix} \begin{pmatrix} R & t \\ 0^T & 1 \\ \end{pmatrix} \begin{pmatrix} X \\ Y \\ Z \\ 1 \end{pmatrix}
s⎝⎛uv1⎠⎞=(K0)(R0Tt1)⎝⎜⎜⎛XYZ1⎠⎟⎟⎞
由于像素坐标为整数,所以最后计算得到的坐标需要四舍五入取整。但是预估得到的相机内外参矩阵不会完全精准,按上面公式计算的投影坐标和实际坐标存在一定的偏差。
空间中给的三个点,计算投影形成的三个点组成的三角形
A
A
A,和图像实际形成的三个点组成的三角形
B
B
B,求三角形
A
A
A和三角形
B
B
B的交点个数。保证三角形的顶点坐标均为[0,6000]的范围内的整数,且两个三角形边不存在重合的情况
输入
整数,三点空间坐标
整数,实际三点像素坐标
内参矩阵
K
K
K
外参矩阵
R
R
R
外参向量
t
t
t
输出
交点个数