Поворот изображения о конкретном пикселе в Python - PullRequest
2 голосов
/ 26 августа 2010

Как я могу повернуть изображение о конкретном пикселе в Python?Я пытаюсь развернуть набор изображений ночного неба.Поскольку звезды вращаются вокруг Polaris, я могу определить Polaris как центр вращения и поворачивать каждое изображение, чтобы выровнять звезды.

Ответы [ 2 ]

2 голосов
/ 26 августа 2010

В ответе Phadej преобразование между старой и новой координатами точки на изображении представляет собой аффинное преобразование .

PIL (Python Imaging Library) имеетметод изображения с именем transform, который может выполнять аффинное преобразование изображения.

Документация для transform находится в нижней части этой страницы .

0 голосов
/ 26 августа 2010

С небольшой математикой: если позиция пикселя каждого изображения - вектор a, а позиция Polaris - p, то новая позиция new_p равна

new_p = a + R * (a-p)

, где R - Матрица вращения .

Будет проблема, поскольку new_p, вероятно, не является целочисленным позиционным вектором. Вы может сделать это задом наперед. Для каждого пикселя повернутого изображения применяется обратное преобразование выше, чем вы получите пиксель от исходного изображения. Поскольку это также может быть не целое число, выберите соседние пиксели, например, wu-пикселов (количество точек, разбросанных вокруг, можно использовать в качестве веса выборки).

...