Transformasi afin adalah proses yang memetakan titik-titik di ruang ke titik baru dengan menerapkan transformasi linear dan pergeseran, yang disebut translasi. Anda dapat memutar, menskalakan, menggeser (shear), merefleksikan, lalu menggeser semuanya, dan garis lurus akan tetap lurus.
Transformasi afin hadir di mana-mana karena mampu menangkap beragam perubahan geometris yang mempertahankan geometri suatu objek sekaligus tetap murah untuk dihitung.

Beragam aplikasi transformasi afin. Sumber gambar: Napkin AI
Gagasannya bermula ketika para matematikawan seperti Leonhard Euler dan August Ferdinand Möbius mencoba mencari tahu properti apa yang tetap invarian bahkan ketika hal-hal lain berubah.
Kini, ini menjadi bagian penting dari dunia digital, mendukung segala hal mulai dari CSS di laman web hingga pencitraan medis yang rumit.
Transformasi afin berada tepat di antara “aljabar linear murni” dan “geometri dunia nyata.” Transformasi ini menjaga matematika tetap rapi sekaligus memungkinkan translasi, yang tidak dapat dilakukan oleh pemetaan linear semata.
Sebuah ruang vektor memiliki titik istimewa yang disebut titik asal (origin) (meski tidak digambar, ia ada secara konseptual). Dalam ruang vektor, vektor dapat dijumlahkan dan diskalakan, dan ada “vektor nol” yang dibedakan.
Sebuah ruang afin tampak seperti ruang vektor tanpa asal yang dipilih. Anda tetap bisa membahas:
- titik (lokasi)
- vektor perpindahan antar titik (mis., “bergerak dari P ke Q”)
- menambahkan vektor ke titik (memindahkan titik sesuai perpindahan tersebut)
Namun Anda tidak dapat menjumlahkan dua titik secara bermakna, karena penjumlahan titik bergantung pada pilihan asal.
Secara formal, sebuah ruang afin A di atas ruang vektor V adalah himpunan titik dengan aksi V yang bebas dan transitif. Secara praktis: selisih antar titik berada di V, tetapi titik-titiknya sendiri tidak.
Sebuah transformasi afin adalah pemetaan antar ruang afin yang mempertahankan kombinasi afin (dibahas nanti) dan, secara geometris, mempertahankan garis lurus dan kesejajaran.
Dalam koordinat, transformasi afin berbentuk:

Transformasi afin dalam bentuk matriks.
Dengan:
- x ∈ Rn adalah titik masukan Anda (sebagai vektor kolom)
- A ∈ Rn×n adalah matriks yang merepresentasikan bagian linear (rotasi, skala, shear, refleksi, kombinasi)
- b ∈ Rn adalah vektor yang merepresentasikan translasi
Struktur “linear + konstanta” inilah yang membuat peta afin populer di rekayasa dan komputasi: ekspresif, namun tetap cepat dan stabil untuk diterapkan.
Transformasi afin mempertahankan sejumlah hubungan geometris yang “struktural,” sambil membiarkan bentuk meregang atau miring.

Properti yang Dipertahankan dalam Transformasi Afin. Sumber Gambar: Napkin AI
Dipertahankan:
- Kolinearitas: jika titik-titik berada pada garis yang sama sebelumnya, mereka tetap berada pada suatu garis sesudahnya.
- Kesejajaran (paralelisme): garis-garis sejajar tetap sejajar (ini sangat penting dalam grafika dan pemetaan).
- Kekonveksan: bentuk konveks tetap konveks.
- Rasio sepanjang garis: jika sebuah titik membagi segmen dalam rasio tertentu, rasio tersebut dipertahankan.
Cara ringkas untuk mengekspresikannya adalah melalui kombinasi afin:

Peta afin mempertahankan kombinasi ini.
Tidak dipertahankan (secara umum):
- Jarak
- Sudut
- Luas/volume (kecuali jika memenuhi kondisi khusus)
Terakhir, transformasi afin tertutup terhadap komposisi: melakukan satu transformasi afin setelah lainnya tetap menghasilkan transformasi afin.
Transformasi afin membentuk grup di bawah operasi komposisi (sering disebut grup afin, ditulis Aff(n)).
Komposisinya berjalan rapi jika

dan

maka

Ini tetap afin.
Catatan tentang keterbalikan (invertibility): Ax+b dapat dibalik jika A dapat dibalik (det(A)≠0). Lalu:

Jadi Anda mendapatkan aljabar yang kuat: bangun transformasi kompleks dengan merangkai yang sederhana, dan balikkan saat diperlukan.
Untuk menghitung transformasi afin secara efisien, kita memanfaatkan matriks—terutama koordinat homogen, yang memfasilitasi translasi dengan cara yang kompatibel dengan matriks.
Dalam n dimensi, transformasinya sebagai berikut:

