Ho lo stesso problema, come descritto di seguito: how to perform coordinates affine transformation using python?come eseguire le coordinate di trasformazione affine usando python? parte 2
Stavo cercando di utilizzare il metodo descritto, ma qualche ragione mi metterò i messaggi di errore. Le modifiche apportate al codice erano la sostituzione del sistema primario e dei punti del sistema secondario. Ho creato punti di coordinate secondarie utilizzando origini diverse. Nel caso reale per il quale sto studiando questo argomento avrà degli errori nel misurare le coordinate.
primary_system1 = (40.0, 1160.0, 0.0) primary_system2 = (40.0, 40.0, 0.0) primary_system3 = (260.0, 40.0, 0.0) primary_system4 = (260.0, 1160.0, 0.0) secondary_system1 = (610.0, 560.0, 0.0) secondary_system2 = (610.0,-560.0, 0.0) secondary_system3 = (390.0, -560.0, 0.0) secondary_system4 = (390.0, 560.0, 0.0)
errore che ricevo da quando si eseguono seguendo.
*Traceback (most recent call last):
File "affine_try.py", line 57, in <module>
secondary_system3, secondary_system4)
File "affine_try.py", line 22, in solve_affine
A2 = y * x.I
File "/usr/lib/python2.7/dist-packages/numpy/matrixlib/defmatrix.py", line 850, in getI
return asmatrix(func(self))
File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 445, in inv
return wrap(solve(a, identity(a.shape[0], dtype=a.dtype)))
File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 328, in solve
raise LinAlgError, 'Singular matrix'
numpy.linalg.linalg.LinAlgError: Singular matrix*
Quale potrebbe essere il problema?