TEXTURE TRANSFER MENGGUNAKAN METODE TEXTURE SYNTHESIS
Nama Mahasiswa NRP Jurusan Dosen Pembimbing
: : : :
Dhikie Agustino Bendnistito 1204 100 066 Matematika FMIPA-ITS Drs. Soetrisno, MIKomp
Abstrak Bidang pengolahan citra digital mengalami perkembangan yang pesat, terutama pada bidang restorasi citra atau perbaikan citra. Banyak yang dapat digunakan untuk merestorasi atau memperbaiki citra yang rusak, salah satunya adalah texture transfer. Texture transfer mengambil suatu tekstur dan menyusunnya ke obyek lain. Salah satu aplikasi dari texture transfer adalah untuk memperbaiki bagian citra tekstur yang rusak. Tugas akhir ini membahas bagaimana cara kerja dari texture transfer menggunakan metode texture synthesis, Alasan menggunakan metode texture synthesis karena algoritmanya yang sederhana dan mudah untuk diimplementasikan. Metode texture synthesis disini berperan dalam melakukan proses penyusunan dan penghalusan blok-blok piksel dari suatu citra texture ke citra texture yang lain. Setelah didapat nilai error correspondence map, selanjutnya dilakukan sintesa tekstur menggunakan patch base texture synthesis yaitu algoritma image quilting, untuk menyusun blok-blok piksel dan penghalusan batas vertikal horisontal antar blok yang disintesa. Pembuatan perangkat lunak restorasi texture dengan metode texture synthesis menggunakan bahasa pemrograman Visual C#. Program dapat menghasilkan citra output yang baik jika kerusakan berbentuk deterministik. Namun pada citra stokastik, hasil perbaikan tidak begitu memuaskan bila dibandingkan dengan hasil perbaikan pada citra deterministik. Dari uji coba yang dilakukan, texture tersnfer juga dapat digunakan untuk merestorasi citra texture deterministik yang bernoda. Kata Kunci: Texture Transfer, Texture Synthesis, Algoritma Image Quilting.
1.
PENDAHULUAN
Perkembangan teknologi digital berpengaruh dalam perkembangan kehidupan manusia. Teknologi digital merupakan pengkonversian sinyal analog atau gelombang menjadi sinyal digital atau dalam bentuk digit (angka). Seiring dengan perkembangan teknologi digital tersebut dikembangkan pula sistem yang dimaksudkan untuk meningkatkan kualitas dari citra digital, sistem tersebut biasa disebut pengolahan citra digital. Perbaikan citra adalah salah satu bidang pengolahan citra digital yang dapat digunakan untuk meningkatkan kualitas citra dengan cara menghilangkan gangguan pada citra atau dengan cara memperbaiki citra yang rusak. dapat digunakan untuk melakukan transfer tekstur yaitu metode texture synthesis. Texture synthesis ialah metode untuk membuat suatu tekstur dengan ukuran sesuai keinginan.
Banyak cara yang dapat digunakan untuk melakukan perbaikan citra, salah satunya yaitu image inpainting. Image inpainting digunakan untuk memperbaiki suatu citra yang mengalami kerusakan dengan cara mengambil nilai piksel dari persekitaran area citra yang rusak. Namun image inpainting mempunyai keterbatasan pada area kerjanya, karena tidak dapat mengatasi kerusakan pada citra tekstur. Hal inilah yang melatar belakangi munculnya texture tranfer. Texture transfer mengambil suatu tekstur dan menyusunnya ke obyek lain. Texture transfer dapat diaplikasikan untuk melakukan perbaikan citra tekstur yang rusak. Salah satu metode yang Sehingga perbaikan citra tekstur yang rusak dapat dilakukan dengan cara mentransfer tekstur dan mensintesa ke citra tekstur yang rusak tersebut. Sintesa tekstur dilakukan menggunakan patch base texture synthesis, yaitu algoritma image quilting.
1
Algoritma image quilting digunakan untuk penyusunan dan penghalusan batas antar blok piksel dalam proses sintesa tekstur. Tujuan dari permasalahan ini adalah untuk mengimplementasikan texture transfer dengan menggunakan metode texture synthesis. Manfaat yang diperoleh dari tugas akhir ini adalah Dapat membantu dalam pengembangan teknologi fotografi, terutama pada bidang perbaikan citra tekstur dan dapat dijadikan sebagai acuan untuk penelitian lebih lanjut tentang texture transfer dan tentang texture synthesis. Dalam upaya menghasilkan suatu hsil yang efektif, batasan permasalahan diberikan: 1. Perbaikan citra hanya pada citra texture deterministik. 2.Penentuan ukuran blok harus mencakup texel (texture elemen), dan ukuran blok harus lebih kecil dari ukuran citra referensi. 3.Citra referensi seminimum mungkin mencakup semua corak texel (dapat mewakili semua corak texel pada citra awal). 4.Untuk 1 corak texel menggunakan 1 iterasi, dan untuk corak texel lebih dari 1 menggunakan 2 iterasi.
Citra dengan tinggi N piksel, lebarnya M piksel, dan memiliki intensitas f dapat direpresentasikan sebagai suatu matriks yang berukuran N baris dan M kolom sebagai berikut [Munir’2004]:
f (0,0) f (1,0) f ( x, y ) = : f ( M −1,0)
f (0,1)
...
f (0, N
f (1,1) :
...
f (1, N :
f ( M −1,1)
...
f ( M −1
Indeks baris (x) dan indeks kolom (y) menyatakan suatu koordinat titik pada citra. Masing-masing titik (x,y) di citra disebut picture element atau piksel, sedangkan f(x,y) merupakan intensitas (derajat keabuan) pada titik (x,y). 2.2 Pengolahan Citra Digital Sebuah Citra kaya akan informasi, namun seringkali citra yang kita miliki mengalami penurunan mutu (degradasi), misalnya mengandung cacat atau derau (noise), warnanya terlalu terang, kurang tajam, kabur (blurring), dan sebagainya. Tentu saja citra semacam ini menjadi lebih sulit diinterpretasi karena informasi yang disampaikan oleh citra tersebut menjadi berkurang. Agar citra yang mengalami gangguan mudah diinterpretasi (baik oleh manusia ataupun komputer), maka citra tersebut perlu dimanipulasi menjadi citra lain yang kualitasnya lebih baik. Bidang studi yang menyangkut tentang hal ini adalah pengolahan citra (image processing). Pengolahan citra adalah pemrosesan citra dengan menggunakan komputer, agar citra menjadi citra yang kualitasnya lebih baik. Umumnya operasioperasi pada pengolahan citra diterapkan pada citra bila : 1. Perbaikan atau memodifikasi citra perlu dilakukan untuk menonjolkan beberapa aspek informasi yang terkandung didalam citra. 2. Elemen didalam citra perlu dikelompokkan, dicocokkan, atau diukur. 3. Sebagian citra perlu digabung dengan bagian citra yang lain. Pengolahan citra bertujuan memperbaiki kualitas citra agar mudah diinterpretasi oleh manusia atau mesin (dalam hal ini komputer). Pengolahan citra mentransformasikan citra menjadi citra lain. Jadi masukannya citra keluarannya juga citra, namun citra keluaran mempunyai kualitas lebih baik daripada citra masukan.
2. DASAR TEORI 2.1 Pengertian Citra Suatu Citra adalah fungsi intensitas 2 dimensi f(x,y), dimana x dan y adalah koordinat titik spasial dan f pada (x,y) merupakan tingkat kecerahan (brightness) suatu citra pada suatu titik. Fungsi intensitas dapat ditulis sebagai berikut: f ( x, y ) = i ( x, y ). r ( x, y ) , dimana i ( x, y ) : Sumber cahaya dengan 0< i ( x, y ) < ∞ r ( x, y ) : Jumlah cahaya yang dipantulkan dengan 0< r ( x, y ) < ∞ Sedangkan Citra Digital ialah suatu citra yang telah di Digitasi, yaitu proses merubah sinyal analog menjadi sinyal digital, baik terhadap ruang (koordinat (x,y)), sehingga citra tersebut dapat diproses melalui komputer. Citra Digital direpresentasikan dalam bentuk matriks didalam memori komputer. Elemen-elemen matriks dapat diakses secara langsung melalui indeksnya (baris dan kolom). Pada umumnya citra berbentuk persegi empat dan dimensi ukurannya dinyatakan sebagai (tinggi x lebar).
2
diinginkan, hitung nilai error antar blok pada daerah overlap. 5. Cari jalur minimum berdasarkan nilai error tersebut dan jadikan sebagai batas antar blok yang baru.
2.3 Texture Synthesis Tekstur adalah pola visual yang dapat dilihat dimana-mana dan dapat mendeskripsikan keanekaragaman dari karakteristik permukaan secara luas, seperti karakteristik tanaman, mineral, pola, kain dan kulit. Tekstur diklasifikasikan menjadi 2 kategori, yaitu tekstur deterministik dan stokastik. Tekstur deterministik merupkan tekstur yang memiliki karakteristik yang diatur oleh bermacam-macam kondisi dan aturan penempatan, contohnya adalah tekstur pengaturan ubin/batu-bata. Sedangkan tekstur stokastik tidak memiliki kondisi-kondisi /aturan penempatan yang khusus, contohnya adalah tekstur pasir dan batu granit. Pada dunia nyata banyak sekali tekstur yang merupakan kombinasi dari kedua karakteristik diatas, seperti ladang bajakan dan tenunan kain. Texture synthesis membuat atau membangun sebuah tekstur dengan ukuran yang dapat diatur sesuai keinginan. Berikut ini akan dibahas mengenai salah satu algoritma dari texture synthesis yang pengolahannya berbasis patch/blok, yaitu algoritma “Image Quilting” [EFR’01]. Algoritma ini bekerja dengan cara menyatukan potongan-potongan kecil dari tekstur untuk membentuk citra hasil.
Error Terkecil Pada Batas Potong Untuk melakukan pemotongan antara ke 2 blok yang saling overlap pada pikselpiksel dimana ke 2 tekstur tersebut paling cocok, dapat digunakan algoritma Dijkstra atau yang dapat disebut juga sebagai algoritma siklis. Algoritma ini diterapkan dengan mengasumsikan nilai selisih error kuadrat sebagai jarak antar node. Jalur terpendek yang melalui error permukaan dihitung sebagai e = ( B1ov - B2ov )2. Jika B1 dan B2 merupakan 2 blok yang overlap sepanjang batas vertikal mereka dengan wilayah overlap B1ov dan
B2ov ,seperti digambarkan pada Gambar 2.2. Untuk menemukan potongan vertikal paling minimum yang melalui permukaan ini, e (i = 2,….. N) dilalui dan dihitung error kesalahan terkecil kumulatif E untuk semua path: Ei,j = ei,j + min (Ei-1,j-1 , Ei-1,j , Ei-1,j+1) Pada akhirnya, nilai terkecil dari baris terakhir pada E akan mengindikasikan akhir dari jalur vertikal terkecil yang melalui permukaan dan dapat ditelusuri kembali untuk menemukan jalur perpotongan yang terbaik. Prosedur yang sama dapat diterapkan pada overlap horizontal. Ketika terjadi vertikal dan horizontal overlap, jalur minimum bertemu di tengah dan nilai minimum keseluruhan dipilih untuk perpotongan. Pada dasarnya, rumus Error Terkecil Pada Batas Potong merupakan implementasi dari algoritma Dijkstra.
2.3.1 Image Quilting Algoritma image quilting secara lengkap dapat dituliskan sebagai berikut: 1. Tentukan ukuran blok, ukuran overlap 2. Cari blok pada citra referensi yang memenuhi batasan overlap (atas dan kiri) dengan toleransi kesalahan tertentu. Secara acak pilih 1 blok 3. Satukan blok-blok tersebut dengan raster order.
overlapping blocks
_
Gambar 2.1 raster order blok
4. Bila hasil penyatuan blok belum mencapai ukuran yang diinginkan, ulangi pencarian blok pada citra referensi. Tetapi jika telah mencapai ukuran yang
overlap error
Batas Vertikal boundary
2
= min. error boundary
Gambar 2.2 Proses pencarian error terkecil pada batas potong
3
Algoritma Dijkstra (Siklis) Algoritma Dijkstra menggunakan 2 jenis label, yaitu sementara dan tetap dan dilambangkan dengan format [d,n] dimana d adalah jarak terdekat yang sejauh ini tersedia untuk node saat ini, dan n adalah node yang tepat mendahuluinya yang memungkinkan realisasi jarak d. algoritma ini memulai dari node sumber yang memiliki label tetap [0,-1]. Selanjutnya pertimbangkan semua node yang dapat dicapai secara langsung dari node sumber tersebut dan tentukan label yang sesuai. Label yang baru dibuat dinyatakan sebagi label sementara. Label tetap berikutnya dipilih dari semua label sementara saat ini, dengan d terkecil dalam label [d,n] yang bersangkutan. Dalam kasus seperti ini, label sementara dari sebuah node hanya dapat diubah jika label baru tersebut menghasilkan jarak d yang lebih dekat.
geometri dari model warna RGB untuk menspesifikasikan warna menggunakan sistem koordinat Cartesian. Spektrum greyscale (tingkat keabuan) yaitu warna yang dibentuk dari gabungan tiga warna utama dengan jumlah yang sama, berada pada Batas yang menghubungkan titik hitam dan putih, seperti ditunjukkan pada Gambar 2.4.
2.4 Texture Transfer Texture transfer adalah suatu metode untuk mengambil tekstur dari suatu obyek dan mentransfer pada obyek lain. Dalam penerapannya diharuskan setiap bagian keluaran memenuhi correspondence map yang diinginkan dan sintesa tekstur. Correspondence map adalah suatu citra yang mempunyai nilai korespondensi antara citra rusak dan citra referensi, nilai ini dapat berupa intensitas cahaya (luminance), intensitas jumlah RGB, atau nilai-nilai yang lainnya. Pada texture transfer, citra hasil sintesa harus memiliki 2 batasan independent, yaitu: 1. Citra dihasilkan dari sintesa citra referensi. 2. Correspondence map harus dipenuhi (memiliki error korespondensi yang kecil). Perhitungan error dari algoritma image quilting untuk texture transfer adalah total bobot, α dikali error penyesuaian blok overlapping ditambah (1- α) dikali kuadrat error antara piksel map yang berkorespondensi di dalam blok citra referensi dan blok yang berada pada posisi citra rusak.
Gambar 2.4 Koordinat warna RGB 3.
ANALISIS IMPLEMENTASI PERANGKAT LUNAK
SISTEM
3.1 Analisis Perancangan Sistem Pada bagian ini akan menganalisis bagaimana sistem perangkat lunak akan berinteraksi dengan user mulai dari memasukkan input data sampai menghasilkan keluaran. Pembahasan mengenai analisis sistem meliputi analisis penyelesaian texture transfer, analisis penyelesaian sintesa tekstur, analisis algoritma image quilting.
2.5 Model Warna RGB
3.1.1 Analisis Penyelesaian Texture Transfer Sistem perangkat lunak texture transfer menggunakan metode texture synthesis adalah sistem yang mampu mentrasfer tekstur dari citra referensi ke citra rusak dengan menggunakan metode texture synthesis untuk menyusun blok-blok pada citra referensi di citra rusak, sehingga ini dapat diaplikasikan
Suatu citra dalam model RGB terdiri dari tiga bidang citra yang saling lepas, masingmasing terdiri dari warna utama: merah, hijau dan biru. Suatu warna dispesifikasikan sebagai campuran sejumlah komponen warna utama. Gambar menunjukkan bentuk
4
DAN
untuk perbaikan citra tekstur yang mengalami kerusakan, dimana kerusakan yang dimaksud adalah terdapat bagian yang hilang ataupun berlubang pada citra tekstur (citra yang mempunyai pola atau corak). Perbaikan citra tekstur yang rusak dilakukan dengan cara mentransfer dan mensintesa blok-blok piksel dari citra referensi ke citra rusak. Untuk transfer citra, pada tiap-tiap blok yang akan ditransfer harus memenuhi correspondence map, yaitu mempunyai nilai korespondensi antara citra rusak dan citra referensi, nilai ini dapat berupa intensitas jumlah RGB, tingkat intensitas cahaya/kecerahan citra, atau nilainilai lainnya. Untuk sintesa tekstur digunakan algoritma image quilting, algoritma ini proses kerjanya lebih cepat daripada algoritma sintesa tekstur lainnya yang berbasis piksel, karena dengan mensintesa sekelompok piksel (blok) akan memakan waktu yang lebih sedikit daripada mensintesa piksel demi piksel. Diagram alir penyelesaian texture transfer secara global dapat dijelaskan pada gambar 3.1.
2. Setelah user memasukkan dua citra inputan, maka selanjutya user menentukan correspondence map yang ingin digunakan, dalam hal ini adalah nilai intensitas citra (jumlah RGB), atau nilai tingkat kecerahan citra (luminance) . 3. Dari correspondence map yang telah dipilih, lalu buat correspondence map dari citra referensi dan citra rusak, kemudian akan di cari blok-blok yang bersesuaian antara blok yang berada pada citra referensi dan blok yang berada pada citra rusak yaitu dengan cara meghitung error correspondence map tiap blok. Perhitungan dilakukan dengan mencari perbedaan/selisih intensitas citra atau dengan mencari perbedaan/selisih nilai RGB, semakin kecil selisihnya, semakin bagus hasilnya. Maka yang terbaik adalah yang mendekati nol. 4. Setelah didapat blok-blok yang bersesuaian dari correspondence map, lalu copy-paste blok-blok dari citra referensi ke citra hasil, dengan letak sesuai urutan blok pada citra rusak, lalu sintesa blok-blok tekstur tersebut, dari kiri ke kanan. Dalam sintesa tekstur tersebut algoritma image quilting mulai berjalan, dengan melakukan penghalusan pada batas vertikal dan batas horisontal pada blok-blok yang telah terpilih ,hingga ukuran citra hasil yang sama dengan ukuran citra rusak penuh terisi oleh blok-blok hasil sintesa. Jika iterasi belum terpenuhi, maka looping proses sampai iterasi ke n.
Mulai
Input (Citra Rusak
)
Citra Referensi
Tentukan & Hitung Error Correspondence Map
Proses Mendapatkan Blok -blok Untuk Iterasi Ke it
Proses Sintesa Tekstur
n = it
it = it +1 No
Yes Output
Berhenti
3.1.2 Analisis Perhitungan Error Correspondence Map Pada sistem disebutkan bahwa dibutuhkan dua input citra, yaitu citra referensi dan citra rusak. Untuk lebih jelasnya akan diberikan contoh dari citra referensi dan citra rusak yang mengalami kerusakan, ditunjukkan pada Gambar 3.3 sebagai berikut.
Gambar 3.1 Diagram alir proses penyelesaian texture transfer
Pada texture transfer dibutuhkan inputan dari user, yaitu file citra rusak. tipe correspondence map yang digunakan dapat berupa luminance (tingkat kecerahan citra), intensitas RGB pada citra. Adapun alur prosesnya dapat dilihat pada gambar 3.1. Berikut merupakan penjelasan lebih lanjut mengenai diagram alur proses texture transfer. 1. Pertama user memasukkan dua citra inputan yaitu citra referensi dan citra rusak. Citra rusak adalah citra yang akan diperbaiki.
(a)
5
(b)
Gambar 3.3 a) Citra referensi, b) Citra rusak.
correspondence map tersebut, semakin kecil selisihnya, semakin bagus hasilnya karena semakin sesuai antara blok pada citra referensi dan citra rusak yang akan dipilih, jadi yang terbaik adalah yang selisihnya mendekati nol.
Citra rusak ialah citra tekstur yang mengalami kerusakan, yaitu terdapat bagian dari citra tekstur yang hilang atau bernoda. Sedangkan citra referensi ialah sampel atau bagian dari citra rusak yang tidak mengalami kerusakan. Dari citra yang diinputkan, lalu user memilih correspondence map yang ingin digunakan, dalam tugas akhir ini correspondence map yang digunakan yaitu nilai intensitas citra (jumlah nilai RGB) dan nilai luminance (tingkat kecerahan citra). Dari correspondence map yang dipilih, lalu dibuat correspondence map tersebut dan dilakukan perhitungan error pada correspondence map tersebut untuk menentukan blok-blok mana saja dari citra referensi yang sesuai dengan blok-blok pada citra rusak untuk kemudian di sintesa pada citra hasil, yaitu citra hasil transfer tekstur dari citra referensi ke citra rusak, dimana citra yang dihasilkan sudah tidak terdapat lagi bagian dari citra yang hilang atau berlubang.
3.1.3 Analisis Proses Mendapatkan blok untuk iterasi ke it Selanjutnya adalah menghitung data overlapping blok, jumlah baris dan kolom. Untuk setiap blok diambil wilayah yang memiliki term error terkecil, dimana term error adalah total bobot, α dikali error penyesuaian blok overlapping antara citra referensi dengan blok pada citra rusak ditambah (1- α) dikali selisih nilai intensitas atau luminance antara blok citra referensi dan citra rusak pada correspondence map, dan dapat dituliskan sebagai berikut: D = αit*D1 + (1- αit) * D2 (8) ov 2 D1 = ( B1ov B2 ) (9) D2 = r2 + g2 + b2 atau (10) D2 = (d1 – d2)2 (11)
Selanjutnya akan dihitung tingkat error antara correspondence map citra referensi dan citra rusak. Perhitungan dilakukan dengan mencari selisih nilai dari correspondence map,untuk mencari nilai dari correspondence map digunakan rumus L2 Norm. Untuk correspondence map intensitas citra digunakan rumus: ergb = r2 + g2 + b2 (1) r = sR – tR (2) g = sG – tG (3) b = sB – tB (4)
αit (12)
sR 2 + sG 2 + sB 2
d2 =
tR 2 + tG 2 + tB 2
0,8*
i −1 + N −1
0,1
Dimana: D = term error terkecil D1 = error pada blok overlapping antara citra referensi dan citra tujuan D2 = selisih nilai intensitas citra atau selisih tingkat kecerahan citra (luminance) αit = parameter yang menentukan pertukaran antara sintesa tekstur dan kebenaran dari map citra tujuan yang berkorespondensi Jika iterasi tersebut lebih dari 1, maka pada proses ini dalam memenuhi batasan lokal tekstur, blok tersebut tidak hanya harus sesuai dengan blok tetangganya dari area overlap, tetapi juga dengan apapun yang disintesa pada posisi blok tersebut dari iterasi sebelumnya. Sehingga term errornya adalah total bobot, α dikali error penyesuaian blok overlapping antara citra referensi dengan citra rusak ditambah (1- α) dikali selisih nilai intensitas atau luminance antara blok citra referensi dan citra rusak pada correspondence map ditambah error penyesuaian blok dengan nilai blok pada posisi tersebut dalam iterasi sebelumnya, ukuran blok direduksi pada tiap iterasinya, dan dapat dituliskan sebagai berikut
dimana: ergb : selisih nilai intensitas citra s : piksel pada citra referensi t : piksel pada citra rusak R : jumlah piksel untuk warna merah G : jumlah piksel untuk warna hijau B : jumlah piksel untuk warna biru Untuk correspondence map luminance digunakan rumus: d = (d1 – d2)2 (5) d1 =
=
(6) (7)
dimana : d = selisih tingkat kecerahan citra (luminance) Yang dijadikan patokan dalam perhitungan adalah selisih dari nilai
6
mendapatkan blok dengan kesalahan terkecil, telusuri seluruh citra referensi. Simpan semua blok yang memiliki toleransi kesalahan 0,1 dari kesalahan terkecil. Secara acak, pilih salah 1 blok tersebut untuk menempati posisi citra hasil. 3. Selanjutnya dilakukan penghalusan batas vertikal antar blok yang ber-overlapping. Penghalusan dilakukan untuk mengurangi garis batas yang tampak antar blok-blok yang disintesa. 4. Selanjutnya dilakukan penghalusan batas horisontal antar blok yang ber-overlapping. Penghalusan dilakukan untuk mengurangi garis batas yang tampak antar blok-blok yang disintesa. Pada akhir sintesa ditandai dengan telah berakhirnya penghalusan batas antar blok, pada baris dan kolom terakhir pada citra hasil. Pada akhir proses sintesa tekstur ini maka berakhir pula proses transfer tekstur.
n
D = αit*D1 + (1- αit) * D2 +
∑d it =2
it
(13)
d it =
( B1ov -
B2ov )2
(14)
d it = error pada blok overlapping antara
3.1.4
citra referensi dan citra tujuan pada iterasi ke i, dimana ukuran blok telah direduksi pada tiap iterasinya n = jumlah iterasi Analisis Proses Sintesa Tekstur Mulai
Input (CitraRusak
)
CitraReferensi
HitungDataOverlapping Blok , JumlahBarisDan Kolom
RandomBlokSejumlah KolomDanBaris
PenghalusanBatas Vertikal Antar Blok
3.1.5 Analisis Proses Penghalusan Batas Vertikal Antar Blok Tentukan bagian overlap untuk blok yang ingin digabungkan. Hitung selisih kuadrat antar ke 2 blok pada wilayah overlap. Asumsikan hasil selisih tersebut sebagai ei,j dimana i = 1,2,...... adalah baris, j = 1,2,...... adalah kolom. Hitung error terkecil kumulatif untuk semua path: Ei,j = ei,j + min (Ei-1,j-1 , Ei-1,j , Ei-1,j+1) Nilai terendah dari baris terakhir pada E akan mengindikasikan akhir dari jalur vertikal terkecil yang melalui permukaan dan telusuri kembali ke atas untuk menemukan jalur perpotongan yang terbaik.
PenghalusanBatas Horisontal Antar Blok
Output
Berhenti
Gambar 3.2 Diagram alur proses sintesa tekstur
Pada sintesa tekstur dibutuhkan beberapa masukan dari pengguna, yaitu file citra tekstur yang ingin diproses. Adapun alur prosesnya dapat dilihat pada gambar 3.2. Berikut ini merupakan penjelasan lebih detail mengenai diagram alur proses sintesa tekstur. 1. Dari alur tekstur transfer diatas, proses diakhiri pada proses sintesa tekstur, yang dimulai dengan menghitung jumlah baris dan kolom, dan ukuran blok overlapping yang sebelumnya ditentukan oleh user. Jumlah baris dan kolom diperoleh dengan membagi ukuran citra masukan dengan ukuran blok. 2. Selanjutnya dilakukan perulangan sebanyak jumlah kolom dan baris untuk mengacak hasil untuk masing-masing blok. Dalam mengacak harus diperhatikan error overlapping (pada bagian atas dan kiri blok). Untuk
Gambar 3.3 Jalur Perpotongan Vertikal Blok
E22 = e22 + Min {E11, E12, E13} atau
7
4.1 Spesifikasi Sistem Agar perangkat lunak yang dibuat dapat digunakan dengan baik maka diperlukan media-media sebagai berikut: 1. Processor Intel Celeron Core 2 Duo T5500 1,6GHz. 2. Memory DDR2 512 MB. 3. Harddisk 60 GB. 4. VGA Intel GMA 64 MB.
Jalur perptongan terbaik ditunjukkan pada Gambar 3.3. B1 dan B2 adalah 2 blok yang mengalami overlapping sepanjang sumbu vertikal dengan area overlap berturutturut adalah B1ov , B2ov , eij adalah error yang melalui posisi overlap (i,j).
4.2 Perangkat Lunak (Software) Perangkat lunak yang digunakan dalam implementasi perangkat lunak adalah: 1. Sistem Operasi Microsoft Windows XP Professional Service Pack 2. 2. Bahasa pemrograman menggunakan Microsoft Visual C# 2.0 Express Edition dengan menambahkan .net framework 3.5
3.1.6 Analisis Proses Penghalusan Batas Horisontal Antar Blok Tentukan bagian overlap untuk blok yang ingin digabungkan. Hitung selisih kuadrat antar ke 2 blok pada wilayah overlap. Asumsikan hasil selisih tersebut sebagai ei,j dimana i = 1,2,...... adalah baris, j = 1,2,...... adalah kolom. Hitung error terkecil kumulatif untuk semua path: Ei,j = ei,j + min (Ei-1,j-1 , Ei,j-1 , Ei+1,j-1) Nilai terendah dari kolom terakhir pada E akan mengindikasikan akhir dari jalur horisontal terkecil yang melalui permukaan dan telusuri kembali ke depan untuk menemukan jalur perpotongan yang terbaik. Jalur perptongan terbaik seperti ditunjukkan pada Gambar 3.4
4.3 Implementasi Perangkat Lunak Berikut akan dijelaskan beberapa fungsi program yang akan digunakan dalam implementasi aplikasi texture transfer menggunakan metode texture synthesis sebagai berikut: 1. Fungsi penghitungan Error Correspondence Map, untuk menghitung selisih error correspondence map citra referensi dan citra rusak, dengan menggunakan jumlah RGB,dan jumlah luminance sebagai correspondence map. 2. Fungsi blok yang sesuai, untuk mencari blok yang sesuai antara citra referensi dan posisi blok pada citra rusak. 3. Fungsi penghalusan batas, untuk menghaluskan batas blok yang beroverlapping dengan cara mencari batas potong pada masing-masing sumbu vertikal dan horisontal. 4. Fungsi Next, untuk menentukan koordinat posisi di citra hasil dimana blok baru akan disintesa.
Gambar 3.4 Jalur Perpotongan Horisontal Blok
E22 = e22 + Min{E11,E21,E31} Ei,j = ei,j , untuk j = 1 Ei,j = ei,j + min (Ei-1,j-1 , Ei,j-1 , Ei+1,j-1) , untuk j > 1 B1 dan B2 adalah 2 blok yang mengalami overlapping sepanjang sumbu horisontal dengan area overlap berturut-turut adalah B1ov B2ov , eij adalah error yang melalui posisi overlap (i,j).
4.4 Uji Coba Perangkat Lunak Sub bab ini akan membahas uji coba dari perangkat lunak yang telah dibuat. Uji coba dilakukan menggunakan berbagai citra dengan karakteristik yang berbeda dengan maksud untuk mengetahui kemampuan dan kelemahan dari perangkat lunak yang telah dibuat.
4. Implementasi dan Uji Coba Perangkat Lunak
8
Kerusakan Pada Citra TextureDeterministik
(a)
(c)
(b)
(d)
Gambar 4.2 (a) Citra referensi 57x57 piksel, (b) Citra rusak 171x134 piksel, (c) Citra awal 171x134 piksel, (d) Citra hasil 171x134 piksel
Dari Gambar 4.2(b) diatas akan diperbaiki, pada setting form menggunakan 1 iterasi, interval ukuran lebar blok 49 - 50 piksel, interval ukuran tinggi blok 49 - 50 piksel, interval ukuran overlap pada sumbu X 22 – 23 %, interval ukuran overlap pada sumbu Y 22 – 23 %, reduksi blok 33%, estimasi referensi blok 100%. Secara visualisasi citra hasil mendekati seperti citra awal, karena citra referensi memiliki corak karakteristik yang dapat mewakili semua corak visual pada citra awal, sehingga setelah melalui proses transfer texture citra hasil terlihat seperti citra awal. Secara numerik citra hasil dan citra awal memiliki tingkat kemiripan sampai 99,86 %, tingkat kemiripan tersebut dihitung berdasarkan total nilai piksel yang sama pada tiap posisi citra awal dan citra hasil sebesar 0 – 1 piksel.
mengimplementasikan metode texture synthesis. 4. Citra referensi yang digunakan dapat mempengaruhi baik dan buruknya citra hasil. 5. Pada uji coba, agar bias memulihkan citra rusak, maka interval optimum yang digunakan pada citra uji coba yaitu: interval lebar blok : 23 – 27 piksel, interval tinggi blok : 23 – 27 piksel, interval overlap pada sumbu x : 27 – 33 %, interval overlap pada sumbu y : 27 – 33 %, interval reduksi blok : 11 – 12 %, estimasi referensi blok : 100 %, interval jumlah iterasi : 1 – 2 iterasi 6. Citra rusak dikatakan berhasil di restorasi bila secara visual tampak seperti citra awal dan secara numerik citra hasil memiliki tingkat kemiripan dengan citra awal tidak kurang dari 99 %, dengan toleransi beda nilai piksel tiap posisi antara citra awal dan citra hasil sebesar 0 – 1 piksel. 5.2
Saran Berdasarkan uji coba yang dilakukan terhadap perangkat lunak, ada beberapa saran yang perlu dipertimbangkan dalam pengembangan tugas akhir ini, yaitu 1. Ada baiknya bila software dapat memperbaiki area bertekstur pada citra yang lebih kompleks, yaitu citra yang memiliki area tekstur dan non-tekstur, sehingga perbaikan citra menjadi lebih uas. 2. Ada baiknya melakukan pengembangan perangkat lunak yang terdapat fasilitas cropping image di dalamnya, agar proses pengambilan sampel tidak dilakukan dengan bantuan software lain
5. KESIMPULAN DAN SARAN 5.1
DAFTAR PUSTAKA
Kesimpulan
[1]
Dari implementasi dan uji coba texture transfer menggunakan metode texture synthesis dapat diperoleh kesimpulan sebagai berikut: 1. Program dapat menghasilkan citra hasil yang memuaskan bila kerusakan pada tekstur deterministik. 2. Program tidak dapat mengatasi kerusakan pada citra non texture . 3. Dari uji coba yang dilakukan, program juga dapat digunakan untuk menghilangkan noda dengan
[2]
9
A.A. Efros, and W.T. Freeman, "Image Quilting for Texture Synthesis and transfer", SIGGRAPH, page 16, 2001. graphics.cs.cmu.edu/people/efros/resear ch/quilting/quilting.pdf A. Efros and T.K. Leung, “Texture Synthesis by Nonparametric Sampling” IEEE Int’l Conf. Computer Vision, IEEE CS Press, 1999, pp. 1033-1038.
[3]
[4]
[5]
http://citeseerx.ist.psu.edu/viewdoc/su mmary?doi=10.1.1.35.3898 A. Hertzmann, "Algorithms for Rendering in Artistic Styles", PhD thesis, New York University, 2001. www.mrl.nyu.edu/publications/hertzma nn-thesis/ A. Hertzmann et al., “Image Analogies” Proc. Siggraph, ACM Press, 2001, pp. 327-340, http://mrl.nyu.edu/publications/imageanalogies/. Gonzalez, R.C, , P. [1987], “Digital Image Processing” , Addison-Wesley Publishing , Reading MA.
[6] [7] [8]
10
Munir, Rinaldi, [2004] “Pengolahan Citra Digital dengan Pendekatan Algoritmik”. Informatika, Bandung. R.Sigit ST, N.Ramadijanti MKom. [2005] “Step by Step Pengolahan Citra Digital ”. ANDI Yogyakarta. Y. Q. Xu, B. N. Guo, and H.Y. Shum, "Chaos Mosaic: Fast and Memory Efficient Texture Synthesis", MSR TR-2000-32, April, 2000. www.visgraf.impa.br/Courses/ip00/pap ers/tr-2000-32.pdf