X = RandomReal[{−1000, 1000}, {6, 4}]; | M = RandomReal[{−1, 1}, {4, 3, 4}]; | T = RandomReal[{0, 1}, {4, 6}]; | x = RandomReal[{0, 1}, {4, 6, 3}]; | a = RandomReal[{0, 1}, {4, 6, 4}]; | b = RandomReal[{0, 1}, {4, 6, 4}]; | u = RandomReal[{0, 1}, {4, 6}]; | v = RandomReal[{0, 1}, {4, 6}]; | X[[]] = 1; | X[[]] = 1; | X[[]] = 1; | X[[]] = 1; | X[[]] = 1; | X[[]] = 1; | XT = Transpose[{X[[]], X[[]], X[[]], X[[]]}]; | A = LinearSolve[XT, X[[]]]; | B = LinearSolve[XT, X[[]]]; | Inv1 = (A[[]] B[[]])/(A[[]] B[[]]); | Inv2 = (A[[]] B[[]])/(A[[]] B[[]]); | Inv3 = (A[[]] B[[]])/(A[[]] B[[]]); | Print[“The three invariants computed from 3D point | locations: ”, Inv1, “ ”, Inv2, “ ”, Inv3]; | For[i = 1, i <= 4, i++, For[j = 1, j <= 6, j++, | x[[i, j]] = M[[i]] X[[j]]; | u[[i, j]] = x[[i, j, 1]]/x[[i, j, 3]]; | v[[i, j]] = x[[i, j, 2]]/x[[i, j, 3]]; | ]]; | For[i = 1, i <= 4, i++, For[j = 5, j <= 6, j++, | a[[i, j, 1]] = u[[i, 1]] − u[[i, j]]; | a[[i, j, 2]] = u[[i, 2]] − u[[i, j]]; | a[[i, j, 3]] = u[[i, 3]] − u[[i, j]]; | a[[i, j, 4]] = u[[i, 4]] − u[[i, j]]; | b[[i, j, 1]] = v[[i, 1]] − v[[i, j]]; | b[[i, j, 2]] = v[[i, 2]] − v[[i, j]]; | b[[i, j, 3]] = v[[i, 3]] − v[[i, j]]; | b[[i, j, 4]] = v[[i, 4]] − v[[i, j]]; | ]]; | For[i = 1, i <= 4, i++, | T[[i, 1]] = (a[[i, 5, 3]] b[[i, 5, 4]] − a[[i, 5, 4]] b[[i, 5, 3]]) | (a[[i, 6, 1]] b[[i, 6, 2]] − a[[i, 6, 2]] b[[i, 6, 1]]); | T[[i, 2]] = (a[[i, 5, 4]] b[[i, 5, 2]] − a[[i, 5, 2]] b[[i, 5, 4]]) | (a[[i, 6, 1]] b[[i, 6, 3]] − a[[i, 6, 3]] b[[i, 6, 1]]); | T[[i, 3]] = (a[[i, 5, 2]] b[[i, 5, 3]] − a[[i, 5, 3]] b[[i, 5, 2]]) | (a[[i, 6, 1]] b[[i, 6, 4]] − a[[i, 6, 4]] b[[i, 6, 1]]); | T[[i, 4]] = (a[[i, 5, 1]] b[[i, 5, 4]] − a[[i, 5, 4]] b[[i, 5, 1]]) | (a[[i, 6, 2]] b[[i, 6, 3]] − a[[i, 6, 3]] b[[i, 6, 2]]); | T[[i, 5]] = (a[[i, 5, 3]] b[[i, 5, 1]] − a[[i, 5, 1]] b[[i, 5, 3]]) | (a[[i, 6, 2]] b[[i, 6, 4]] − a[[i, 6, 4]] b[[i, 6, 2]]); | T[[i, 6]] = (a[[i, 5, 1]] b[[i, 5, 2]] − a[[i, 5, 2]] b[[i, 5, 1]]) | (a[[i, 6, 3]] b[[i, 6, 4]] − a[[i, 6, 4]] b[[i, 6, 3]]); | ]; | I1 = −Det[{ | {T[[]], T[[]] + T[[]], T[[]], T[[]]}, | {T[[]], T[[]] + T[[]], T[[]], T[[]]}, | {T[[]], T[[]] + T[[]], T[[]], T[[]]}, | {T[[]], T[[]] + T[[]], T[[]], T[[]]} | }]/Det[{ | {T[[]], T[[]], T[[]], T[[]]}, | {T[[]], T[[]], T[[]], T[[]]}, | {T[[]], T[[]], T[[]], T[[]]}, | {T[[]], T[[]], T[[]], T[[]]} | }]; | I2 = −Det[{ | {T[[]] + T[[]], T[[]], T[[]], T[[]]}, | {T[[]] + T[[]], T[[]], T[[]], T[[]]}, | {T[[]] + T[[]], T[[]], T[[]], T[[]]}, | {T[[]] + T[[]], T[[]], T[[]], T[[]]} | }]/Det[{ | {T[[]], T[[]], T[[]], T[[]]}, | {T[[]], T[[]], T[[]], T[[]]}, | {T[[]], T[[]], T[[]], T[[]]}, | {T[[]], T[[]], T[[]], T[[]]} | }]; | I3 = −Det[{ | {T[[]] + T[[]], T[[]], T[[]], T[[]]}, | {T[[]] + T[[]], T[[]], T[[]], T[[]]}, | {T[[]] + T[[]], T[[]], T[[]], T[[]]}, | {T[[]] + T[[]], T[[]], T[[]], T[[]]} | }]/Det[{ | {T[[]], T[[]], T[[]], T[[]]}, | {T[[]], T[[]], T[[]], T[[]]}, | {T[[]], T[[]], T[[]], T[[]]}, | {T[[]], T[[]], T[[]], T[[]]} | }]; | Print[“The three invariants computed from 2D projections: ”, | I1, “ ”, I2, “ ”, I3]; |
|