当前位置: 首页 > news >正文

做网站什么是三网合一wordpress主题验证码

做网站什么是三网合一,wordpress主题验证码,scratch少儿编程网站,建设企业银行官方网站PnP问题应用与一下场景#xff1a; 已知三维点和对应二维点以及相机相机内参数#xff0c;可以获取相机外参。 我们介绍其中的一种算法#xff1a;ePnP 算法流程 1、ePnP算法首先在世界坐标系内寻找4个控制点#xff0c;记作 C 1 w , C 2 w , C 3 w , C 4 w C_1^w,C_2^w,…PnP问题应用与一下场景 已知三维点和对应二维点以及相机相机内参数可以获取相机外参。 我们介绍其中的一种算法ePnP 算法流程 1、ePnP算法首先在世界坐标系内寻找4个控制点记作 C 1 w , C 2 w , C 3 w , C 4 w C_1^w,C_2^w,C_3^w,C_4^w C1w​,C2w​,C3w​,C4w​使得 对于世界坐标系内任意一点 P 1 w , P_1^w, P1w​,存在对应的 α i [ α i 1 , α i 2 , α i 3 , α i 4 ] T \alpha_i[\alpha_{i1},\alpha_{i2},\alpha_{i3},\alpha_{i4}]^T αi​[αi1​,αi2​,αi3​,αi4​]T满足 P i w ∑ j 1 4 α i j C j w , w i t h ∑ j 1 4 α i j 1 P_i^w \sum_{j1}^4\alpha_{ij}C_j^w, {\kern 20pt} with\sum_{j1}^4\alpha_{ij}1 Piw​j1∑4​αij​Cjw​,withj1∑4​αij​1 世界坐标系上的 P w P^w Pw 经过 R , t R,t R,t 变换可以得到相机坐标系下的点 P c P^c Pc : P i c R P i w t R ( ∑ j 1 4 α i j C j w ) t P_i^c RP_i^wtR\left(\sum_{j1}^4\alpha_{ij}C_j^w\right) t Pic​RPiw​tR(j1∑4​αij​Cjw​)t 由于 ∑ j 1 4 α i j 1 \sum_{j1}^4\alpha_{ij}1 ∑j14​αij​1,因此 t ∑ j 1 4 α i j t t\sum_{j1}^4\alpha_{ij}t t∑j14​αij​t 带入上式得 ( C j w 是世界坐标系下的控制点 C j c 是世界坐标系下的控制点 ) (C_j^w是世界坐标系下的控制点C_j^c是世界坐标系下的控制点) (Cjw​是世界坐标系下的控制点Cjc​是世界坐标系下的控制点): P i c ∑ j − 1 4 α i j ( R C j w t ) ∑ j − 1 4 α i j C j c , ( C j c R C j w t ) P_i^c \sum_{j-1}^4\alpha_{ij}(RC_j^w t) \sum_{j-1}^4\alpha_{ij}C_j^c,{\color{red} \left(C_j^c RC_j^wt \right)} Pic​j−1∑4​αij​(RCjw​t)j−1∑4​αij​Cjc​,(Cjc​RCjw​t) 通过内参矩阵建立相机坐标系下的点 P c P^c Pc 到像素坐标系下的点 p p p 的映射 p i s i [ u i v i 1 ] K P i c [ f u 0 u c 0 f v v c 0 0 1 ] ∑ j 1 4 α i j [ C x j c C y j c C z j c ] p_i s_i\begin{bmatrix}u_i \\ v_i \\ 1 \end{bmatrix} KP^c_i\begin{bmatrix}f_u 0 u_c \\0 f_v v_c \\ 001 \end{bmatrix}\sum_{j1}^4\alpha_{ij}\begin{bmatrix}C_{xj}^c \\C_{yj}^c \\ C_{zj}^c \end{bmatrix} pi​si​ ​ui​vi​1​ ​KPic​ ​fu​00​0fv​0​uc​vc​1​ ​j1∑4​αij​ ​Cxjc​Cyjc​Czjc​​ ​ 将公式展开可得 ∑ j 1 4 α i j f u C x j c α i j ( u c − u i ) C z j c 0 ∑ j 1 4 α i j f v C y j c α i j ( v c − v i ) C z j c 0 \sum_{j1}^4\alpha_{ij}f_uC^c_{xj} \alpha_{ij}(u_c-u_i)C_{zj}^c 0 \\ \sum_{j1}^4\alpha_{ij}f_vC^c_{yj} \alpha_{ij}(v_c-v_i)C_{zj}^c 0 j1∑4​αij​fu​Cxjc​αij​(uc​−ui​)Czjc​0j1∑4​αij​fv​Cyjc​αij​(vc​−vi​)Czjc​0 对于上述公式 只有相机坐标系下的四个控制点 C j c C_j^c Cjc​​ 未知每个控制点有三个参数因此一共有12个未知数。每对点能建立两个方程组所以至少要6对点才能进行求解。 f u [ α i 1 α i 2 α i 3 α i 4 ] [ C x 1 c C x 2 c C x 3 c C x 4 c ] ( u c − u i ) [ α i 1 α i 2 α i 3 α i 4 ] [ C z 1 c C z 2 c C z 3 c C z 4 c ] 0 f v [ α i 1 α i 2 α i 3 α i 4 ] [ C y 1 c C y 2 c C y 3 c C y 4 c ] ( v c − v i ) [ α i 1 α i 2 α i 3 α i 4 ] [ C z 1 c C z 2 c C z 3 c C z 4 c ] 0 [ f u α i 1 f u α i 2 f u α i 3 f u α i 4 0 0 0 0 ( u c − u i ) α i 1 ( u c − u i ) α i 2 ( u c − u i ) α i 3 ( u c − u i ) α i 4 0 0 0 0 f v α i 1 f v α i 2 f v α i 3 f v α i 4 ( v c − v i ) α i 1 ( v c − v i ) α i 2 ( v c − v i ) α i 3 ( v c − v i ) α i 4 ] [ C x 1 c C x 2 c C x 3 c C x 4 c C y 1 c C y 2 c C y 3 c C y 4 c C z 1 c C z 2 c C z 3 c C z 4 c ] 0 f_u \begin{bmatrix} \alpha_{i1} \alpha_{i2} \alpha_{i3} \alpha_{i4} \end{bmatrix}\begin{bmatrix} C_{x1}^c \\ C_{x2}^c \\ C_{x3}^c \\ C_{x4}^c\end{bmatrix} (u_c-u_i) \begin{bmatrix} \alpha_{i1} \alpha_{i2} \alpha_{i3} \alpha_{i4} \end{bmatrix} \begin{bmatrix} C_{z1}^c \\ C_{z2}^c \\ C_{z3}^c \\ C_{z4}^c\end{bmatrix} 0 \\ f_v \begin{bmatrix} \alpha_{i1} \alpha_{i2} \alpha_{i3} \alpha_{i4} \end{bmatrix}\begin{bmatrix} C_{y1}^c \\ C_{y2}^c \\ C_{y3}^c \\ C_{y4}^c\end{bmatrix} (v_c-v_i) \begin{bmatrix} \alpha_{i1} \alpha_{i2} \alpha_{i3} \alpha_{i4} \end{bmatrix} \begin{bmatrix} C_{z1}^c \\ C_{z2}^c \\ C_{z3}^c \\ C_{z4}^c\end{bmatrix} 0 \\\\\\ \begin{bmatrix} f_u\alpha_{i1} f_u\alpha_{i2} f_u\alpha_{i3} f_u\alpha_{i4} 0000(u_c-u_i) \alpha_{i1} (u_c-u_i) \alpha_{i2} (u_c-u_i) \alpha_{i3} (u_c-u_i) \alpha_{i4} \\0000f_v\alpha_{i1} f_v\alpha_{i2} f_v\alpha_{i3} f_v\alpha_{i4} (v_c-v_i) \alpha_{i1} (v_c-v_i) \alpha_{i2} (v_c-v_i) \alpha_{i3} (v_c-v_i) \alpha_{i4} \end{bmatrix}\begin{bmatrix}C_{x1}^c \\ C_{x2}^c \\ C_{x3}^c \\ C_{x4}^c\\C_{y1}^c \\ C_{y2}^c \\ C_{y3}^c \\ C_{y4}^c \\ C_{z1}^c \\ C_{z2}^c \\ C_{z3}^c \\ C_{z4}^c\end{bmatrix} 0 fu​[αi1​​αi2​​αi3​​αi4​​] ​Cx1c​Cx2c​Cx3c​Cx4c​​ ​(uc​−ui​)[αi1​​αi2​​αi3​​αi4​​] ​Cz1c​Cz2c​Cz3c​Cz4c​​ ​0fv​[αi1​​αi2​​αi3​​αi4​​] ​Cy1c​Cy2c​Cy3c​Cy4c​​ ​(vc​−vi​)[αi1​​αi2​​αi3​​αi4​​] ​Cz1c​Cz2c​Cz3c​Cz4c​​ ​0[fu​αi1​0​fu​αi2​0​fu​αi3​0​fu​αi4​0​0fv​αi1​​0fv​αi2​​0fv​αi3​​0fv​αi4​​(uc​−ui​)αi1​(vc​−vi​)αi1​​(uc​−ui​)αi2​(vc​−vi​)αi2​​(uc​−ui​)αi3​(vc​−vi​)αi3​​(uc​−ui​)αi4​(vc​−vi​)αi4​​] ​Cx1c​Cx2c​Cx3c​Cx4c​Cy1c​Cy2c​Cy3c​Cy4c​Cz1c​Cz2c​Cz3c​Cz4c​​ ​0 找到相机坐标系下的控制点后就能够求得相机外参: C j c R C j w t [ C x j c C y j c C z j c ] [ r 1 r 2 r 3 r 4 r 5 r 6 r 7 r 8 r 9 ] [ C x j w C y j w C z j w ] [ t 1 t 2 t 3 ] C x j c r 1 C x j w r 2 C y j w r 3 C z j w t 1 C y j c r 4 C x j w r 5 C y j w r 6 C z j w t 2 C z j c r 7 C x j w r 8 C y j w r 9 C z j w t 3 [ C x 1 c C y 1 c C z 1 c C x 2 c C y 2 c C z 2 c C x 3 c C y 3 c C z 3 c C x 4 c C y 4 c C z 4 c ] [ C x 1 w C y 1 w C z 1 w 0 0 0 0 0 0 1 0 0 0 0 0 C x 1 w C y 1 w C z 1 w 0 0 0 0 1 0 0 0 0 0 0 0 C x 1 w C y 1 w C z 1 w 0 0 1 C x 2 w C y 2 w C z 2 w 0 0 0 0 0 0 1 0 0 0 0 0 C x 2 w C y 2 w C z 2 w 0 0 0 0 1 0 0 0 0 0 0 0 C x 2 w C y 2 w C z 2 w 0 0 1 C x 3 w C y 3 w C z 3 w 0 0 0 0 0 0 1 0 0 0 0 0 C x 3 w C y 3 w C z 3 w 0 0 0 0 1 0 0 0 0 0 0 0 C x 3 w C y 3 w C z 3 w 0 0 1 C x 4 w C y 4 w C z 4 w 0 0 0 0 0 0 1 0 0 0 0 0 C x 4 w C y 4 w C z 4 w 0 0 0 0 1 0 0 0 0 0 0 0 C x 4 w C y 4 w C z 4 w 0 0 1 ] [ r 1 r 2 r 3 r 4 r 5 r 6 r 7 r 8 r 9 t 1 t 2 t 3 ] \begin{aligned} C_j^c RC_j^wt\\\\ \begin{bmatrix}C_{xj}^c \\ C_{yj}^c \\ C_{zj}^c \end{bmatrix} \begin{bmatrix} r_1 r_2 r_3 \\ r_4 r_5 r_6 \\r_7 r_8 r_9 \end{bmatrix}\begin{bmatrix}C_{xj}^w \\ C_{yj}^w \\ C_{zj}^w \end{bmatrix} \begin{bmatrix} t_1 \\ t_2 \\ t_3\end{bmatrix} \\\\ C_{xj}^c r_1C_{xj}^w r_2C_{yj}^w r_3C_{zj}^w t_1\\ C_{yj}^c r_4C_{xj}^w r_5C_{yj}^w r_6C_{zj}^w t_2\\ C_{zj}^c r_7C_{xj}^w r_8C_{yj}^w r_9C_{zj}^w t_3\\ \\\\ \begin{bmatrix}C_{x1}^c \\ C_{y1}^c \\C_{z1}^c \\C_{x2}^c \\ C_{y2}^c \\C_{z2}^c \\C_{x3}^c \\ C_{y3}^c \\C_{z3}^c \\C_{x4}^c \\ C_{y4}^c \\C_{z4}^c\end{bmatrix} \begin{bmatrix} C_{x1}^w C_{y1}^w C_{z1}^w000000100 \\ 000C_{x1}^w C_{y1}^w C_{z1}^w 000010\\ 000000 C_{x1}^w C_{y1}^w C_{z1}^w 001\\ C_{x2}^w C_{y2}^w C_{z2}^w000000100 \\ 000C_{x2}^w C_{y2}^w C_{z2}^w 000010\\ 000000 C_{x2}^w C_{y2}^w C_{z2}^w 001 \\ C_{x3}^w C_{y3}^w C_{z3}^w000000100 \\ 000C_{x3}^w C_{y3}^w C_{z3}^w 000010\\ 000000 C_{x3}^w C_{y3}^w C_{z3}^w 001\\ C_{x4}^w C_{y4}^w C_{z4}^w000000100 \\ 000C_{x4}^w C_{y4}^w C_{z4}^w 000010\\ 000000 C_{x4}^w C_{y4}^w C_{z4}^w 001 \end{bmatrix} \begin{bmatrix}r_1 \\ r_2 \\ r_3 \\ r_4 \\ r_5 \\ r_6 \\ r_7 \\ r_8 \\ r_9 \\t_1\\t_2\\t_3 \end{bmatrix} \end{aligned} ​Cjc​RCjw​t ​Cxjc​Cyjc​Czjc​​ ​ ​r1​r4​r7​​r2​r5​r8​​r3​r6​r9​​ ​ ​Cxjw​Cyjw​Czjw​​ ​ ​t1​t2​t3​​ ​Cxjc​r1​Cxjw​r2​Cyjw​r3​Czjw​t1​Cyjc​r4​Cxjw​r5​Cyjw​r6​Czjw​t2​Czjc​r7​Cxjw​r8​Cyjw​r9​Czjw​t3​ ​Cx1c​Cy1c​Cz1c​Cx2c​Cy2c​Cz2c​Cx3c​Cy3c​Cz3c​Cx4c​Cy4c​Cz4c​​ ​ ​Cx1w​00Cx2w​00Cx3w​00Cx4w​00​Cy1w​00Cy2w​00Cy3w​00Cy4w​00​Cz1w​00Cz2w​00Cz3w​00Cz4w​00​0Cx1w​00Cx2w​00Cx3w​00Cx4w​0​0Cy1w​00Cy2w​00Cy3w​00Cy4w​0​0Cz1w​00Cz2w​00Cz3w​00Cz4w​0​00Cx1w​00Cx2w​00Cx3w​00Cx4w​​00Cy1w​00Cy2w​00Cy3w​00Cy4w​​00Cz1w​00Cz2w​00Cz3w​00Cz4w​​100100100100​010010010010​001001001001​ ​ ​r1​r2​r3​r4​r5​r6​r7​r8​r9​t1​t2​t3​​ ​​ 控制点选取 原则上就是只要选择3个线性无关的点就可以表示任意一个三维点但由于方程组是4如何是3个控制点只能求得最小二乘解。论文中给出了具体的选择方法。 3D参考点集为 { P i w , i 1 , ⋯ , n } \left\{P^w_i,i1,\cdots,n \right \} {Piw​,i1,⋯,n}, 选择3D点的中心为第一个控制点: C 1 w 1 n ∑ i 1 n P i w C^w_1\frac{1}{n}\sum_{i1}^nP^w_i C1w​n1​i1∑n​Piw​ 进而得到矩阵: A [ ( P 1 w ) T − ( C 1 w ) T ⋯ ( P n w ) T − ( C n w ) T ] A\begin{bmatrix}{(P_{1}^{w})}^{T} - {(C_{1}^{w})}^{T} \\ \cdots \\ {(P_{n}^{w})}^{T} - {(C_{n}^{w})}^{T} \end{bmatrix} A ​(P1w​)T−(C1w​)T⋯(Pnw​)T−(Cnw​)T​ ​ 记 A T A A^TA ATA的特征值为 λ i \lambda_i λi​, 特征向量为 V i V_i Vi​ ,那么剩下的三个点为 C w C 1 w λ i 1 2 V i , i 1 , 2 , 3 C^w C_1^w \lambda^{\frac{1}{2}}_iV_i,\ i 1,2,3 CwC1w​λi21​​Vi​, i1,2,3 求解 α \alpha α 联立方程组: P i w α i 1 C 1 w α i 2 C 2 w α i 3 C 3 w α i 4 C 4 w [ x i y i z i ] α i 1 [ C x 1 w C y 1 w C z 1 w ] α i 2 [ C x 2 w C y 2 w C z 2 w ] α i 3 [ C x 3 w C y 3 w C z 3 w ] α i 4 [ C x 4 w C y 4 w C z 4 w ] \begin{aligned} P_i^w \alpha_{i1}C_1^w\alpha_{i2}C_2^w\alpha_{i3}C_3^w\alpha_{i4}C_4^w \\\\ \begin{bmatrix} x_i \\y_i\\z_i\end{bmatrix} \alpha_{i1}\begin{bmatrix} C_{x1}^w \\C_{y1}^w\\C_{z1}^w\end{bmatrix}\alpha_{i2}\begin{bmatrix} C_{x2}^w \\C_{y2}^w\\C_{z2}^w\end{bmatrix}\alpha_{i3}\begin{bmatrix} C_{x3}^w \\C_{y3}^w\\C_{z3}^w\end{bmatrix}\alpha_{i4}\begin{bmatrix} C_{x4}^w \\C_{y4}^w\\C_{z4}^w\end{bmatrix} \end{aligned} ​Piw​αi1​C1w​αi2​C2w​αi3​C3w​αi4​C4w​ ​xi​yi​zi​​ ​αi1​ ​Cx1w​Cy1w​Cz1w​​ ​αi2​ ​Cx2w​Cy2w​Cz2w​​ ​αi3​ ​Cx3w​Cy3w​Cz3w​​ ​αi4​ ​Cx4w​Cy4w​Cz4w​​ ​​ 每个点可以得到4个方程组: x i α i 1 C x 1 w α i 2 C x 2 w α i 3 C x 3 w α i 4 C x 4 w y i α i 1 C y 1 w α i 2 C y 2 w α i 3 C y 3 w α i 4 C y 4 w z i α i 1 C z 1 w α i 2 C z 2 w α i 3 C z 3 w α i 4 C z 4 w 1 α i 1 α i 2 α i 3 α i 4 x_i\alpha_{i1}C_{x1}^w\alpha_{i2}C_{x2}^w\alpha_{i3}C_{x3}^w\alpha_{i4}C_{x4}^w\\ y_i\alpha_{i1}C_{y1}^w\alpha_{i2}C_{y2}^w\alpha_{i3}C_{y3}^w\alpha_{i4}C_{y4}^w\\ z_i\alpha_{i1}C_{z1}^w\alpha_{i2}C_{z2}^w\alpha_{i3}C_{z3}^w\alpha_{i4}C_{z4}^w\\ 1 \alpha_{i1}\alpha_{i2}\alpha_{i3}\alpha_{i4} xi​αi1​Cx1w​αi2​Cx2w​αi3​Cx3w​αi4​Cx4w​yi​αi1​Cy1w​αi2​Cy2w​αi3​Cy3w​αi4​Cy4w​zi​αi1​Cz1w​αi2​Cz2w​αi3​Cz3w​αi4​Cz4w​1αi1​αi2​αi3​αi4​ 用矩阵的方式可表示为 [ x i y i z i 1 ] [ C x 1 w C x 2 w C x 3 w C x 4 w C y 1 w C y 2 w C y 3 w C y 4 w C z 1 w C z 2 w C z 3 w C z 4 w 1 1 1 1 ] [ α i 1 α i 2 α i 3 α i 4 ] ⟶ [ C x 1 w C x 2 w C x 3 w C x 4 w C y 1 w C y 2 w C y 3 w C y 4 w C z 1 w C z 2 w C z 3 w C z 4 w 1 1 1 1 ] − 1 [ x i y i z i 1 ] [ α i 1 α i 2 α i 3 α i 4 ] \begin{bmatrix} x_i \\ y_i \\ z_i \\ 1 \end{bmatrix} \begin{bmatrix} C_{x1}^w C_{x2}^w C_{x3}^w C_{x4}^w \\ C_{y1}^w C_{y2}^w C_{y3}^w C_{y4}^w \\ C_{z1}^w C_{z2}^w C_{z3}^w C_{z4}^w \\ 1111 \end{bmatrix} \begin{bmatrix} \alpha_{i1} \\ \alpha_{i2} \\ \alpha_{i3} \\ \alpha_{i4}\end{bmatrix} \longrightarrow \begin{bmatrix} C_{x1}^w C_{x2}^w C_{x3}^w C_{x4}^w \\ C_{y1}^w C_{y2}^w C_{y3}^w C_{y4}^w \\ C_{z1}^w C_{z2}^w C_{z3}^w C_{z4}^w \\ 1111 \end{bmatrix} ^{-1}\begin{bmatrix} x_i \\ y_i \\ z_i \\ 1 \end{bmatrix} \begin{bmatrix} \alpha_{i1} \\ \alpha_{i2} \\ \alpha_{i3} \\ \alpha_{i4}\end{bmatrix} ​xi​yi​zi​1​ ​ ​Cx1w​Cy1w​Cz1w​1​Cx2w​Cy2w​Cz2w​1​Cx3w​Cy3w​Cz3w​1​Cx4w​Cy4w​Cz4w​1​ ​ ​αi1​αi2​αi3​αi4​​ ​⟶ ​Cx1w​Cy1w​Cz1w​1​Cx2w​Cy2w​Cz2w​1​Cx3w​Cy3w​Cz3w​1​Cx4w​Cy4w​Cz4w​1​ ​−1 ​xi​yi​zi​1​ ​ ​αi1​αi2​αi3​αi4​​ ​ void Rebuild::ePnP(const std::vectorEigen::Vector3d p3ds, const std::vectorEigen::Vector2d p2ds, Camera camera) {auto blog _blog;blog-write(ePnP:);/**寻找4个控制点**///求取重心Eigen::Vector3d center Eigen::Vector3d::Zero();std::vectorEigen::Vector3d control_points_w(4);for (int i 0; i p3ds.size(); i) {center(0) p3ds[i](0);center(1) p3ds[i](1);center(2) p3ds[i](2);}center(0) / p3ds.size();center(1) / p3ds.size();center(2) / p3ds.size();control_points_w[0] center;blog-write(center:);blog-write(center);blog-write();//构建矩阵Eigen::MatrixXd A Eigen::MatrixXd::Zero(p3ds.size(), 3);for (int i 0; i p3ds.size(); i) {A(i, 0) p3ds[i](0) - center(0);A(i, 1) p3ds[i](1) - center(1);A(i, 2) p3ds[i](2) - center(2);}Eigen::MatrixXd M A.transpose() * A;Eigen::EigenSolverEigen::MatrixXd solver(M);Eigen::VectorXd eigenValues solver.eigenvalues().real();Eigen::MatrixXd eigenVectors solver.eigenvectors().real();blog-write(eigenValues:);blog-write(eigenValues);blog-write();blog-write(eigenVectors:);blog-write(eigenVectors);blog-write();for (int i 1; i 4; i) {control_points_w[i] control_points_w[0] sqrt(eigenValues(i - 1)) * eigenVectors.col(i - 1);}blog-write(control_points_w:);for (int i 0; i 4; i) {blog-write(control_points_w[i]);}blog-write();/**求解alpha**/Eigen::MatrixXd C_w Eigen::MatrixXd::Zero(4, 4);for (int i 0; i 4; i) {double x control_points_w[i](0);double y control_points_w[i](1);double z control_points_w[i](2);C_w(0, i) x;C_w(1, i) y;C_w(2, i) z;C_w(3, i) 1;}Eigen::MatrixXd C_w_inv C_w.inverse();blog-write(C_w:);blog-write(C_w);blog-write();blog-write(C_w_inv:);blog-write(C_w_inv);blog-write();double fu camera._K(0, 0);double fv camera._K(1, 1);double uc camera._K(0, 2);double vc camera._K(1, 2);Eigen::MatrixXd D Eigen::MatrixXd::Zero(int(2 * p3ds.size()), 12);for (int i 0; i p3ds.size(); i) {Eigen::Vector3d p3d p3ds[i];Eigen::Vector2d p2d p2ds[i];Eigen::Vector4d b;b p3d(0), p3d(1), p3d(2), 1;Eigen::Vector4d alpha C_w_inv * b;D(i * 2, 0) fu * alpha(0);D(i * 2, 1) fu * alpha(1);D(i * 2, 2) fu * alpha(2);D(i * 2, 3) fu * alpha(3);D(i * 2, 8) (uc - p2d(0)) * alpha(0);D(i * 2, 9) (uc - p2d(0)) * alpha(1);D(i * 2, 10) (uc - p2d(0)) * alpha(2);D(i * 2, 11) (uc - p2d(0)) * alpha(3);D(i * 2 1, 4) fv * alpha(0);D(i * 2 1, 5) fv * alpha(1);D(i * 2 1, 6) fv * alpha(2);D(i * 2 1, 7) fv * alpha(3);D(i * 2 1, 8) (vc - p2d(1)) * alpha(0);D(i * 2 1, 9) (vc - p2d(1)) * alpha(1);D(i * 2 1, 10) (vc - p2d(1)) * alpha(2);D(i * 2 1, 11) (vc - p2d(1)) * alpha(3);if(i 0){blog-write(alpha:);blog-write(alpha);blog-write();}}blog-write(D:);blog-write(D);blog-write();Eigen::JacobiSVDEigen::MatrixXd svd(D, Eigen::ComputeFullV | Eigen::ComputeFullU);auto V svd.matrixV();std::vectorEigen::Vector3d control_points_c(4);blog-write(control_points_c:);for (int i 0; i 4; i) {double x V(i);double y V(i 4);double z V(i 8);Eigen::Vector3d p3d(x, y, z);control_points_c[i] p3d;blog-write(p3d);}blog-write();Eigen::MatrixXd Q Eigen::MatrixXd::Zero(12, 12);Eigen::VectorXd C_c Eigen::VectorXd::Zero(12);for (int i 0; i 4; i) {C_c(i * 3) control_points_c[i](0);C_c(i * 3 1) control_points_c[i](1);C_c(i * 3 2) control_points_c[i](2);Q(i * 3, 0) control_points_w[i](0);Q(i * 3, 1) control_points_w[i](1);Q(i * 3, 2) control_points_w[i](2);Q(i * 3, 9) 1;Q(i * 3 1, 3) control_points_w[i](0);Q(i * 3 1, 4) control_points_w[i](1);Q(i * 3 1, 5) control_points_w[i](2);Q(i * 3 1, 10) 1;Q(i * 3 2, 6) control_points_w[i](0);Q(i * 3 2, 7) control_points_w[i](1);Q(i * 3 2, 8) control_points_w[i](2);Q(i * 3 2, 11) 1;}blog-write(Q:);blog-write(Q);blog-write();blog-write(C_c:);blog-write(C_c);blog-write();Eigen::MatrixXd Q_inv Q.inverse();blog-write(Q_inv:);blog-write(Q_inv);blog-write();Eigen::VectorXd ans Eigen::VectorXd::Zero(12);ans Q_inv * C_c;blog-write(ans:);blog-write(ans);blog-write();camera._R(0, 0) ans(0);camera._R(0, 1) ans(1);camera._R(0, 2) ans(2);camera._R(1, 0) ans(3);camera._R(1, 1) ans(4);camera._R(1, 2) ans(5);camera._R(2, 0) ans(6);camera._R(2, 1) ans(7);camera._R(2, 2) ans(8);camera._t(0) ans(9);camera._t(1) ans(10);camera._t(2) ans(11); }
http://www.hkea.cn/news/14561916/

