Как повернуть изображение относительно точки, которая не является центральной точкой изображения, с помощью MATLAB?

Какой метод использовать для поворота изображения относительно точки, которая не является центральной точкой изображения, с помощью MATLAB?


person Sulla    schedule 05.04.2012    source источник
comment
Можно использовать функцию IMTRANSFORM.   -  person Ashish Uthama    schedule 05.04.2012


Ответы (3)


Два поворота на один и тот же угол равны с точностью до перевода. Таким образом, вы можете просто вращать вокруг центра, а затем перемещать изображение, чтобы поместить свой собственный центр вращения в его старое положение.

person Oli    schedule 05.04.2012
comment
Два поворота на один и тот же угол равны с точностью до перевода. Не совсем. - person denver; 29.04.2013
comment
Два поворота на один и тот же угол равны с точностью до перевода. Это зависит от центра поворотов и от того, какие другие преобразования выполняются и в каком порядке они выполняются. Два поворота на один и тот же угол x сами по себе равны одному вращению на 2x, а не перемещению. Я думаю, что вы пытаетесь сказать правильные вещи, однако, как вы это говорите, неясно. - person denver; 30.04.2013

Помощь «повернуть» говорит:

ПОВЕРНУТЬ Повернуть объекты относительно указанного источника и направления. ROTATE (H, [THETA PHI], ALPHA) вращает объекты с ручками H на угол ALPHA вокруг оси, описываемой двухэлементным вектором направления [THETA PHI] (сферические координаты).
Все углы указаны в градусах. Ручки в H должны быть дочерними по отношению к одной и той же оси.

...

ROTATE (..., ORIGIN) использует точку ORIGIN = [x0, y0, y0] в качестве центра вращения вместо центра поля графика.

person kaybe    schedule 05.04.2012
comment
Я думаю, он скорее спрашивал о функции imrotate - person Oli; 06.04.2012

Чтобы повернуться вокруг точки, отличной от исходной, вы:

  1. Переместите точку, которую вы хотите повернуть, в начало координат. Например, если вы хотите повернуть вокруг (3,5), вы должны перевести на (-3, -5).
  2. Выполните свое вращение.
  3. Отменить первоначальный перевод. Итак, в моем примере вы теперь переводите как (+ 3, + 5).
person denver    schedule 29.04.2013
comment
Два перевода эквивалентны одному переводу. - person Cris Luengo; 08.11.2019