INTEGRAL, Vol. 9 No. 1, Maret 2004
IMPLEMENTASI TEKNIK FEATURE MORPHING PADA CITRA DUA DIMENSI Luciana Abednego dan Nico Saputro Jurusan Intisari Pemanfaatan teknologi animasi semakin meluas seiring dengan semakin mudah dan murahnya penggunaan teknologi tersebut. Pada tulisan ini, akan dibahas salah satu teknik pembuatan animasi yaitu teknik feature morphing. Pada feature morphing ada dua tahap pemrosesan, yaitu proses mengubah bentuk gambar asal menjadi gambar tujuan (warping), dilanjutkan dengan proses mengubah warna gambar (cross dissolve). Penggunaan garis-garis feature membuat animasi yang dihasilkan dengan terlihat lebih alami. Abstract This paper will discuss one of the animation making technique, i.e. feature morphing technique.Feature morphing consist of two processing level, i.e. process changing the shape of source image to the shape of target image (warping) and process changing the color of source image to the color of target image (cross disolve). The use of feature lines has made the animation look more natural. Tulisan ini akan membahas tentang salah
1. Pendahuluan Efek morphing adalah efek perubahan secara perlahan-lahan suatu objek menjadi
satu teknik morphing, yaitu teknik feature morphing.
objek lain. Dua tahap proses yang umumnya terjadi di balik morphing adalah warping dan cross dissolve. Warping merupakan langkah pertama dari proses morphing. Prinsip
kerja
warping
adalah
membentangkan (stretch) dan menyusutkan
2. Tweening Sebelum membahas lebih lanjut tentang teknik feature morphing, akan dibahas terlebih dahulu salah satu konsep dalam dunia animasi, yaitu tweening.
(squeeze) sebuah gambar, yang disebut gambar asal, sehingga hasilnya sama dengan gambar
tujuan.
Cross
dissolve
adalah
langkah berikutnya setelah proses warping. Prinsip kerjanya adalah memadukan warna gambar asal dengan warna gambar tujuan. Saat ini, banyak teknik morphing yang telah
dikembangkan
untuk
pembuatan
animasi. Umumnya, perbedaan antar teknik morphing
terletak pada proses warping.
2.1 Pengertian Tweening Nama lain untuk tweening adalah interpolasi. Melakukan interpolasi berarti menyisipkan di antara (between) dua bagian yang berbeda atau memperkirakan nilai dari suatu fungsi antara dua nilai yang telah diketahui
[1].
Pada
komputer
grafik,
interpolasi digunakan untuk menggabungkan
INTEGRAL, Vol. 9 No. 1, Maret 2004 beberapa efek yang ingin dilakukan pada Frame 1
suatu obyek.
Frame 2
Ada beragam teknik interpolasi, salah satu di antaranya adalah interpolasi linear. Interpolasi linier paling sederhana, dengan rumus :
I (t ) 1.0 t X start t X end (2.1) dengan t bernilai antara nol dan satu [2].
Gambar 2.2 adalah contoh lain proses tweening. Keadaan awal adalah sebuah garis horizontal yang akan di-tweening menjadi
B
sebuah garis vertikal. Tweening dilakukan
t = 0.8
dengan menarik sebuah garis lurus dari
t = 0.5
kedua ujung garis frame 1 dan frame 2
t = 0.2 A
seperti ditunjukkan pada gambar 2.3 sampai
Gambar 2.1 Interpolasi linear antara dua buah titik A dan B Gambar interpolasi.
Gambar 2.2 Garis horizontal yang akan ditweening menjadi garis vertikal
2.1
adalah
Parameter
t
contoh
gambar 2.5.
Midpoint
dari
menunjukkan
Line 2
Line 1
seberapa jauh lokasi suatu titik pada garis Midpoint
AB. Titik A sebagai titik awal (start), t=0 dan titik B sebagai titik akhir (end), t=1. Untuk merekonstruksi data pada t=0.2, dari
Gambar 2.3 Menghubungkan kedua ujung garis
persamaan 2.1 diperoleh: I(0.2)
= (1.0-0.2) x A + 0.2 x B = 0.8 x A + 0.2 x B
Artinya, hasil interpolasi adalah 80% A ditambah dengan 20% B, sehingga data yang direkayasa lebih cenderung ke A daripada ke
In-between line Line 1
Line 2
B. Jika t=0.5, akan diperoleh 50% A dan 50% B. Semakin dekat ke B, semakin sedikit kontribusi
A
dan
semakin
bertambah
kontribusi B. Pada t = 1.0, kontribusi A = 0% dan kontribusi B = 100% sehingga data yang dihasilkan sama dengan B. Dengan kata lain, interpolasi adalah rata-rata dimana setiap data mempunyai bobot yang tidak harus selalu sama. (weighted mean).
Gambar 2.4 Menghubungkan kedua midpoint dengan menggambar garis baru (in-between line)
INTEGRAL, Vol. 9 No. 1, Maret 2004 penjumlahan dengan nilai increment D (Delta array) Tween 1
Tween 2
Tween 3
Line 1
DX DY
X B X A N
YB YA
(2.3)
N
Setelah menambahkan nilai D ini sebanyak N kali, titik A(XA,YA) bergeser menjadi Gambar 2.5 Dua garis tweening baru yang digambarkan pada masing-masing sisi dari garis tweening pertama.
B(XB,YB) [1].
3. Teknik Feature Morphing Dari gambar 2.5, terlihat bahwa ada tiga buah garis tween antara frame 1 dan frame 2. Banyaknya
garis
mempengaruhi
tween
dibuat
feature morphing menerima masukan berupa
perubahan
dua buah gambar. Gambar pertama disebut
yang
kehalusan
Animasi yang dibuat dengan teknik
sebagai gambar asal, gambar kedua disebut
gerakan.
sebagai gambar tujuan. Proses warping pada 2.2 Algoritma Tweening ( Interpolasi 2D )
teknik feature morphing menggunakan garis
Diberikan 2 buah titik : A(XA,YA) dan
feature sebagai alat bantu pemrosesan.
B(XB,YB). Titik tengah (midpoint) M adalah: M={
Kegunaan
garis
feature
adalah
untuk
menunjukkan sebuah feature (bagian-bagian
X A X B YA YB , } 2 2
gambar yang membentuk obyek
[2]
) yang
Secara umum, rumusan untuk memperoleh
sama antara daerah di gambar asal dengan
koordinat titik tweening ke i dengan
daerah di gambar tujuan. Adanya garis
melakukan N buah tweening dapat dilihat
feature membuat komputer mengetahui
pada persamaan 2.2.
hubungan antara dua objek yang sama pada
i.( X B X A ) i.(YB Y A ) Ti X A , YA N N
gambar asal dan gambar tujuan. Sebuah
pasangannya di gambar tujuan. Koordinat
(2.2) dengan 1≤ i ≤ N. Titik awal dengan nilai i=0
eksekusi
untuk
operasi
penjumlahan pada komputer lebih cepat dibandingkan dengan waktu eksekusi untuk operasi perkalian. Untuk itu, rumusan di atas dapat
diubah
menggunakan
titik ujung awal garis feature pada gambar asal berpasangan dengan koordinat titik
dan titik akhir dengan nilai i=N. Waktu
garis feature di gambar asal memiliki
operasi
ujung awal garis feature pada gambar tujuan, begitu pula berlaku untuk pasangan koordinat titik ujung akhir.
INTEGRAL, Vol. 9 No. 1, Maret 2004 Gambar 3.2 memperlihatkan bahwa titik P pada gambar asal akan mengalami proses warping sehingga memiliki posisi baru di titik P’ pada gambar tujuan. Langkahlangkahnya adalah sebagai berikut : 1. Garis feature pada gambar asal diubah Gambar 3.1 Garis-garis feature untuk membatasi feature- feature pada gambar
ke bentuk vektor menghasilkan vektor AB. Cara yang sama untuk garis feature pada
3.1 Proses Warping Sebuah gambar terdiri atas kumpulan titik. Dengan diketahui sebuah titik dan garis
gambar
tujuan,
menghasilkan
vektor A’B’. 2. Buat vektor tegak lurus terhadap vektor
feature, akan dicari posisi baru titik tersebut
AB
dengan
panjang
yang
jika garis feature-nya berubah. Proses
menghasilkan vektor AB1 :
sama,
berlaku untuk seluruh titik dalam gambar. P
Dengan memakai vektor untuk proses ini,
α
d
B
setiap titik dipengaruhi oleh garis feature B1
dengan aturan sebagai berikut :
f
β α
1. Cari d, yaitu jarak antara sebuah titik dengan
garis
feature
dengan
P1
A
cara Source Image
membuat sebuah garis tegak lurus di antara titik tersebut dengan garis feature tadi. (lihat Gambar 3.2). 2. Cari f, yaitu jarak antara titik ujung garis
Gambar 3.3 Vektor AB1 tegak lurus vektor AB 3. Hitung jarak d yaitu panjang vektor yang didapat dengan memproyeksikan
feature sampai ke garis yang tegak lurus
vektor
terhadap garis feature.
(perhatikan : panjang AB1 = panjang
3. Pindahkan titik P ke tempat dengan
AP
terhadap
vektor
AB1
AB)
jarak d dan f tetap dari garis feature
d
pada gambar tujuan.
AP AB1
(3.1)
| AB | B’
B d
α
4. Hitung jarak f yaitu proyeksi vektor AP
P
d
α
P’
terhadap vektor AB :
f f
β A
f
β
AP AB | AB |
A’
Agar nilai f, berkisar antara nol dan satu, Source Image
Target Image
Gambar 3.2 Hasil warping terhadap titik P
maka
dilakukan
pembagian
panjang vektor AB :
dengan
INTEGRAL, Vol. 9 No. 1, Maret 2004 Dari gambar 3.4, titik A, B, dan C
AP AB
f
(3.2)
| AB | 2
memiliki skalar f yang bernilai antara
Persamaan 3.1 dan 3.2 mentranslasikan koordinat x dan y ke suatu bentuk koordinat baru, yaitu koordinat d dan f. Seperti halnya x dan y yang saling tegak lurus, begitu pula halnya dengan d dan f. Koordinat f dalam sistem koordinat baru tersebut dapat didefinisikan sebagai
nol dan satu, sehingga jarak titik-titik tersebut ke garis feature sama dengan panjang vektor d. Sedangkan titik D memiliki skalar f lebih besar dari satu. Jarak dari titik ini ke garis feature harus dihitung sebagai jarak antara titik D ke control point akhir dari garis feature (rd). Demikian pula jika skalar f suatu
berikut :
titik lebih kecil dari nol, jarak titik
f A' B' (3.3) Sedangkan
unit
vektor
tersebut ke garis feature harus dihitung d
dapat
didefinisikan sebagai berikut :
A' B '
sebagai jarak dari titik ke control point awal dari garis feature. 6. Langkah keenam dilakukan jika dalam
(3.4)
proses
| A' B ' |
warping,
pemakai
(user)
Jadi titik asal P ditransformasikan ke
menggunakan lebih dari satu garis
titik tujuan P’ dengan rumusan :
feature. Misalkan digunakan dua buah
P' A' f * A' B' d *
A' B'
garis feature. Dari tiap garis, dihitung (3.5)
| A' B' | 5. Langkah kelima dilakukan jika panjang proyeksi vektor AP ke vektor AB lebih kecil dari nol atau lebih besar dari satu. Hal ini dapat terjadi jika posisi vektor AP tidak tegak lurus vektor AB seperti terlihat pada gambar. A f = 0.5
B d C
rd
kali ini terdapat dua buah pixel, bukan satu, jadi diperlukan proses tambahan, seperti yang ditunjukkan pada gambar 3.5. Dari titik asal P ke titik baru P1’ dan terdapat
dua
kali
pergeseran
(displacement), D1 dan D2 : D2 P2 ' P
Semakin
jauh
(3.6 -3.7)
letak
garis
feature
terhadap suatu titik, semakin kecil
f = 1.3 d
digunakan sebuah garis feature, tetapi
D1 P1 ' P
d
f = 1.0
Prosesnya sebenarnya sama seperti
P2’ d
f=0
jaraknya ke titik yang akan diproses.
D
kontribusinya terhadap titik tersebut. Gambar 3.4 Jarak antara sebuah titik ke garis feature
Begitu pula sebaliknya. Oleh karena itu, muncul faktor bobot yang menunjukkan seberapa jauh titik asal dari masing-
INTEGRAL, Vol. 9 No. 1, Maret 2004 masing garis feature. Rumus untuk
dengan r1g1b1 dan r2g2b2 adalah warna
menghitung faktor bobot ini adalah :
primer (merah, hijau, biru) untuk pixel
Wi
1 alpha d i
pertama dan kedua dan w1 dan w2 adalah
(3.8)
bobot untuk masing-masing pixel [1].
dengan alpha bernilai satu. Akibat adanya
bobot
ini
menyebabkan
dihasilkannya posisi akhir, P’ :
P' P
B’1
P
P d1
jika faktor bobot kedua bernilai nol, warna pixel pertamalah yang akan dihasilkan.
3.3 Algoritma Feature Morphing
B’2
P’1
d2
Secara keseluruhan, algoritma feature morphing adalah sebagai berikut :
P’ P’2 A1
A’2
A’1
A2 Source Image
warna yang dihasilkan sama dengan warna pixel kedua. Begitu pula jika sebaliknya,
D1W1 D2W2 (3.9) W1 W2 B2
B1
Jika bobot pixel pertama bernilai nol,
1. Menentukan jumlah frame gambar yang ingin dihasilkan (misal, sebanyak n
Target Image
Gambar 3.5 Jika ada dua buah garis feature, titik hasil warping adalah rata-rata bobot displacement D1 dan D2.
frame gambar). 2. Mengerjakan proses warping sebanyak n kali. Setiap kali, dua proses warping dikerjakan, yaitu warping gambar asal
Terlihat titik baru terletak di garis antara P1’ dan P2’. Secara umum, bila ada n buah garis: n
P' P
DW i 1 n
i
i
dan warping gambar tujuan. 3. Hasil warping gambar asal dan gambar tujuan tersebut kemudian mengalami
(3.10)
Wi i 1
proses cross dissolve untuk setiap frame gambar. Contoh algoritma dapat dilihat pada gambar
3.2 Proses Cross Dissolve
3.6. Terlihat gambar asal (trapezium) dan
Untuk memadukan dua buah warna,
gambar tujuan (persegi panjang) dilakukan
perlu dihitung rata-rata bobot dari masing-
proses warping sehingga keduanya memiliki
masing warna primernya :
bentuk yang sama. Selanjutnya digunakan
r
w1 .r1 w2 .r2 (3.11) w1 w2
g
w1 .g1 w2 .g 2 (3.12) w1 w2
b
w1 .b1 w2 .b2 (3.13) w1 w2
proses cross dissolve untuk menggabungkan warna antara gambar asal dan tujuan.
INTEGRAL, Vol. 9 No. 1, Maret 2004 gambar yang akan di warp menjadi garis feature tujuan. Setiap titik pada lembaran kosong tadi dicari posisi padanannya pada gambar yang akan di warp dengan algoritma warping biasa. Titik tersebut kemudian diisi dengan warna padanannya pada gambar yang akan di-warp tadi.
Gambar 3.6 Dua tahap dalam proses feature morphing 4. Pengujian 4.1 Pengujian proses warping Pada proses warping, setiap titik dapat mengalami proses rotasi, translasi, dilasi dan lain
sebagainya.
Akibatnya,
Gambar 4.1 Gambar asal dan gambar tujuan
muncul
beberapa kondisi diantaranya : 1. Ada titik-titik yang hilang karena berada di luar ukuran gambar asal atau gambar tujuan. 2. Terjadi titik-titik yang akibat proses warping memiliki posisi baru yang
Gambar 4.2 Gambar hasil warping biasa dan memakai algoritma invers.
sama. 3. Gambar yang dihasilkan tidak penuh,
Terlihat pada gambar 4.2, gambar
ada posisi yang kosong di pada
disebelah kiri adalah hasil dari warping
gambar.
biasa, menunjukkan adanya titik-titik hitam,
Untuk mengatasinya dipakai proses invers.
sedangkan gambar disebelah kanan adalah
Pada warping biasa, pengulangan proses
hasil dari algoritma invers.
dilakukan pada gambar yang akan di warp sehingga seolah-olah titik-titik pada gambar
4.2 Pengujian proses cross-disolve
dipetakan ke suatu tempat baru pada gambar
Algoritma morphing yang pertama kali
yang sama. Pada proses invers pengulangan
dikembangkan
dilakukan pada suatu ‘lembaran’ gambar
disolve. Hasil pengujian proses cross-disolve
kosong yang akan menampung hasil proses
saja dapat dilihat pada gambar 4.3. (pada
warping. Pada proses ini, garis-garis feature
lampiran)
pada ‘lembaran’ kosong tadi menjadi garis
Pada gambar 4.3.a terlihat gambar asal
feature asal dan garis-garis feature pada
perlahan-lahan menghilang menjadi gambar
adalah
algoritma
cross-
INTEGRAL, Vol. 9 No. 1, Maret 2004 tujuan (gambar 4.3.c). Animasi terlihat
Semakin banyak garis feature, semakin
kurang alami dan terlihat adanya empat buah
lama waktu proses tetapi semakin halus
mata pada gambar transisi (gambar 4.3.b).
dan alami animasi yang dihasilkan. 2. Semakin banyak frame gambar, semakin
4.3 Pengujian proses feature morphing. Pengujian
proses
feature
morphing
lama waktu proses tetapi animasi yang dihasilkan lebih berkesan alami.
menunjukkan hasil yang baik dan lebih
3. Penempatan kombinasi garis feature
alami. Pada gambar 4.4 (pada lampiran),
perlu dilakukan secara hati-hati karena
terlihat bentuk dan posisi feature-feature
dapat
yang terdapat pada gambar asal (gambar kiri
dihasilkan kurang begitu baik atau
atas) secara perlahan berubah ke bentuk dan
bahkan buruk.
mengakibatkan
animasi
yang
posisinya di gambar tujuan (gambar kanan bawah). Semakin banyak frame gambar yang dibuat juga membuat animasi yang dihasilkan semakin halus. Hal ini dapat dibandingkan dengan melihat gambar 4.5 (pada lampiran) dengan 4 frame gambar dan gambar 4.4 dengan 10 frame gambar.
Daftar Pustaka [1] Anderson, Scott, Morphing Magic 1st Edition, Sams Publishing, 1993 [2] Nalwan, Agustinus, Movie and Special Effect 2, Elex Media Komputindo, 2001 [3] Kerlow, Isaac, The Art of 3-D Computer Animation and Imaging, Van Nostrand
Kesimpulan Setelah
dilakukan
Reinhold, 1996 pengumpulan
data,
analisis, perancangan, dan implementasi diperoleh
beberapa
kesimpulan
sebagai
berikut : 1. Animasi yang dihasilkan dengan teknik feature morphing, lebih berkesan alami dibandingkan
teknik
morphing
sebelumnya, yaitu teknik cross dissolve.
INTEGRAL, Vol. 9 No. 1, Maret 2004 Lampiran
(a) (b) (c) Gambar 4.3 Hasil cross-disolve, (a) Gambar Asal, (b) Gambar transisi, (c) gambar tujuan
Gambar 4.4 Animasi feature morphing dengan 10 frame, kiri atas adalah gambar asal, kanan bawah adalah gambar tujuan.
(a) (b) (c) (d) Gambar 4.5 Animasi feature morphing dengan 4 frame, (a) gambar asal, (b) dan (c) gambar transisi, (d) gambar tujuan