dengan
Syarat kebalikan adalah bahwa matriks (A) harus dapat dibalik. Sederhananya, jika (A) memampatkan semua titik ke sebuah garis (menyebabkan penurunan rank), maka tidak bisa dibalik secara unik.
Koordinat homogen dan representasi matriks teraugmen
Translasi tidak dapat direpresentasikan oleh matriks (n x n) yang bertindak pada (x) saja. Koordinat homogen mengatasi hal ini dengan memperkenalkan satu koordinat tambahan.
Representasikan titik 2D ((x, y)) sebagai ((x, y, 1)).
Maka transformasi afin 2D menjadi sebuah matriks 3×3:

Transformasi afin 2D menggunakan koordinat homogen (matriks 3×3). Sumber: Penulis
Keuntungan:
- Komposisi menjadi sederhana yakni perkalian (hanya perlu perkalian matriks).
- Pipa pemrosesan teroptimasi (pustaka grafika dan visi menyukai ini)
- Pengelolaan konsisten atas translasi, rotasi, skala, dan shear
Sebagian besar transformasi afin yang digunakan dalam praktik melibatkan beberapa langkah.
Translasi memindahkan setiap titik dengan perpindahan yang sama: T(x)=x+b
Bentuk homogen 2D direpresentasikan oleh:

Translasi sebagai matriks transformasi homogen (2D). Sumber: Penulis
Bentuk ini digunakan dalam grafika (untuk memindahkan objek), robotika (untuk mengubah kerangka koordinat), dan visi (untuk penyelarasan citra).
Skala seragam: Dalam 2D, skala seragam berarti menggunakan faktor yang sama (s) di semua arah.

Matriks penskalaan 2D seragam. Sumber: Penulis
Skala tak seragam:

Matriks penskalaan 2D tak seragam. Sumber: Penulis
Skala 3D, di sisi lain, seperti matriks diagonal 3×3. Saat Anda menskalakan sesuatu, garis lurus dan kesejajaran dipertahankan, tetapi jarak berubah (kecuali s=1).
Rotasi 2D dengan sudut (theta):

Transformasi rotasi 2D dengan sudut. Sumber: Penulis
Saat Anda memutar sesuatu dalam 3D, Anda melakukannya mengelilingi suatu sumbu (x, y, atau z) dengan matriks yang sesuai. Ketika Anda menambahkan translasi ke rotasi, hasilnya tetap afin (dan menjadi “gerak kaku” jika hanya rotasi dan translasi).
Shear “membuat bentuk menjadi miring.” Shear sumbu-x 2D adalah:

Representasi x-shear 2D. Sumber: Penulis
Shear sumbu-y:

Representasi y-shear 2D. Sumber: Penulis
Shear sering digunakan dalam tipografi, distorsi visual, dan efek yang tampak seperti perspektif (meski perspektif sejati adalah proyektif, bukan afin).
Ketika Anda merefleksikan terhadap sumbu atau bidang yang melalui titik asal, itu dianggap refleksi linear (dan karenanya afin).
Refleksi 2D terhadap sumbu-x:

Refleksi 2D terhadap sumbu-x. Sumber: Penulis
Terhadap sumbu-y:

Refleksi 2D terhadap sumbu-y. Sumber: Penulis
Refleksi mengubah orientasi dan bermanfaat untuk menganalisis simetri, mengenali pola, dan memroses geometri.
Dalam sistem nyata, jarang sekali Anda hanya menggunakan satu transformasi; Anda menautkan banyak transformasi bersama.
Misalkan:

dan

Maka:

Urutan berpengaruh. Memutar terlebih dahulu lalu mentranslasi tidak sama dengan mentranslasi dahulu lalu memutar. Ini karena translasi “terseret” oleh matriks berikutnya.
Cara praktis untuk mengingatnya adalah:
- Jika Anda menggunakan matriks homogen, komposisi adalah perkalian matriks
- Transformasi terakhir yang Anda terapkan berada di sebelah kiri dalam perkalian.
Untuk

jika (A) dapat dibalik:

Dalam visi komputer, ini sering digunakan: Anda kerap memetakan piksel keluaran kembali ke piksel masukan (pemetaan invers) untuk mengisi celah.
Transformasi afin adalah “transformasi linear yang disertai pergeseran bawaan.”
Sebuah transformasi linear - L(x)=Ax - harus memenuhi:
- L(0)=0 (asal tetap di asal)
- L(x+y)=L(x)+L(y)
- L(cx)=cL(x)
Sebuah transformasi afin T(x)=Ax+b:
- tidak harus memetakan 0 ke 0
- menjaga garis tetap lurus dan mempertahankan kesejajaran
- bertindak secara linear setelah faktor translasi dikeluarkan
Setiap peta linear adalah afin (atur b=0), tetapi tidak semua pemetaan afin adalah linear (translasi non-nol mematahkan linearitas).
Anda dapat menuliskan ulang:

sebagai “lakukan bagian linear (Ax), lalu tambahkan translasi (b).”
Anda sudah mengenal versi 1D jika pernah melihat (y=mx+c). Inilah juga alasan peta afin sering digunakan dalam jaringan saraf: sebuah lapisan padat menghitung (Wx+b), yang merupakan peta afin. Setelah itu, non-linearitas ditambahkan.
Grafika komputer dan visi komputer menggunakan transformasi afin.
Di sinilah transformasi afin berhenti terasa abstrak dan mulai benar-benar berguna.
Dalam pemrosesan citra, transformasi afin digunakan untuk:
- rotasi dan pengubahan ukuran
- translasi (memindahkan citra)
- koreksi kemiringan (shear)
- penyelarasan/registrasi (mencocokkan citra)
Dua gagasan implementasi penting:
- Pemetaan maju (forward mapping): mengambil setiap piksel masukan dan memetakannya ke depan. Ini dapat membuat celah/lubang.
- Pemetaan invers (inverse mapping): untuk setiap piksel keluaran, petakan mundur untuk menemukan asalnya; ini biasanya opsi yang lebih baik.
Interpolasi penting karena koordinat hasil pemetaan sering kali tidak tepat jatuh pada piksel utuh. Beberapa cara umum:
- Tetangga terdekat (nearest neighbor): tercepat, namun bloky
- Bilinear: lebih halus, biasanya bawaan
- Bikubik: lebih halus tetapi lebih berat komputasinya
Transformasi afin digunakan di mana-mana dalam grafika 3D:
- transformasi model (kerangka lokal objek → dunia)
- transformasi pandang (dunia → kamera)
- persiapan proyeksi (bagian afin terjadi sebelum langkah proyektif)
Poin halus namun penting: ketika skala tidak seragam, normal permukaan tidak selalu berubah dengan cara yang sama seperti titik. Untuk memastikan pencahayaan yang benar, pipa rendering umumnya menggunakan inverse-transpose dari bagian linear untuk normal.
Robotika adalah contoh nyata betapa merajalelanya sistem koordinat.
Transformasi afin memetakan:
- kerangka basis robot ↔ kerangka lengan ↔ kerangka end-effector
- kerangka kamera ↔ kerangka dunia
- lidar ↔ koordinat kendaraan
Dalam pelokasian berbasis visi (mis., odometri visual), perpindahan kecil antar frame sering kali dapat didekati secara lokal sebagai afin dalam ruang citra, yang membantu memantau dan memperkirakan gerak.
Dalam pembelajaran mesin, penskalaan fitur sering kali bersifat afin:
- Skala min-maks: (x' = alpha x + beta)
- Standarisasi: (x' = (x-μ)/σ) (juga afin)
Ini penting karena banyak model (terutama yang berbasis gradien) bekerja lebih baik ketika fitur berada pada skala yang serupa.
Transformasi afin tampak lugas pada awalnya, tetapi teorinya dalam, terutama ketika Anda mulai peduli pada invarian seperti luas atau sistem koordinat alternatif.

Konsep Lanjutan Transformasi Afin. Sumber Gambar: Napkin AI
Geometri afin dan koordinat barisentris
Koordinat barisentris menyatakan sebuah titik sebagai campuran berbobot dari simpul-simpul segitiga:

Koordinat ini invarian-afin, artinya jika Anda mengubah segitiga dan titiknya secara afin, λi tetap sama.
Itulah mengapa koordinat barisentris banyak digunakan dalam: pemetaan tekstur, interpolasi mesh, dan analisis elemen hingga.
Sebuah transformasi afin mempertahankan luas (2D) atau volume (3D) ketika:

Determinan A memberi tahu seberapa besar perubahan luas atau volume ketika elemen linear diterapkan.
Jika (|det(A)| > 1), ruang membesar; jika kurang dari satu, mengecil. Jika negatif, orientasi berubah (seperti refleksi). Ini penting untuk visual, simulasi fisika, dan pemodelan deformasi.
Hubungan:
- Afin: (Ax+b) (kasus umum)
- Kesebangunan (similarity): skala + rotasi + translasi (menjaga sudut, hingga skala)
- Isometri (kaku): rotasi + translasi (menjaga jarak dan sudut)
Jadi: isometri ⊂ kesebangunan ⊂ transformasi afin
Hirarki ini membantu Anda memilih model yang tepat untuk pernyataan masalah. Misalnya, jika Anda perlu mempertahankan jarak, maka afin terlalu luas.
Transformasi afin adalah jenis transformasi proyektif. Transformasi proyektif dapat memodelkan perspektif, seperti bagaimana garis-garis sejajar bertemu di titik hilang. Transformasi afin tidak dapat melakukannya.
Dalam koordinat homogen, transformasi proyektif mengizinkan baris terakhir yang lebih umum daripada ([0,0,1]). Kebebasan yang meningkat itulah yang menghasilkan efek perspektif.
Konsep afin juga bekerja dalam dimensi lebih tinggi, seperti transformasi homogen 4D dalam grafika 3D.
Transformasi afin adalah “matematika yang mudah,” tetapi cara penerapannya bisa menentukan hasilnya.
Masalah umum:
- Matriks hampir singular: jika (det(A)) mendekati 0, pembalikan menjadi tidak stabil
- Akumulasi galat floating point: komposisi berulang dapat menyimpang
- Ekstrem skala: ukuran yang sangat besar atau sangat kecil dapat mengurangi presisi.
Praktik terbaik:
- Sebagai indikator peringatan cepat, periksa bilangan kondisi (atau setidaknya |det(A)|).
- Untuk pembalikan, pilih pustaka yang stabil, seperti NumPy dan Eigen.
- Saat harus melakukan banyak langkah berurutan, seperti dalam grafika atau robotika, lakukan re-ortonormalisasi matriks rotasi.
Transformasi afin sangat cocok untuk paralelisme; setiap titik atau piksel berubah secara independen. Ini membuatnya ideal untuk SIMD dan kernel GPU.
Itulah mengapa pelengkungan citra dan pipa rendering bekerja baik dengan GPU: mereka dapat melakukan banyak operasi perkalian dan penjumlahan sekaligus.
Beberapa optimasi umum: menggunakan operasi fused multiply-add, melakukan batching transformasi, dan mengurangi jumlah transfer memori.
Transformasi afin “cukup kaku” untuk banyak tugas, dan juga dapat digunakan untuk membangun model yang lebih fleksibel.
Dalam morfometri dan pencitraan medis, penyelarasan afin murni hanyalah langkah pertama. Setelah penyelarasan kasar, model deformasi berbasis B-spline memungkinkan Anda membuat pelengkungan halus yang non-rigid sambil tetap menjaga kemudahan interpretasi titik kendali.
Bayangkan begini: afin merapikan gambar secara keseluruhan, dan B-spline menangani lengkungan kecilnya.
Invariansi afin dalam pengenalan pola dan visi komputer
Banyak sistem pengenalan berupaya invarian-afin sehingga objek tetap dapat dikenali meski sudut pandang berubah dengan cara yang mirip translasi afin.
Teknik meliputi:
- menggunakan fitur invarian-afin (atau menormalisasi patch)
- menentukan kerangka afin lokal untuk keypoint
- merancang deskriptor yang tahan terhadap kemiringan dan skala
Ini membuat operasi seperti pencocokan, pelacakan, dan temu kembali lebih andal.
Dalam GIS, transformasi afin muncul dalam georeferensi peta, penyelarasan layer dari berbagai sumber, atau pendekatan lokal untuk konversi koordinat.
Transformasi geodetik nyata bisa lebih rumit, namun model afin sering digunakan sebagai pendekatan lokal atau sebagai bagian dari pipa yang lebih luas.
Anda tidak perlu memulai semuanya dari nol; sebagian besar ekosistem memiliki dukungan yang baik.
- Python: NumPy untuk matematika matriks; OpenCV untuk pelengkungan citra; SciPy untuk alat numerik.
- C++: Eigen (aljabar linear), OpenCV (visi), GLM (matematika grafika)
- Java: Apache Commons Math, dan toolkit visi sesuai stack
Gagasan inti lintas bahasa:
- Representasikan titik sebagai vektor
- Terapkan (Ax+b) (atau perkalian matriks homogen)
- Gunakan perkalian matriks untuk mengomposisi transformasi.
- Balikkan saat perlu menggunakan (A-1)

Alat dan Pustaka Terbaik untuk Transformasi Afin. Sumber Gambar: Napkin AI
Perangkat yang banyak digunakan:
- OpenCV: warpAffine, getAffineTransform, estimateAffine2D (alur kerja visi)
- NumPy: operasi matriks secara umum
- Eigen: aljabar linear C++ berkinerja tinggi
- GLM / DirectXMath: pustaka matematika berfokus grafika
- GDAL / PROJ (GIS): transformasi koordinat dan pipa geospasial
Pilih sesuai domain Anda: OpenCV untuk citra, GLM untuk grafika, GDAL/PROJ untuk GIS.
Mendengar ide yang sama dijelaskan dengan cara berbeda terkadang membuatnya lebih jelas.
Definisi alternatif: Peta afin dan fungsi afin
Peta afin dapat didefinisikan sebagai fungsi yang mempertahankan kekhususan kombinasi afin:
Formulasi ini tidak terikat pada satu asal tertentu, yang sangat selaras dengan semangat “geometri afin.” Ia juga segera memperjelas bahwa garis dipetakan menjadi garis.
Jika transformasi afin terasa abstrak, kaitkan dengan yang sudah Anda kenal: (y=mx) bersifat linear (melalui asal), dan (y=mx+b) bersifat afin (memiliki efek kemiringan yang sama dan pergeseran).
Dalam dimensi lebih tinggi, (m) menjadi matriks (A), namun ceritanya tetap sama: bertindak secara linear dan berpindah.
Kesimpulan
Transformasi afin, jika disederhanakan, pada dasarnya adalah ini: “Saya akan menjaga dunia Anda yang terdiri dari garis lurus dan tepi sejajar, tetapi saya tidak bisa menjanjikan sudut-sudutnya tetap sama.”
Jika Anda berpikir dalam kerangka matriks dan sistem linear, lihat Linear Algebra for Data Science in R dan tutorial yang berfokus pada matriks, termasuk Row Echelon Form Explained.
Jika Anda ingin masuk ke visi komputer, proyek seperti Food Image Classification with Hugging Face dan kursus seperti Working with Hugging Face adalah langkah berikut yang baik.
Transformasi afin adalah proses yang memetakan titik-titik di ruang ke titik baru dengan menerapkan transformasi linear dan pergeseran, yang disebut translasi. Anda dapat memutar, menskalakan, menggeser (shear), merefleksikan, lalu menggeser semuanya, dan garis lurus akan tetap lurus.
Transformasi afin hadir di mana-mana karena mampu menangkap beragam perubahan geometris yang mempertahankan geometri suatu objek sekaligus tetap murah untuk dihitung.
Beragam aplikasi transformasi afin. Sumber gambar: Napkin AI
Gagasannya bermula ketika para matematikawan seperti Leonhard Euler dan August Ferdinand Möbius mencoba mencari tahu properti apa yang tetap invarian bahkan ketika hal-hal lain berubah.
Kini, ini menjadi bagian penting dari dunia digital, mendukung segala hal mulai dari CSS di laman web hingga pencitraan medis yang rumit.
Apa Itu Transformasi Afin?
Transformasi afin berada tepat di antara “aljabar linear murni” dan “geometri dunia nyata.” Transformasi ini menjaga matematika tetap rapi sekaligus memungkinkan translasi, yang tidak dapat dilakukan oleh pemetaan linear semata.
Memahami ruang afin dan transformasinya
Sebuah ruang vektor memiliki titik istimewa yang disebut titik asal (origin) (meski tidak digambar, ia ada secara konseptual). Dalam ruang vektor, vektor dapat dijumlahkan dan diskalakan, dan ada “vektor nol” yang dibedakan.
Sebuah ruang afin tampak seperti ruang vektor tanpa asal yang dipilih. Anda tetap bisa membahas:
Namun Anda tidak dapat menjumlahkan dua titik secara bermakna, karena penjumlahan titik bergantung pada pilihan asal.
Secara formal, sebuah ruang afin
Adi atas ruang vektorVadalah himpunan titik dengan aksiVyang bebas dan transitif. Secara praktis: selisih antar titik berada diV, tetapi titik-titiknya sendiri tidak.Sebuah transformasi afin adalah pemetaan antar ruang afin yang mempertahankan kombinasi afin (dibahas nanti) dan, secara geometris, mempertahankan garis lurus dan kesejajaran.
Rumus transformasi afin: Definisi menggunakan ruang vektor
Dalam koordinat, transformasi afin berbentuk:
Transformasi afin dalam bentuk matriks.
Dengan:
Struktur “linear + konstanta” inilah yang membuat peta afin populer di rekayasa dan komputasi: ekspresif, namun tetap cepat dan stabil untuk diterapkan.
Properti Utama Transformasi Afin
Transformasi afin mempertahankan sejumlah hubungan geometris yang “struktural,” sambil membiarkan bentuk meregang atau miring.
Properti apa yang dipertahankan dalam transformasi afin?
Properti yang Dipertahankan dalam Transformasi Afin. Sumber Gambar: Napkin AI
Dipertahankan:
Cara ringkas untuk mengekspresikannya adalah melalui kombinasi afin:
Peta afin mempertahankan kombinasi ini.
Tidak dipertahankan (secara umum):
Terakhir, transformasi afin tertutup terhadap komposisi: melakukan satu transformasi afin setelah lainnya tetap menghasilkan transformasi afin.
Struktur grup transformasi afin
Transformasi afin membentuk grup di bawah operasi komposisi (sering disebut grup afin, ditulis Aff(n)).
Komposisinya berjalan rapi jika
dan
maka
Ini tetap afin.
Catatan tentang keterbalikan (invertibility): Ax+b dapat dibalik jika A dapat dibalik (det(A)≠0). Lalu:
Jadi Anda mendapatkan aljabar yang kuat: bangun transformasi kompleks dengan merangkai yang sederhana, dan balikkan saat diperlukan.
Matriks Transformasi Afin
Untuk menghitung transformasi afin secara efisien, kita memanfaatkan matriks—terutama koordinat homogen, yang memfasilitasi translasi dengan cara yang kompatibel dengan matriks.
Bentuk umum matriks transformasi afin
Dalam n dimensi, transformasinya sebagai berikut:
dengan
Amengatur perubahan bentuk (komponen linear).bmengatur perpindahan (translasi)Syarat kebalikan adalah bahwa matriks (A) harus dapat dibalik. Sederhananya, jika (A) memampatkan semua titik ke sebuah garis (menyebabkan penurunan rank), maka tidak bisa dibalik secara unik.
Koordinat homogen dan representasi matriks teraugmen
Translasi tidak dapat direpresentasikan oleh matriks (n x n) yang bertindak pada (x) saja. Koordinat homogen mengatasi hal ini dengan memperkenalkan satu koordinat tambahan.
Representasikan titik 2D ((x, y)) sebagai ((x, y, 1)).
Maka transformasi afin 2D menjadi sebuah matriks 3×3:
Transformasi afin 2D menggunakan koordinat homogen (matriks 3×3). Sumber: Penulis
Keuntungan:
Jenis-Jenis Transformasi Afin
Sebagian besar transformasi afin yang digunakan dalam praktik melibatkan beberapa langkah.
Translasi dalam transformasi afin
Translasi memindahkan setiap titik dengan perpindahan yang sama: T(x)=x+b
Bentuk homogen 2D direpresentasikan oleh:
Translasi sebagai matriks transformasi homogen (2D). Sumber: Penulis
Bentuk ini digunakan dalam grafika (untuk memindahkan objek), robotika (untuk mengubah kerangka koordinat), dan visi (untuk penyelarasan citra).
Transformasi penskalaan: Seragam dan tak seragam
Skala seragam: Dalam 2D, skala seragam berarti menggunakan faktor yang sama (s) di semua arah.
Matriks penskalaan 2D seragam. Sumber: Penulis
Skala tak seragam:
Matriks penskalaan 2D tak seragam. Sumber: Penulis
Skala 3D, di sisi lain, seperti matriks diagonal 3×3. Saat Anda menskalakan sesuatu, garis lurus dan kesejajaran dipertahankan, tetapi jarak berubah (kecuali s=1).
Transformasi rotasi dalam 2D dan 3D
Rotasi 2D dengan sudut (theta):
Transformasi rotasi 2D dengan sudut. Sumber: Penulis
Saat Anda memutar sesuatu dalam 3D, Anda melakukannya mengelilingi suatu sumbu (x, y, atau z) dengan matriks yang sesuai. Ketika Anda menambahkan translasi ke rotasi, hasilnya tetap afin (dan menjadi “gerak kaku” jika hanya rotasi dan translasi).
Penjelasan transformasi shear (geser)
Shear “membuat bentuk menjadi miring.” Shear sumbu-x 2D adalah:
Representasi x-shear 2D. Sumber: Penulis
Shear sumbu-y:
Representasi y-shear 2D. Sumber: Penulis
Shear sering digunakan dalam tipografi, distorsi visual, dan efek yang tampak seperti perspektif (meski perspektif sejati adalah proyektif, bukan afin).
Transformasi refleksi dalam geometri afin
Ketika Anda merefleksikan terhadap sumbu atau bidang yang melalui titik asal, itu dianggap refleksi linear (dan karenanya afin).
Refleksi 2D terhadap sumbu-x:
Refleksi 2D terhadap sumbu-x. Sumber: Penulis
Terhadap sumbu-y:
Refleksi 2D terhadap sumbu-y. Sumber: Penulis
Refleksi mengubah orientasi dan bermanfaat untuk menganalisis simetri, mengenali pola, dan memroses geometri.
Cara Mengomposisi dan Membalik Transformasi Afin
Dalam sistem nyata, jarang sekali Anda hanya menggunakan satu transformasi; Anda menautkan banyak transformasi bersama.
Mengomposisi beberapa transformasi afin
Misalkan:
dan
Maka:
Urutan berpengaruh. Memutar terlebih dahulu lalu mentranslasi tidak sama dengan mentranslasi dahulu lalu memutar. Ini karena translasi “terseret” oleh matriks berikutnya.
Cara praktis untuk mengingatnya adalah:
Transformasi afin invers: Perhitungan dan penerapan
Untuk
jika (A) dapat dibalik:
Dalam visi komputer, ini sering digunakan: Anda kerap memetakan piksel keluaran kembali ke piksel masukan (pemetaan invers) untuk mengisi celah.
Transformasi Linear vs. Afin
Transformasi afin adalah “transformasi linear yang disertai pergeseran bawaan.”
Perbedaan utama antara transformasi linear dan afin
Sebuah transformasi linear - L(x)=Ax - harus memenuhi:
Sebuah transformasi afin T(x)=Ax+b:
Setiap peta linear adalah afin (atur b=0), tetapi tidak semua pemetaan afin adalah linear (translasi non-nol mematahkan linearitas).
Transformasi afin sebagai linear ditambah translasi
Anda dapat menuliskan ulang:
sebagai “lakukan bagian linear (Ax), lalu tambahkan translasi (b).”
Anda sudah mengenal versi 1D jika pernah melihat (y=mx+c). Inilah juga alasan peta afin sering digunakan dalam jaringan saraf: sebuah lapisan padat menghitung (Wx+b), yang merupakan peta afin. Setelah itu, non-linearitas ditambahkan.
Grafika komputer dan visi komputer menggunakan transformasi afin.
Transformasi Afin dalam Grafika Komputer dan Visi Komputer
Di sinilah transformasi afin berhenti terasa abstrak dan mulai benar-benar berguna.
Transformasi dan pelengkungan citra menggunakan transformasi afin
Dalam pemrosesan citra, transformasi afin digunakan untuk:
Dua gagasan implementasi penting:
Interpolasi penting karena koordinat hasil pemetaan sering kali tidak tepat jatuh pada piksel utuh. Beberapa cara umum:
Transformasi afin dalam grafika 3D dan rendering
Transformasi afin digunakan di mana-mana dalam grafika 3D:
Poin halus namun penting: ketika skala tidak seragam, normal permukaan tidak selalu berubah dengan cara yang sama seperti titik. Untuk memastikan pencahayaan yang benar, pipa rendering umumnya menggunakan inverse-transpose dari bagian linear untuk normal.
Transformasi afin dalam robotika
Robotika adalah contoh nyata betapa merajalelanya sistem koordinat.
Transformasi afin memetakan:
Dalam pelokasian berbasis visi (mis., odometri visual), perpindahan kecil antar frame sering kali dapat didekati secara lokal sebagai afin dalam ruang citra, yang membantu memantau dan memperkirakan gerak.
Pemetaan ruang koordinat dan normalisasi data
Dalam pembelajaran mesin, penskalaan fitur sering kali bersifat afin:
Ini penting karena banyak model (terutama yang berbasis gradien) bekerja lebih baik ketika fitur berada pada skala yang serupa.
Konsep dan Teori Lanjutan Transformasi Afin
Transformasi afin tampak lugas pada awalnya, tetapi teorinya dalam, terutama ketika Anda mulai peduli pada invarian seperti luas atau sistem koordinat alternatif.
Konsep Lanjutan Transformasi Afin. Sumber Gambar: Napkin AI
Geometri afin dan koordinat barisentris
Koordinat barisentris menyatakan sebuah titik sebagai campuran berbobot dari simpul-simpul segitiga:
Koordinat ini invarian-afin, artinya jika Anda mengubah segitiga dan titiknya secara afin, λi tetap sama.
Itulah mengapa koordinat barisentris banyak digunakan dalam: pemetaan tekstur, interpolasi mesh, dan analisis elemen hingga.
Transformasi afin pengawet ukuran dan ekuiareal
Sebuah transformasi afin mempertahankan luas (2D) atau volume (3D) ketika:
Determinan A memberi tahu seberapa besar perubahan luas atau volume ketika elemen linear diterapkan.
Jika (|det(A)| > 1), ruang membesar; jika kurang dari satu, mengecil. Jika negatif, orientasi berubah (seperti refleksi). Ini penting untuk visual, simulasi fisika, dan pemodelan deformasi.
Transformasi kesebangunan dan isometri dalam geometri afin
Hubungan:
Jadi: isometri ⊂ kesebangunan ⊂ transformasi afin
Hirarki ini membantu Anda memilih model yang tepat untuk pernyataan masalah. Misalnya, jika Anda perlu mempertahankan jarak, maka afin terlalu luas.
Transformasi proyektif dan perluasan afin berdimensi lebih tinggi
Transformasi afin adalah jenis transformasi proyektif. Transformasi proyektif dapat memodelkan perspektif, seperti bagaimana garis-garis sejajar bertemu di titik hilang. Transformasi afin tidak dapat melakukannya.
Dalam koordinat homogen, transformasi proyektif mengizinkan baris terakhir yang lebih umum daripada ([0,0,1]). Kebebasan yang meningkat itulah yang menghasilkan efek perspektif.
Konsep afin juga bekerja dalam dimensi lebih tinggi, seperti transformasi homogen 4D dalam grafika 3D.
Mengimplementasikan Transformasi Afin
Transformasi afin adalah “matematika yang mudah,” tetapi cara penerapannya bisa menentukan hasilnya.
Stabilitas numerik dan presisi dalam transformasi afin
Masalah umum:
Praktik terbaik:
Implementasi GPU dan pemrosesan paralel transformasi afin
Transformasi afin sangat cocok untuk paralelisme; setiap titik atau piksel berubah secara independen. Ini membuatnya ideal untuk SIMD dan kernel GPU.
Itulah mengapa pelengkungan citra dan pipa rendering bekerja baik dengan GPU: mereka dapat melakukan banyak operasi perkalian dan penjumlahan sekaligus.
Beberapa optimasi umum: menggunakan operasi fused multiply-add, melakukan batching transformasi, dan mengurangi jumlah transfer memori.
Aplikasi Khusus dan Perluasan Transformasi Afin
Transformasi afin “cukup kaku” untuk banyak tugas, dan juga dapat digunakan untuk membangun model yang lebih fleksibel.
Transformasi Afin B-Spline untuk Registrasi Non-Rigid
Dalam morfometri dan pencitraan medis, penyelarasan afin murni hanyalah langkah pertama. Setelah penyelarasan kasar, model deformasi berbasis B-spline memungkinkan Anda membuat pelengkungan halus yang non-rigid sambil tetap menjaga kemudahan interpretasi titik kendali.
Bayangkan begini: afin merapikan gambar secara keseluruhan, dan B-spline menangani lengkungan kecilnya.
Invariansi afin dalam pengenalan pola dan visi komputer
Banyak sistem pengenalan berupaya invarian-afin sehingga objek tetap dapat dikenali meski sudut pandang berubah dengan cara yang mirip translasi afin.
Teknik meliputi:
Ini membuat operasi seperti pencocokan, pelacakan, dan temu kembali lebih andal.
Transformasi afin dalam GIS dan sistem koordinat geodetik
Dalam GIS, transformasi afin muncul dalam georeferensi peta, penyelarasan layer dari berbagai sumber, atau pendekatan lokal untuk konversi koordinat.
Transformasi geodetik nyata bisa lebih rumit, namun model afin sering digunakan sebagai pendekatan lokal atau sebagai bagian dari pipa yang lebih luas.
Pustaka Perangkat Lunak untuk Transformasi Afin
Anda tidak perlu memulai semuanya dari nol; sebagian besar ekosistem memiliki dukungan yang baik.
Mengimplementasikan transformasi afin di Python, C++, dan Java
Gagasan inti lintas bahasa:
Perangkat dan pustaka terbaik untuk transformasi afin
Alat dan Pustaka Terbaik untuk Transformasi Afin. Sumber Gambar: Napkin AI
Perangkat yang banyak digunakan:
Pilih sesuai domain Anda: OpenCV untuk citra, GLM untuk grafika, GDAL/PROJ untuk GIS.
Sudut Pandang Alternatif tentang Transformasi Afin
Mendengar ide yang sama dijelaskan dengan cara berbeda terkadang membuatnya lebih jelas.
Definisi alternatif: Peta afin dan fungsi afin
Peta afin dapat didefinisikan sebagai fungsi yang mempertahankan kekhususan kombinasi afin:
Formulasi ini tidak terikat pada satu asal tertentu, yang sangat selaras dengan semangat “geometri afin.” Ia juga segera memperjelas bahwa garis dipetakan menjadi garis.
Transformasi afin dan rumus (y = mx + b)
Jika transformasi afin terasa abstrak, kaitkan dengan yang sudah Anda kenal: (y=mx) bersifat linear (melalui asal), dan (y=mx+b) bersifat afin (memiliki efek kemiringan yang sama dan pergeseran).
Dalam dimensi lebih tinggi, (m) menjadi matriks (A), namun ceritanya tetap sama: bertindak secara linear dan berpindah.
Kesimpulan
Transformasi afin, jika disederhanakan, pada dasarnya adalah ini: “Saya akan menjaga dunia Anda yang terdiri dari garis lurus dan tepi sejajar, tetapi saya tidak bisa menjanjikan sudut-sudutnya tetap sama.”
Jika Anda berpikir dalam kerangka matriks dan sistem linear, lihat Linear Algebra for Data Science in R dan tutorial yang berfokus pada matriks, termasuk Row Echelon Form Explained.
Jika Anda ingin masuk ke visi komputer, proyek seperti Food Image Classification with Hugging Face dan kursus seperti Working with Hugging Face adalah langkah berikut yang baik.