相关文章:

  • 成都网站优化师产品推销文案
  • 什么网站合适做流量wordpress 页面栏目
  • 网站建设 文章WordPress二级目录404
  • 优酷的网站头怎么做的2018建设工程管理招团支部网站
  • 高新快速建设网站找哪家wordpress设置用户头像
  • 网站开发软件开发流程东莞网络推广哪家公司奿
  • 网站如何做邮箱订阅做wordpress 下载站
  • 怎样创立一个网站百度竞价推广开户费用
  • 国外木屋建设网站重庆网站建设网站制作
  • 响应式衣柜网站dw做简单小说网站
  • 广州网站设计首选刻电子工程师有前途吗
  • 百度官方网站登录国内很多网站不是响应式
  • 淘客怎么做网站辽宁建设工程信息网怎么查人员
  • 福田做棋牌网站建设哪家技术好青岛公司注册
  • 网站建设公司(深圳信科)本地做的网站如何映射出去
  • 装修设计网站哪个好用奉贤免费网站建设
  • 做料理网站关键词怎么设置长春公司网站建设
  • 电脑软件下载官方网站还有多少用.net做网站的
  • 微信网站特点自学平面设计入门教程
  • 深圳做微信商城网站西安网站设计试听
  • 电子商务网站平台建设协会类网站免费模板
  • 400套商业网站的静态模板巩义做网站哪家好
  • html5餐饮美食订餐微官网wap手机网站模板整站下载模板做的网站不好优化
  • 如何免费搭建自己的网站阿里网站建设
  • 怎么制作网站域名网站备案需要什么东西
  • 做网站每年需要多少维护费Sql 发wordpress
  • 链家二手房官网关键字排名优化公司
  • 如何推广自己的个人网站呢装修案例实景图
  • 中国农业工程建设协会网站图片设计用什么软件
  • 做本地化的返利网站怎么样泰州网站制作网站