В евклидовой геометрии аффинное преобразование или аффинность (от латинского affinis , «связанный с») — это геометрическое преобразование , сохраняющее линии и параллельность , но не обязательно евклидовы расстояния и углы .
В более общем смысле, аффинное преобразование — это автоморфизм аффинного пространства (евклидовы пространства — это особые аффинные пространства), то есть функция , которая отображает аффинное пространство на себя, сохраняя при этом размерность любых аффинных подпространств (это означает, что она отправляет точки в точки, линии к линиям, плоскости к плоскостям и т. д.) и отношения длин параллельных отрезков линий. Следовательно, множества параллельных аффинных подпространств остаются параллельными после аффинного преобразования. Аффинное преобразование не обязательно сохраняет углы между линиями или расстояния между точками, хотя оно сохраняет соотношения расстояний между точками, лежащими на прямой линии.
Если X — множество точек аффинного пространства, то каждое аффинное преобразование X можно представить как композицию линейного преобразования X и перевода X . В отличие от чисто линейного преобразования, аффинное преобразование не обязательно сохраняет начало аффинного пространства. Таким образом, каждое линейное преобразование является аффинным, но не каждое аффинное преобразование является линейным.
Примеры аффинных преобразований включают трансляцию, масштабирование , гомотетию , сходство , отражение , вращение , сдвиговое отображение и их композиции в любой комбинации и последовательности.
Рассматривая аффинное пространство как дополнение к гиперплоскости на бесконечности проективного пространства , аффинные преобразования — это проективные преобразования этого проективного пространства, которые оставляют гиперплоскость на бесконечности инвариантной , ограниченной дополнением к этой гиперплоскости.
Обобщением аффинного преобразования является аффинное отображение [1] (или аффинный гомоморфизм или аффинное отображение ) между двумя ( потенциально разными) аффинными пространствами над одним и тем же полем k . Пусть ( X , V , k ) и ( Z , W , k ) — два аффинных пространства, где X и Z — множества точек, а V и W — соответствующие ассоциированные векторные пространства над полем k . Отображение f : X → Z является аффинным отображением, если существует линейное отображение m f : V → W такое, что m f ( x − y ) = f ( x ) − f ( y ) для всех x, y в X . [2]
Пусть X — аффинное пространство над полем k , а V — ассоциированное с ним векторное пространство. Аффинное преобразование — это биекция f из X на себя, которая является аффинным отображением ; это означает, что линейное отображение g из V в V корректно определяется уравнением : здесь, как обычно, вычитание двух точек обозначает свободный вектор из второй точки в первую, а « корректно определенное » означает, что подразумевается, что
Если размерность X не менее двух, полуаффинное преобразование f X является биекцией X на себя, удовлетворяющей: [ 3 ]
Эти два условия удовлетворяются аффинными преобразованиями и выражают именно то, что подразумевается под выражением « f сохраняет параллелизм».
Эти условия не являются независимыми, поскольку второе вытекает из первого. [4] Кроме того, если поле k имеет по крайней мере три элемента, первое условие можно упростить до: f является коллинеацией , то есть отображает строки в строки. [5]
По определению аффинного пространства V действует на X , так что каждой паре ( x , v ) в X × V соответствует точка y в X. Мы можем обозначить это действие как v → ( x ) = y . Здесь мы используем соглашение, согласно которому v → = v — это два взаимозаменяемых обозначения для элемента V . Фиксируя точку c в X , можно определить функцию m c : X → V как m c ( x ) = cx → . Для любого c эта функция взаимно однозначна и, следовательно, имеет обратную функцию m c −1 : V → X , заданную выражением m c −1 ( v ) = v → ( c ) . Эти функции можно использовать для превращения X в векторное пространство (относительно точки c ), определив: [6]
Это векторное пространство имеет начало координат c , и формально его следует отличать от аффинного пространства X , но общепринятой практикой является обозначение его тем же символом и упоминание о том, что это векторное пространство после указания начала координат. Эта идентификация позволяет рассматривать точки как векторы и наоборот.
Для любого линейного преобразования λ из V мы можем определить функцию L ( c , λ ) : X → X по формуле
Тогда L ( c , λ ) — аффинное преобразование X , оставляющее точку c неподвижной. [7] Это линейное преобразование X , рассматриваемое как векторное пространство с началом координат c .
Пусть σ — любое аффинное преобразование X . Выберите точку c в X и рассмотрите перевод X вектором , обозначенным T w . Трансляции — это аффинные преобразования, а композиция аффинных преобразований — это аффинное преобразование. Для такого выбора c существует единственное линейное преобразование λ группы V такое, что [8]
То есть произвольное аффинное преобразование X представляет собой композицию линейного преобразования X (рассматриваемого как векторное пространство) и перевода X .
Такое представление аффинных преобразований часто принимают за определение аффинного преобразования (с неявным выбором начала координат). [9] [10] [11]
Как показано выше, аффинное отображение представляет собой композицию двух функций: перевода и линейного отображения. Обычная векторная алгебра использует умножение матриц для представления линейных карт и сложение векторов для представления преобразований. Формально в конечномерном случае, если линейное отображение представляется как умножение на обратимую матрицу, а сдвиг как сложение вектора , аффинное отображение, действующее на вектор, можно представить как
Используя расширенную матрицу и расширенный вектор, можно представить как перевод, так и линейную карту, используя одно матричное умножение . Этот метод требует, чтобы все векторы были дополнены «1» в конце, а все матрицы были дополнены дополнительной строкой нулей внизу, дополнительным столбцом — вектором перевода — справа и «1» в нижний правый угол. Если это матрица,
эквивалентно следующему
Вышеупомянутая дополненная матрица называется матрицей аффинного преобразования . В общем случае, когда последний вектор-строка не ограничен значением , матрица становится матрицей проективного преобразования (поскольку ее также можно использовать для выполнения проективных преобразований ).
Это представление показывает набор всех обратимых аффинных преобразований как полупрямой продукт и . Это группа по операции композиции функций, называемая аффинной группой .
Обычное умножение матрицы на вектор всегда отображает начало координат в начало координат и, следовательно, никогда не может представлять собой перевод, при котором начало координат обязательно должно быть отображено в какую-то другую точку. Добавляя дополнительную координату «1» к каждому вектору, по сути, можно рассматривать отображаемое пространство как подмножество пространства с дополнительным измерением. В этом пространстве исходное пространство занимает подмножество, в котором дополнительная координата равна 1. Таким образом, начало исходного пространства можно найти в точке . Тогда возможен перевод в исходное пространство посредством линейного преобразования пространства более высоких измерений (в частности, сдвигового преобразования). Координаты в многомерном пространстве являются примером однородных координат . Если исходное пространство евклидово , пространство более высокой размерности является реальным проективным пространством .
Преимущество использования однородных координат состоит в том, что можно объединить любое количество аффинных преобразований в одно путем умножения соответствующих матриц. Это свойство широко используется в компьютерной графике , компьютерном зрении и робототехнике .
Предположим, у вас есть три точки, которые определяют невырожденный треугольник на плоскости, или четыре точки, которые определяют невырожденный тетраэдр в трехмерном пространстве, или вообще n + 1 точек x 1 , ..., x n +1 , которые определяют невырожденный симплекс в n -мерном пространстве. Предположим, у вас есть соответствующие точки назначения y 1 , ..., y n +1 , причем эти новые точки могут находиться в пространстве с любым количеством измерений. (Более того, новые точки не обязательно должны отличаться друг от друга и не обязательно должны образовывать невырожденный симплекс.) Уникальная расширенная матрица M , которая обеспечивает аффинное преобразование
Аффинное преобразование сохраняет:
Поскольку аффинное преобразование обратимо , квадратная матрица, появляющаяся в его матричном представлении, обратима . Таким образом, матричное представление обратного преобразования имеет вид
Обратимые аффинные преобразования (аффинного пространства на себя) образуют аффинную группу , которая имеет общую линейную группу степени в качестве подгруппы и сама является подгруппой общей линейной группы степени .
Преобразования подобия образуют подгруппу где – скаляр, умноженный на ортогональную матрицу . Например, если аффинное преобразование действует на плоскости и если определитель равен 1 или -1, то преобразование является равноплощадным отображением . Такие преобразования образуют подгруппу, называемую эквиаффинной группой . [13] Преобразование, которое одновременно является эквиаффинным и подобием, представляет собой изометрию плоскости , взятой с евклидовым расстоянием .
Каждая из этих групп имеет подгруппу сохраняющих ориентацию или положительных аффинных преобразований: тех, у которых определитель положителен. В последнем случае это в 3D группа жестких преобразований ( собственные вращения и чистые перемещения).
Если есть фиксированная точка, мы можем взять ее за начало координат, и аффинное преобразование сводится к линейному преобразованию. Это может облегчить классификацию и понимание трансформации. Например, описание преобразования как поворота на определенный угол относительно определенной оси может дать более четкое представление об общем поведении преобразования, чем описание его как комбинации перемещения и вращения. Однако это зависит от приложения и контекста.
Аффинное отображение между двумя аффинными пространствами — это отображение точек, которое действует линейно на векторы (то есть векторы между точками пространства). В символах определяет линейное преобразование, такое, что для любой пары точек :
или
Мы можем интерпретировать это определение несколькими другими способами, а именно:
Если начало координат выбрано и обозначает его изображение , то это означает, что для любого вектора :
Если также выбрано начало координат , его можно разложить как аффинное преобразование , которое отправляет , а именно
с последующим переводом вектором .
Вывод таков, что интуитивно он состоит из перевода и линейной карты.
Учитывая два аффинных пространства и над одним и тем же полем, функция является аффинным отображением тогда и только тогда, когда для каждого семейства взвешенных точек в таком, что
у нас есть [14]
Другими словами, сохраняет барицентры .
Слово «аффинный» как математический термин определяется в связи с касательными к кривым в книге Эйлера «Введение в анализ бесконечности» 1748 года . [15] Феликс Кляйн приписывает термин «аффинное преобразование» Мёбиусу и Гауссу . [10]
В своем применении к цифровой обработке изображений аффинные преобразования аналогичны печати на листе резины и растяжению краев листа параллельно плоскости. Это преобразование перемещает пиксели, требуя интерполяции интенсивности для аппроксимации значения перемещенных пикселей. Бикубическая интерполяция является стандартом для преобразований изображений в приложениях обработки изображений. Аффинные преобразования масштабируют, вращают, перемещают, отражают и сдвигают изображения, как показано в следующих примерах: [16]
Аффинные преобразования применимы к процессу регистрации, когда два или более изображений выравниваются (регистрируются). Примером регистрации изображений является создание панорамных изображений, которые являются продуктом нескольких изображений, сшитых вместе.
Аффинное преобразование сохраняет параллельные линии. Однако преобразования растяжения и сдвига искажают формы, как показано в следующем примере:
Это пример искажения изображения. Однако аффинные преобразования не способствуют проецированию на искривленную поверхность или радиальным искажениям .
Аффинные преобразования в двух реальных измерениях включают:
Чтобы наглядно представить общее аффинное преобразование евклидовой плоскости , возьмем помеченные параллелограммы ABCD и A’B’C’D’ . Каким бы ни был выбор точек, существует аффинное преобразование T плоскости, переводящее A в A' и каждую вершину аналогично. Предположим, что мы исключили вырожденный случай, когда ABCD имеет нулевую площадь , такое аффинное преобразование T существует единственное . При рисовании целой сетки параллелограммов на основе ABCD изображение T ( P ) любой точки P определяется, если отметить, что T ( A ) = A' , T , примененный к отрезку AB , равен A'B' , T , примененный к отрезку AB. отрезок AC равен A’C’ , а T учитывает скалярные кратные векторов, основанные на A. [Если A , E , F коллинеарны, то отношение длина( AF ) /длина( AE ) равно длине( A'F ' )/длине( A'E ' ) .] Геометрически T преобразует сетку на основе ABCD в это основано на A’B’C’D’ .
Аффинные преобразования не учитывают длины и углы; они умножают площадь на постоянный коэффициент
Данное T может быть либо прямым (соответствующая ориентация), либо косвенным (обратная ориентация), и это может определяться его влиянием на подписанные области (как это определяется, например, векторным произведением векторов).
Функции с и в и являются в точности аффинными преобразованиями действительной прямой .
В преобразование, показанное слева, выполняется с использованием карты, заданной следующим образом:
Преобразование трех угловых точек исходного треугольника (красного цвета) дает три новые точки, которые образуют новый треугольник (синего цвета). Это преобразование искажает и перемещает исходный треугольник.
Фактически все треугольники связаны друг с другом аффинными преобразованиями. Это справедливо также для всех параллелограммов, но не для всех четырехугольников.