我遇到了与这里描述的问题相同的情况:如何使用Python执行坐标仿射变换?
我尝试使用所描述的方法,但由于某些原因我收到了错误消息。 我对代码进行的更改是替换原始系统和次要系统点。我使用不同的原点创建了次要坐标点。在我研究这个主题的实际案例中,在测量坐标时会有一些误差。
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)
执行时我收到的错误如下。
*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*
可能出了什么问题?