Как повернуть изображение с помощью ближайшего соседа и билинейной интерполяции без использования библиотеки OpenCv? - PullRequest
0 голосов
/ 04 мая 2019

Я хочу знать любой базовый математический алгоритм для поворота изображения с использованием ближайшего соседа и билинейной интерполяции без использования библиотеки OpenCV и imrotate.

Изображение не будет обрезано после поворота, и должно отображаться полное изображение.

1 Ответ

1 голос
/ 04 мая 2019

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

Теперь важно знать, что вместо того, чтобы брать пиксели исходного изображения и отображать их в преобразованном изображении, вы должны работать в обратном направлении.

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

Тогда

  • для метода ближайшего соседа, округлите координаты и просто скопируйте значение исходного пикселя в место назначения;

  • для билинейного метода рассмотрим четыре пикселя вокруг полученных координат (вы выполните усечение до целого числа). Наконец, вычислите целевой пиксель как билинейную комбинацию четырех исходных пикселей, используя дробную часть координат в качестве весов для выполнения интерполяции.

Проверьте цифры здесь: http://wtlab.iis.u -tokyo.ac.jp / wataru / lecture / rsgis / rsnote / cp9 / cp9-7.htm

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