Матрица 4x4 нужна, если только вращение не вокруг начала координат, а вокруг произвольной точки. Для поворота вокруг начала координат достаточно матрицы 3x3. Хорошо объясняется в книге Роджерс. Математические основы машинной графики. М. Мир.
Вращения конечно можно считать аффинными преобразованиями, но это все-же частный случай. (С тем же успехом можно считать и перспективными).В данном конкретном случае такие трансформации называется движениями.
В какой-то момент у вас будет возведение в дробную степень, меньшую единицы, что в результате дает комплексное число, а тангенс от комплексного числа неопределен, по крайней мере в модуле math. Но вы можете воспользоваться функцией tan из cmath, тогда ошибки не будет. :-)
Анализ гистограммы и дистанционное преобразование позволит удалить зведомо сильно искаженные символы.
Далее скелетизация и анализ остова.
Если деформации периодические, то тут уже надо анализировать не один кадр, всю последовательность.
Кстати, попробуйте усреднить последовательность по времени.
Александр Ананьев, более того: нет смысла его вычислять на интервале отличном от [0..pi/2]
pow(10, -15) это шедевр! ТС не умеет записать double с мантиссой и порядком. 1e-15
apiwi, так ты и обрезай исходник. Просто после обрезки и сохранения в png востанавливай исходный кропбокс из сохраненного и обрезай следующий фрагмент и т.д.
Это будет работать как команда Undo.