多視覺幾何課程:
http://www.robots.ox.ac.uk/~victor/teaching/practicals/Practical_MVG.html
http://www.robots.ox.ac.uk/~vgg/hzbook/code/
https://kth.instructure.com/courses/6163/pages/course-material
https://cw.fel.cvut.cz/b182/courses/gvg/start
import numpy as np
np.set_printoptions(suppress=True)
A=np.matrix([[3,0],[5,4]])
print("A:\n",A)
U,D,V_t = np.linalg.svd(A)
print("U:\n",U)
D_=np.array([[D[0],0],[0,D[1]]])
print("D_:\n",D_)
print("V_t:\n",V_t)
C=U*D_*V_t
print("C:\n",C)
F=(U*V_t)*(V_t.T*D_*V_t)
print("F:\n",F)
A:
[[3 0]
[5 4]]
U:
[[-0.36773822 -0.92992935]
[-0.92992935 0.36773822]]
D_:
[[6.85067239 0. ]
[0. 1.75165288]]
V_t:
[[-0.83975136 -0.54297114]
[-0.54297114 0.83975136]]
C:
[[3. 0.]
[5. 4.]]
F:
[[3. 0.]
[5. 4.]]
(U*V_t):
[[ 0.81373347 -0.58123819]
[ 0.58123819 0.81373347]]
V_t.T:
[[-0.83975136 -0.54297114]
[-0.54297114 0.83975136]]
D_:
[[6.85067239 0. ]
[0. 1.75165288]]
V_t:
[[-0.83975136 -0.54297114]
[-0.54297114 0.83975136]]
或者三維整體:
import numpy as np
np.set_printoptions(suppress=True)
A=np.matrix([[3,0,3],[5,4,0],[1,2,4]])
print("A:\n",A)
U,D,V_t = np.linalg.svd(A)
print("U:\n",U)
D_=np.array([[D[0],0,0],[0,D[1],0],[0,0,D[2]]])
print("D_:\n",D_)
print("V_t:\n",V_t)
C=U*D_*V_t
print("C:\n",C)
F=(U*V_t)*(V_t.T*D_*V_t)
print("F:\n",F)
A:
[[3 0 3]
[5 4 0]
[1 2 4]]
U:
[[-0.4590819 -0.42640143 0.77937515]
[-0.76229288 0.63960215 -0.09908912]
[-0.45623828 -0.63960215 -0.61867255]]
D_:
[[7.60356333 0. 0. ]
[0. 4.24264069 0. ]
[0. 0. 2.0459288 ]]
V_t:
[[-0.74240828 -0.5210252 -0.42114449]
[ 0.30151134 0.30151134 -0.90453403]
[ 0.59826487 -0.7985134 -0.06674951]]
C:
[[ 3. -0. 3.]
[ 5. 4. -0.]
[ 1. 2. 4.]]
F:
[[ 3. 0. 3.]
[ 5. 4. -0.]
[ 1. 2. 4.]]
(U*V_t):
[[ 0.67853411 -0.51171313 0.52701151]
[ 0.69949832 0.66914509 -0.25089231]
[-0.22426228 0.53888266 0.81198024]]
V_t.T:
[[-0.74240828 0.30151134 0.59826487]
[-0.5210252 0.30151134 -0.7985134 ]
[-0.42114449 -0.90453403 -0.06674951]]
D_:
[[7.60356333 0. 0. ]
[0. 4.24264069 0. ]
[0. 0. 2.0459288 ]]
V_t:
[[-0.74240828 -0.5210252 -0.42114449]
[ 0.30151134 0.30151134 -0.90453403]
[ 0.59826487 -0.7985134 -0.06674951]]