Ugrás a tartalomhoz

affine transformation

A Wikiszótárból, a nyitott szótárból


Főnév

affine transformation (tsz. affine transformations)

  1. (informatika) affin transzformáció

Affine transformation – magyarul: affin transzformáció – a lineáris algebra és geometria egyik alapvető fogalma, amely egy egyenest egyenessé, egy síkot síkká képez le, miközben megőrzi a pontok közötti arányokat és a párhuzamosságot, de nem feltétlenül a távolságokat és szögeket.

Az affin transzformációk kulcsfontosságúak:

  • Számítógépes grafikában
  • Képmanipulációban
  • Robotikában
  • Geometriai modellezésben



🧠 1. Mi az az affin transzformáció?

Az affin transzformáció egy lineáris transzformáció (pl. elforgatás, nyújtás, tükrözés), kombinálva egy eltolással.

Matematikailag így írható le:

  • : egy n×n mátrix (lineáris rész)
  • : egy n-dimenziós vektor (eltolás)
  • : a bemeneti vektor
  • : az eredmény (transzformált vektor)



🧱 2. Példák 2D-ben

Példa 1: Eltolás

→ Minden pont eltolódik 3 egységgel jobbra és 2-vel felfelé.

Példa 2: Forgatás

→ Eredeti pont elforgatása az origó körül szögben.

Példa 3: Skálázás

→ Nyújtás x-irányban kétszeresére.



🔄 3. Homogén koordinátás forma

Az affin transzformációkat gyakran homogén koordinátákkal (3×3 mátrix 2D esetén) írjuk, hogy az eltolást is mátrixszorzással kezelhessük:



📐 4. Tulajdonságok

Tulajdonság Megmarad?
Párhuzamosság ✅ Igen
Egyenesek ✅ Igen
Arányok (arányos osztás) ✅ Igen
Távolságok ❌ Nem
Szögek ❌ Nem
Kör → ellipszis ✅ Igen (általában torzul)



🧰 5. Alkalmazások

👨‍💻 Számítógépes grafika:

  • Objektumok forgatása, nyújtása, tükrözése
  • Képek elmozdítása, torzítása (pl. OpenCV warpAffine())

🧮 Gépi tanulás / képfeldolgozás:

  • Data augmentation: kép elforgatása, átméretezése

🛰️ Geodézia és térképészet:

  • Térképek átalakítása különböző vetületek között

🤖 Robotika:

  • Koordinátarendszerek közötti transzformáció (pl. robotkar és szenzor között)



⚙️ 6. Implementáció (pl. Python/OpenCV)

import cv2
import numpy as np

image = cv2.imread("input.jpg")
rows, cols = image.shape[:2]

# 3 pont alapján számolt affin mátrix
src = np.float32([[0,0], [1,0], [0,1]])
dst = np.float32([[0,0], [1,0.2], [0.2,1]])
M = cv2.getAffineTransform(src, dst)

# transzformált kép
output = cv2.warpAffine(image, M, (cols, rows))

📏 7. Összefoglalás

Az affin transzformáció egy olyan geometriai művelet, amely:

  • megtartja a párhuzamosságot és az egyenességet,
  • torzíthat (például skáláz vagy nyújt),
  • sokféle alkalmazásban jelen van a grafikától a térinformatikán át a gépi látásig.

A matematikai rugalmassága és stabilitása miatt ez az egyik legalapvetőbb transzformáció minden számítási geometriában.