¿Cómo realizar la transformación afín de coordenadas usando python? parte 2

Tengo el mismo problema como se describe aquí:¿Cómo realizar la transformación afín de coordenadas usando python?

Estaba tratando de usar el método descrito, pero por alguna razón obtendré mensajes de error. Los cambios que hice en el código fueron para reemplazar el sistema primario y los puntos del sistema secundario. Creé puntos de coordenadas secundarios utilizando diferentes origo. En el caso real para el que estoy estudiando este tema tendré algunos errores al medir las coordenadas.

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)

El error que recibo de al ejecutar está siguiendo.

*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*

Cuál podría ser el problema ?

Respuestas a la pregunta(1)

Su respuesta a la pregunta