LINUX.ORG.RU

algorithm for rotating images

 


0

1

Всем привет.
Чо-то я запутался как сделать переворот изображения, как это делают в графических редакторах и т. п.
Единственное что пришло в голову это перевернуть матрицу.
Может кто-то что-то подкинет почитать по этому.
Спб.

★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

man матрица поворота

Eddy_Em ☆☆☆☆☆
()

use 'Матрица поворота' Luke

xterro ★★★★★
()

Перевернуть или повернуть? Если перевернуть, то как (а если повернуть, то на какой угол - произвольный, кратный прямому)?

AIv ★★★★★
()

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

А вот если свертку заменить умножением в Фурье-пространстве, то интерполяция получится «сама по себе».

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Boy_from_Jungle

ну на сколько там перевороты идут

повороты могут идти на любой угол, Вам то на какой надо? Если на углы кратные 90 (90, 180, 270) то это самый простой частный случай, надо просто переставить пиксели местами. Выделяете памыть под новое изображение и вперед... что тут непонятно?

AIv ★★★★★
()
Ответ на: комментарий от AIv

Да нет это понятно, я просто спросил может есть какой более продвинутый алгоритм.
спб откликнувшимся

Boy_from_Jungle ★★★★
() автор топика
Ответ на: комментарий от AIv

Для таких поворотов память выделять не нужно и ничего переставлять не нужно. Это лишь вопрос адресации.

invy ★★★★★
()
Ответ на: комментарий от Harald

в зависимости от разворота выбирать разную функцию для обращения к пикселям.
вместо например: x * width + y брать size - x*width - y, что соответствует развороту на 180 (если не ошибся).

invy ★★★★★
()
Ответ на: комментарий от invy

аналогично реализуются flip vertically/filp horizontally

invy ★★★★★
()
Ответ на: комментарий от invy

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от invy

Для таких поворотов память выделять не нужно и ничего переставлять не нужно. Это лишь вопрос адресации.

Если формат изображения такие феньки поддерживает, то да. Если нет, то нет.

AIv ★★★★★
()
Ответ на: комментарий от invy

Например поверните так png, лежащий на диске.

AIv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.