Почему функция поворота skimage получает метод интерполяции в качестве аргумента? - PullRequest
0 голосов
/ 07 ноября 2018

Использование Skimage rotate Функция Я заметил, что она имеет необязательный параметр интерполяции (порядка), но я не мог понять, почему.
В документе не указано, как оно использовалось, и я подумал, что вращение изображения заканчивается простым сдвигом индексов.
Вот изображение, повернутое на 30 градусов с билинейной и NN-интерполяциями, я могу ' Разница в курсе конечно.
enter image description here enter image description here

Ответы [ 2 ]

0 голосов
/ 06 апреля 2019

Чтобы повернуть изображение на угол тета, необходимо сопоставить каждый пиксель P = (x, y) с новой точкой P '= (x', y '). То, как P отображается на P ', зависит от оси вращения и от тета в градусах или радианах, но это будет что-то вроде:

  • x '= x * cos (тета) - y * sin (тета)
  • y '= x * sin (тэта) + y * cos (тэта)

проблема в том, что это приводит к нецелым значениям, вот где начинается интерполяция. Чтобы заполнить пиксель (x, y) в повернутом изображении, потребуется использовать пиксель с нецелыми координатами исходного изображения, интерполяция приближает эту нецелую точку, используя точки рядом.

0 голосов
/ 08 ноября 2018

То, что вы делаете, деформирует изображение.

Например, представьте, что вы хотите повернуть вышеуказанное изображение, но убедитесь, что ни одно из вращающихся изображений не выходит за пределы. Вы хотели бы вращать, но также деформировать оси, чтобы вы могли видеть все изображение.

См. http://scikit -image.org / docs / dev / api / skimage.transform.html # skimage.transform.warp для подробностей и других вариантов использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...