平面匹配间的变换约束

1 约定

这里约定两个同纬度向量矩阵乘之后为1\(\times\)1大小时为一个数字。

2 空间中两个平面匹配建立关系
在空间中有平面A(\(\mathbf{n}_1,d_1\))与平面B(\(\mathbf{n}_2,d_2\)),这里\(\mathbf{n}_1\)为平面A的单位法向量,\(\mathbf{n}_2\)为平面B的单位法向量。

现在已知,平面A经过(\(R,\mathbf{t}\))变换后与平面B完全重合。对于一个平面的方向向量,在经过变换后必然满足如下(1)与(2)之一的关系(可以通过点的变换推导出来)  
(1)$$
\mathbf{n}_2=R\mathbf{n}_1
$$
或者  
(2)$$
\mathbf{n}_2=-R\mathbf{n}_1$$

现在平面A上取一个点\(\mathbf{p}\),则根据A平面方程有  
(3)$$
\mathbf{n}_1^T\mathbf{p}+d_1=0
$$
同样地,\(\mathbf{p}\)经过变换后,必在平面B上,即  
(4)$$
\mathbf{n}_2^T(R\mathbf{p}+\mathbf{t})+d_2=0
$$
将(1)(3)代入(4)有  
(5)$$
\mathbf{n}_2^T\mathbf{t}=d_1-d_2
$$
将(2)(3)代入(4)有  
(6)$$
\mathbf{n}_2^T\mathbf{t}=-d_1-d_2
$$
因此,对于匹配的两个平面,其相对测量有如下关系

2.1 法向严格一致
如果要求匹配的平面,法向严格一致,则使用如下约束  
(7)$$
\begin{aligned}
\mathbf{n}_2&=R\mathbf{n}_1
\\
\mathbf{n}_2^T\mathbf{t}&=d_1-d_2
\end{aligned}$$

2.2 法向严格相反
如果要求匹配的平面,法向严格相反,则使用如下约束  
(8)$$
\begin{aligned}
\mathbf{n}_2&=-R\mathbf{n}_1
\\
\mathbf{n}_2^T\mathbf{t}&=-d_1-d_2
\end{aligned}$$

2.3 任意平面匹配
有时,我们构建了平面,提供了平面法向参数,但是我们无法确定两个平面法向的一致性(对于同一个平面,不同使用者构建的平面参数的法向量可能完全相反),这时我们只要求平面完全重合(即,在一个平面上任意取一点,经过变换后的点位,一定落在另一个平面上),这时依据此来建立约束。

这里建立约束主要使用下面(15)或(19)或(23)的约束方程来建立。

这里展开公式(4)有  
(9)$$
\begin{aligned}
0&=\mathbf{n}_2^T(R\mathbf{p}+\mathbf{t})+d_2
\\
&=(R^T\mathbf{n}_2)^T\mathbf{p}+\mathbf{n}_2^T\mathbf{t}+d_2
\end{aligned}
$$
这里设置如下中间变量  
(10)$$
\begin{aligned}
\mathbf{h}&=R^T\mathbf{n}_2
\\
g&=\mathbf{n}_2^T\mathbf{t}+d_2
\\
\mathbf{p}&= \begin{bmatrix}  
x
\\
y
\\
z
\end{bmatrix}  \\
\mathbf{n}_1&= \begin{bmatrix}  
n_{1,0}
\\
n_{1,1}
\\
n_{1,2}
\end{bmatrix} 
\end{aligned}
$$
将公式(10)带入(3)(9)有  
(11)$$
\begin{cases}
n_{1,0}x+n_{1,1}y+n_{1,2}z+d_1=0
\\
h_0x+h_1y+h_2z+g=0
\end{cases}$$

2.3.1 消去x
如果\(n_{1,0}\)为向量\(\mathbf{n}_1\)中的绝对值最大的元素,则在(11)中的约束变为  
(12)$$
\begin{cases}
x+a_xy+b_xz+c_x=0
\\
h_0x+h_1y+h_2z+g=0
\end{cases}
$$
上面公式中\(a_x\)、\(b_x\)、\(c_x\)定义如下  
(13)$$
\begin{aligned}
a_x &=\dfrac{n_{1,1}}{n_{1,0}}
\\
b_x &=\dfrac{n_{1,2}}{n_{1,0}}
\\
c_x &=\dfrac{d_1}{n_{1,0}}
\end{aligned}
$$
在(12)中消去\(x\)有  
(14)$$
(h_1-h_0a_x)y+(h_2-h_0b_x)z+(g-h_0c_x)=0
$$
由于\(y\)、\(z\)取任意值,均满足(14)算式,因此可得到如下约束方程  
(15)$$
\begin{cases}
h_1=h_0a_x
\\
h_2=h_0b_x
\\
g=h_0c_x
\end{cases}$$

2.3.2 消去y
如果\(n_{1,1}\)为向量\(\mathbf{n}_1\)中的绝对值最大的元素,则在(11)中的约束变为  
(16)$$
\begin{cases}
a_yx+y+b_yz+c_y=0
\\
h_0x+h_1y+h_2z+g=0
\end{cases}
$$
上面公式中\(a_y\)、\(b_y\)、\(c_y\)定义如下  
(17)$$
\begin{aligned}
a_y &=\dfrac{n_{1,0}}{n_{1,1}}
\\
b_y &=\dfrac{n_{1,2}}{n_{1,1}}
\\
c_y &=\dfrac{d_1}{n_{1,1}}
\end{aligned}
$$
在(12)中消去\(y\)有  
(18)$$
(h_0-h_1a_y)x+(h_2-h_1b_y)z+(g-h_1c_y)=0
$$
由于\(x\)、\(z\)取任意值,均满足(18)算式,因此可得到如下约束方程  
(19)$$
\begin{cases}
h_0=h_1a_y
\\
h_2=h_1b_y
\\
g=h_1c_y
\end{cases}$$

2.3.3 消去z
如果\(n_{1,2}\)为向量\(\mathbf{n}_1\)中的绝对值最大的元素,则在(11)中的约束变为  
(20)$$
\begin{cases}
a_zx+y+b_zy+c_z=0
\\
h_0x+h_1y+h_2z+g=0
\end{cases}
$$
上面公式中\(a_z\)、\(b_z\)、\(c_z\)定义如下  
(21)
$$
\begin{aligned}
a_z &=\dfrac{n_{1,0}}{n_{1,2}}
\\
b_z &=\dfrac{n_{1,1}}{n_{1,2}}
\\
c_z &=\dfrac{d_1}{n_{1,2}}
\end{aligned}
$$
在(12)中消去\(z\)有  
(22)
$$
(h_0-h_2a_z)x+(h_1-h_2b_z)y+(g-h_2c_z)=0
$$
由于\(x\)、\(y\)取任意值,均满足(22)算式,因此可得到如下约束方程  
(23)$$
\begin{cases}
h_0=h_2a_z
\\
h_1=h_2b_z
\\
g=h_2c_z
\end{cases}$$

发表回复

您的电子邮箱地址不会被公开。