Если преобразование между двумя наборами точек представляет собой шкалу + вращение + сдвиг, то гомография будет просто аффинной матрицей, в которой верхний левый блок 2x2 представляет собой масштабированное вращение. В этом случае вычислите угол, используя:
angle = math.atan2(H[1,0], H[0,0])
Если может проникнуть какой-то другой вид преобразования (сдвиг, проективный), то безопаснее сначала выполнить декомпозицию SVD верхнего левого блока 2x2, чтобывосстановить вращение:
u, _, vh = numpy.linalg.svd(H[0:2, 0:2])
R = u @ vh
angle = math.atan2(R[1,0], R[0,0])