BAB II LANDASAN TEORI 2.1 Grafik Komputer Menurut Ephi Lintau ( 2010 ), grafika komputer pada dasarnya adalah suatu bidang komputer yang mempelajari cara-cara untuk meningkatkan dan memudahkan komunikasi antara manusia dengan mesin (komputer) sebagai jalan untuk membangkitkan, suatu menyimpan, dan memanipulasi gambar model objek menggunakan komputer. Bentuk sederhana dari grafik komputer ada 2 yaitu : 1. Grafik komputer 2 dimensi 2. Grafik komputer 3 dimensi 2.2 Grafik Komputer 2D Biasa disebut dengan 2D atau bidang adalah bentuk dari benda yang memiliki panjang dan lebar. Grafik 2 Dimensi merupakan teknik penggambaran yang berpatokan pada titik koordinat sumbu x (datar) dan sumbu y (tegak). Agar dapat tampil dengan sempurna, gambar yang akan ditampilkan dengan teknik ini harus memiliki nilai koordinat x dan y minimum 0 dan maksimum sebesar resolusi yang digunakan. Grafik komputer 2D adalah sebuah generasi gambar digital ( digital image ) berbasis komputer, yang kebanyakan mengambil objek-objek dua dimensi (2D). Model Grafik 2D merupakan kombinasi dari model geometri (juga disebut sebagai grafik vektor), gambar digital (raster graphics), fungsi matematika, dan sebagainya. 11 Komponen-komponen ini dapat dimodifikasi dan dimanipulasi oleh transformasi geometri dua dimensi, seperti translasi, rotasi, dan dilatasi. ( Ephi Lintau, 2010 ) 2.3 Grafik Komputer 3D Biasa disebut 3D atau merupakan bentuk dari benda yang memiliki panjang, lebar, dan tinggi. Grafik 3 Dimensi merupakan teknik penggambaran yg berpatokan pada titik koordinat sumbu x(datar), sumbu y(tegak), dan sumbu z(miring). Representasi dari data geometrik 3 dimensi sebagai hasil dari pemrosesan dan pemberian efek cahaya terhadap grafika komputer 2D. Tiga Dimensi, biasanya digunakan dalam penanganan grafis. 3D secara umum merujuk pada kemampuan dari sebuah video card (link). Grafik 3D merupakan perkembangan dari grafik 2D. Di dalam grafika komputer, 3D merupakan bentuk grafik yang menggunakan representasi data geometri tiga dimensi. Suatu objek rangka 3D apabila disinari dari arah tertentu akan membentuk bayangan pada permukaan gambar. Proses pembuatan grafik komputer 3D dapat dibagi ke dalam tiga fase, yaitu 3D modeling yang mendeskripsikan bentuk dari sebuah objek, layout, dan animation yang mendeskripsikan gerakan dan tata letak sebuah objek, dan 3D rendering yang memproduksi image dari objek tersebut. ( Ephi Lintau, 2010 ) 2.4 Image ( Citra ) Citra (image) adalah gambar pada bidang dua dimensi. Ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dua dimensi. Citra (image) adalah suatu representasi, kemiripan, atau imitasi dari suatu objek atau benda. Istilah lain untuk citra adalah suatu komponen 12 multimedia yang memegang peranan sangat penting sebagai bentuk informasi visual. Citra mempunyai karakteristik yang tidak dimiliki oleh data teks, yaitu citra kaya dengan informasi. Maksudnya, sebuah gambar dapat memberikan informasi yang lebih banyak daripada informasi yang disajikan dalam bentuk teks. Sumber cahaya menerangi objek, objek memantulkan kembali sebagian dari berkas cahaya tersebut. Pantulan cahaya ini ditangkap oleh alat-alat optik, misalnya mata pada manusia, kamera, pemindai (scanner), dan sebagainya, sehingga bayangan objek yang disebut citra tersebut terekam. Menurut Eko Suwono ( 2010 ), sebuah citra mengandung sejumlah elemen dasar. Elemen-elemen dasar tersebut dimanipulasi dalam pengolahan citra, elemen-elemen citra tersebut adalah sebagai berikut : 1. Warna Warna merupakan suatu persepsi yang dirasakan oleh sistem visual manusia terhadap panjang gelombang cahaya yang dipantulkan oleh sebuah objek. Setiap warna memiliki panjang gelombang. Warna yang diterima oleh mata merupakan hasil kombinasi cahaya dengan panjang gelombang yang berbeda. Kombinasi warna yang memberikan rentang warna yang paling lebar adalah red (R), green (G), blue (B). 13 2. Kecerahan ( Brightness ) Kecerahan dapat disebut juga dengan intensitas cahaya. Kecerahan pada sebuah piksel ( titik ) di dalam sebuah citra bukanlah merupakan suatu intensitas yang real, tetapi sebenarnya adalah intensitas rerata dari suatu area yang melingkupinya. 3. Kontras Kontras merupakan elemen citra yang menyatakan sebaran terang dan gelap di dalam sebuah gambar. Sebuah citra dengan kontras yang rendah dicirikan oleh sebagian besar komposisi citranya yaitu terang atau sebagian besar gelap. Pada sebuah citra dengan kontras yang baik, komposisi terang dan gelap tersebar secara merata. 4. Kontur Kontur merupakan suatu keadaan yang ditimbulkan oleh perubahan intensitas pada piksel yang bersebelahan. Dikarenakan adanya perubahan intensitas, maka mata manusia dapat mendeteksi tepi suatu objek di dalam sebuah citra. 14 5. Bentuk ( Shape ) Bentuk merupakan sebuah properti intrinsik dari suatu objek tiga dimensi, dengan pengertian bahwa bentuk adalah properti intrinsik utama untuk sistem visual manusia. Pada umumnya, citra yang dibentuk oleh mata merupakan citra dwimatra ( dua dimensi ), sedangkan objek yang dilihat umumnya merupakan objek yang berbentuk trimatra ( tiga dimensi ). Informasi bentuk objek dapat diekstraksi dari sebuah citra pada permulaan pra-pengolahan dan segmentasi sebuah citra. 6. Tekstur Tekstur merupakan elemen yang diartikan sebagai sebuah distribusi spasial dari derajat keabuan di dalam sekumpulan piksel yang bersebelahan. Jadi tekstur tidak dapat didefinisikan untuk sebuah piksel. Sistem visual manusia dapat menerima informasi citra sebagai suatu kesatuan. Resolusi sebuah citra yang diamati, ditentukan oleh skala pada tempat di mana tekstur tersebut dipersepsi. 7. Waktu dan Pergerakan Respon dari suatu sistem visual tidak hanya berlaku pada faktor ruang, tetapi juga berlaku pada faktor waktu. Contohnya adalah apabila citra-citra diam ditampilkan secara cepat, maka akan berkesan seperti melihat citra yang bergerak. 15 8. Deteksi dan Pengenalan ( Edge and Recognition ) Dalam mendeteksi dan mengenali sebuah citra, tidak hanya sistem visual manusia saja yang bekerja, tetapi juga ikut melibatkan ingatan dan daya pikir manusia. 2.5 Digital Image Digital image dapat didefinisikan sebagai fungsi dua variabel f(x,y), di mana x dan y adalah koordinat spasial dan nilai f(x,y) adalah intensitas citra pada koordinat tersebut. Teknologi dasar untuk menciptakan dan menampilkan warna pada citra digital berdasarkan penelitian bahwa sebuah warna merupakan kombinasi dari tiga warna dasar, yaitu merah, hijau, dan biru (Red, Green, Blue – RGB). Digital Image lebih berkaitan dengan teknik pembentukan gambar dibandingkan dengan hasil proses. Perbedaan proses pembentukan representasi image dari berbagai media sangat potensial mendapatkan hasil akhir yang diinginkan. Proses memang tidak mudah menghasilkan output yang sama persis tanpa sebuah perlakuan standarisasi yang besar. Digital image merupakan objek nyata yang direpresentasikan secara elektronis. Objek dapat bersumber dari dokumen, foto, barang cetakan, hingga lukisan. Unsur utama digital image adalah tepi-tepi yang berisi elemen objek yang sangat dasar, yaitu picture element ( pixel ). 16 Digital image secara garis besar terdiri atas dua kategori utama, yaitu raster ( bit mapped ) dan vector ( object oriented ). Raster image terbentuk dari grid atau matrik dengan unsur dasar berupa pixel ( picture element ) yang mempunyai lokasi unik dan nilai warna tersendiri. Sebaliknya, vector image terbentuk dari instruksi matematika dalam membentuk image. ( Rambe, 2011 ) 2.5.1 Raster Image Semua peralatan capture digital image menghasilkan raster image. Bentuk raster sangat umum digunakan pada beberapa peralatan output, seperti scanner maupun kamera digital. File-file seperti TIFF, JPEG / JFIF, dan GIF merupakan beberapa contoh format file dalam bentuk raster. 2.5.2 Vector Image Apabila bentuk raster image dihasilkan dari proses pengambilan gambar atau capture, maka lain halnya dengan jenis image vector. Image vector dihasilkan program pengolah gambar, termasuk gambar 2D dan 3D, gambar arsitektur, grafik, logo, hingga font. Image terdiri atas garis, kurva, dan shape yang dapat diedit atributnya, seperti warna objek dan fill objek. Karena dihasilkan dari rumus matematika, ukuran gambar file mudah dimanipulasi tanpa harus kehilangan detail gambar aslinya ( resolution independent ). Objek raster dapat pula dikonversikan menjadi objek vector melalui proses ‘trace’. Setiap 17 unsur objek dalam image dapat ditransformasikan secara independent satu dengan yang lain. Pengolahan citra dapat diterapkan pada berbagai bidang untuk membentuk suatu aplikasi yang tangguh dan dapat dipercaya. Oleh karena itu, aplikasi pengolahan citra sangat memungkinkan untuk membentuk suatu mesin otomatis yang dapat membantu manusia dalam melaksanakan suatu pekerjaan. Pengolahan gambar digital atau Digital Image Processing (DIP) adalah bidang yang berkembang sangat pesat sejalan dengan kemajuan teknologi pada industri saat ini. Proses mengubah citra ke bentuk digital bisa dilakukan dengan beberapa perangkat, misalnya scanner, kamera digital, dan handycam. Ketika sebuah citra sudah diubah ke dalam bentuk digital (selanjutnya disebut citra digital), bermacam-macam proses pengolahan citra dapat diperlakukan terhadap citra tersebut. ( Rambe, 2011 ) 2.6 Warna ( RGB ) Menurut Rambe ( 2011 ), sistem visual manuasia dapat membedakan ratusan ribu shade warna dan juga intensitas, tetapi hanya 100 shade keabuan. Oleh karena itu, di dalam suatu citra masih banyak informasi lainnya yang ada pada warna, dan informasi tersebut juga dapat digunakan untuk menyederhanakan suatu analisis citra, misalnya identifikasi obyek dan ekstraksi warna. Model warna merupakan cara yang standard untuk menspesifikasikan suatu warna tertentu dengan mendefinisikan suatu sistem koordinat 3D dan suatu ruang bagian yang mengandung semua warna yang dapat dibentuk ke dalam suatu model tertentu. 18 Suatu warna dapat dispesifikasikan menggunakan suatu model yang akan berhubungan ke suatu titik tunggal dalam suatu ruang bagian yang mendefinisikannya. Masingmasing warna diarahkan ke salah satu standard hardware tertentu ( RGB atau CMY ). RGB merupakan suatu model warna yang terdiri dari warna merah ( Red ), hijau ( Green ), dan biru ( Blue ), yang digabungkan kemudian menghasilkan suatu susunan warna yang luas. Setiap warna dasar, misalnya warna merah, dapat diberi rentang nilai. Untuk sebuah monitor komputer, memiliki nilai rentang yang paling kecil = 0 dan yang paling besar = 255. Pilihan skala 256 ini didasarkan pada cara mendeskripsikan 8 digit bilangan biner yang digunakan oleh suatu mesin komputer. Dengan menggunakan cara ini, maka akan diperoleh warna campuran sebanyak 256 x 256 x 256 = 1677726 jenis warna. Satu jenis warna dapat dibayangkan sebagai sebuah vektor di ruang dimensi tiga yang biasanya dipakai dalam ilmu matematika, yang koordinatnya dinyatakan dalam bentuk tiga bilangan, yaitu komponen x, komponen y, dan komponen z. Misalkan, sebuah vektor dituliskan sebagai r = ( x, y, z ). Dalam warna, komponen-komponen tersebut digantikan oleh komponen Red, Green, Blue. Jadi, satu jenis warna dapat dituliskan sebagai berikut : warna = RGB ( 30, 75, 255 ). Untuk warna putih = ( 255, 255, 255 ), sedangkan untuk warna hitam = RGB ( 0, 0, 0 ). 19 Tabel 2.1 Komponen Warna RGB Warna R G B Hitam 0 0 0 Merah 255 0 0 Hijau 0 255 0 Biru 0 0 255 Kuning 255 255 0 Magenta 255 0 255 Cyan 0 255 255 Putih 255 255 255 Abu-Abu 127 127 127 Orange 255 110 0 Ungu 128 0 255 Coklat 128 25 0 Pink 255 190 220 Navy 0 0 120 Gambar di bawah ini menunjukkan bentuk geometri dari model warna RGB yang digunakan untuk menspesifikasikan warna menggunakan sistem koordinat Cartesian. Spektrum grayscale ( tingkat keabuan ) yaitu warna yang dibentuk dari gabungan tiga warna utama dengan jumlah yang sama, yang berada pada garis yang menghubungkan titik hitam dan putih. 20 Gambar 2.1 Geometri model warna RGB Bentuk representasi warna dari sebuah citra digital adalah sebagai berikut : Gambar 2.2 Representasi warna citra digital 2.7 Format Citra Digital Menurut Rambe ( 2011 ), suatu citra digital memiliki beberapa format yang memilki karakteristik tersendiri. Format pada citra digital ini umumnya berdasarkan pada tipe dan cara kompresi yang digunakan pada citra digital tersebut. 21 Ada 4 format citra digital yang sering dijumpai, yaitu : 1. Bitmap ( BMP ) BMP merupakan format gambar yang paling umum dan merupakan sebuah format standard windows. Ukuran file dari format ini sangat besar karena bisa mencapai ukuran megabyte. File ini merupakan format yang belum terkompresi dan menggunakan sistem warna RGB ( Red, Green, Blue ) di mana masing-masing warna dari pixel-nya terdiri atas 3 komponen R, G, dan B yang dicampur menjadi satu. File BMP dapat dibuka dengan berbagai macam software pembuka gambar seperti ACDSee, Paint, dan lain-lain. File BMP sangat jarang atau bahkan tidak bisa digunakan di web ( internet ) dikarenakan ukurannya yang besar. 2. Joint Photographic Expert Group ( JPEG ) Format file JPEG merupakan format yang paling terkenal sampai sekarang ini. Hal ini dikarenakan oleh ukuran filenya yang kecil ( hanya puluhan / ratusan KB saja ), dan juga bersifat portable. Format file ini sering digunakan pada bidang fotografi yang dipakai untuk menyimpan file foto hasil perekaman Analog to Digital Converter ( ADC ). Karena ukurannya yang kecil inilah, maka format file ini sering digunakan di internet ( web ). 3. Graphic Interchange Format ( GIF ) Menurut Iin Aryani ( 2008 ), format file ini hanya mampu menyimpan dalam 8 bit ( hanya mendukung mode warna Grayscale dan Bitmap). Format file GIF ini merupakan format standar untuk publikasi elektronik dan internet. 22 Format file ini mampu menyimpan animasi dua dimensi yang akan dipublikasikan pada internet, desain halaman web dan juga publikasi elektronik. Format file ini mampu mengkompres dengan ukuran kecil. Format file GIF ( Graphic Interchange Format ) ini merupakan format file yang paling banyak disarankan dan digunakan. Adapun kelebihan dari format GIF ini antara lain : • Ukuran file yang dihasilkan relatif kecil. • Mampu menggabungkan beberapa gambar menjadi satu kesatuan dan menampilkannya secara bergantian ( animasi ). • Warna latar belakang ( background ) dapat dibuat transparan. • Adanya teknologi Interlacing yang akan membuat sebuah file diload secara utuh dengan kualitas yang ditampilkan secara bertahap. 4. Portable Network Graphic ( PNG ) Format file PNG ini berfungsi sebagai alternatif lain dari format file GIF. Format file ini digunakan untuk menampilkan objek dalam halaman web. Kelebihan dari format file ini jika dibandingkan dengan format file GIF adalah kemampuannya untuk menyimpan file dalam bit depth hingga 24 bit serta mampu untuk menghasilkan latar belakang ( background ) yang transparan dengan pinggiran yang halus. 23 Beberapa kelebihan yang dimiliki oleh format PNG ( Portable Network Graphic ) ini adalah • Mempunyai semua kelebihan yang dimiliki oleh format file GIF ( Graphic Interchange Format ), kecuali animasi. • Fitur Interlacing 2 dimensi yang terbukti lebih baik jika dibandingkan dengan interlacing milik GIF. • Tersedianya 2 format file yaitu PNG8 ( 256 warna ) dan PNG24 yang membuat designer dapat lebih leluasa memilih kualitas gambar. Akan tetapi, format file ini juga memiliki kelemahan yaitu file yang lebih besar dari format lain sehingga ketika browser memuatnya dibutuhkan waktu yang relatif lebih lama dibanding gambar berformat jpg. ( Iin Aryani, 2008 ) 2.8 Citra Gray Scale Suatu citra yang ditampilkan dari citra jenis ini terdiri dari warna abu-abu, yang bervariasi pada warna hitam di bagian yang memiliki intensitas terlemah, dan bervariasi pada warna putih di bagian yang memilki intensitas terkuat. Citra grayscale berbeda dengan citra hitam-putih, yang di mana pada konteks komputer, citra hitam-putih hanya terdiri dari dua warna saja, yaitu warna hitam dan warna putih saja. Pada citra grayscale warna bervariasi antara hitam dan putih, tetapi variasi warna di antaranya juga sangat banyak. Sebuah citra grayscale merupakan perhitungan dari intensitas cahaya pada setiap pixel pada spektrum single band. 24 Suatu citra grayscale disimpan ke dalam format 8 bit untuk setiap sampel pixel, sehingga intensitas yang memungkinkan adalah sebanyak 256 intensitas. Format ini sangat membantu dalam pemrograman karena manipulasi bit yang tidak terlalu banyak. Untuk mengubah citra berwarna yang memiliki nilai matriks masing-masing R, G, dan B menjadi citra grayscale dengan nilai X, maka konversi dapat dilakukan dengan mengambil rata-rata dari nilai R, G, dan B. ( Rambe, 2011 ) 2.9 Deteksi Tepi Menurut Tharom ( 2003 ), pengenalan tepi di bagian cahaya dan bayangan pada sebuah gambar yang ditangkap oleh kamera merupakan prasyarat yang diperlukan untuk semua teknik yang melibatkan deteksi, pengukuran, ataupun pengolahan sebuah objek. Oleh karena itu, teknik pendeteksian tepi merupakan kepentingan ekonomi yang utama. Dalam pengolahan citra industri, seluruh blok yang disebutkan di atas merupakan teknik yang digunakan. Di sini, titik pusat adalah untuk mendeteksi apakah ada keunggulan di daerah yang diuji dan untuk melokalisasi tepi ketika diketahui ada keunggulan tersebut. Salah satu metode yang paling sering digunakan dalam pendeteksian tepi langsung dari citra skala abu-abu adalah didasarkan pada model yang sebelumnya telah ditentukan tepinya. Biasanya, scan untuk tepi dalam model tertentu terjadi sepanjang tepi pemindaian garis dalam arah tertentu. Dua arah tepi dibedakan menjadi rising edge dan falling edge. Disebut falling edge adalah ketika pada profil skala abu-abu berjalan dari sisi yang terang ke sisi yang gelap. Jika tidak, maka disebut rising edge. 25 Sebuah teknik yang khas menggunakan parameter berikut : • Tinggi edge Untuk mendeteksi tepi secara valid, harus ada perbedaan minimum nilai skala abu-abu sepanjang garis pemindaian. Inilah yang disebut puncak tepi. • Panjang edge Nilai dari panjang tepi menjelaskan tentang panjang yang harus ada dan perbedaan minimum nilai skala abu-abu ditentukan oleh ketinggian tepi. Tepi ( Edge ) merupakan sejumlah tempat pada citra dengan intensitas kontras yang kuat, yang di mana intensitas kecerahannya dapat berubah secara drastis. Tepi biasanya muncul pada lokasi citra yang merepresentasikan batasan sebuah objek. Dalam sebuah objek berdimensi satu, suatu perubahan dapat diukur dengan menggunakan fungsi turunan ( derrivative function ). Perubahan dikatakan mencapai maksimun jika pada saat nilai turunan pertamanya telah mencapai nilai maksimum atau nilai dari turunan keduanya ( second derrivative ) bernilai nol. Gambar 2.3 Perubahan intensitas tepi 26 Profil dari gambar intensitas tepi adalah sebagai berikut : • Step Edges • Root Edge • Line Edge Gambar 2.4 Intensitas tepi Edge detection ( deteksi tepi ) merupakan suatu operasi yang dijalankan untuk dapat mendeteksi garis-garis tepi yang membatasi dua wilayah ( region ) dari citra homogen yang memiliki tingkat kecerahan yang berbeda. Pendeteksian tepi pada sebuah citra merupakan suatu proses yang dapat menghasilkan tepi-tepi dari beberapa objek citra, yang tujuannya adalah sebagai berikut : • Untuk menandai bagian yang menjadi detail dari sebuah citra • Untuk memperbaiki detail dari sebuah citra yang kabur atau kurang jelas, yang terjadi karena adanya error atau adanya efek dari sebuah proses akuisisi citra 27 • Untuk meningkatkan penampakan garis batas dari suatu daerah atau objek di dalam sebuah citra Gambar 2.5 Contoh pendeteksian tepi • Dan juga untuk mengubah sebuah citra 2D menjadi suatu bentuk kurva Sebuah titik (x,y) dapat dikatakan sebagai tepi dari suatu citra jika pada titik tersebut memiliki perbedaan yang tinggi dengan sebelahnya. Sebuah tepi mengandung sebagian besar dari komponen berfrekuensi tinggi. Oleh karena itu, secara teori, proses pendeteksian tepi dapat dilakukan dengan menggunakan filter dengan frekuensi yang tinggi dalam domain Fourier. Atau dengan kata lain, pendeteksian tepi dilakukan dalam domain spasial karena memiliki komputansi yang lebih sederhana, cepat, dan sering memberikan hasil yang lebih baik. Proses pendeteksian tepi dapat dikelompokkan berdasarkan operator atau metode yang digunakan dalam proses deteksi tepi sebuah citra agar memperoleh citra hasil. 1. Metode Robert Metode Robert adalah nama lain dari teknik diferensial pada horizontal dan pada arah vertikal, dengan menambahkan proses konversi biner setelah dilakukan diferensial. 28 Teknik konversi biner yang disarankan adalah konversi biner dengan meratakan distribusi warna hitam dan warna putih. Metode Robert menggunakan matriks yang berukuran 2 x 2 : 1⎤ ⎡1 H =⎢ ⎥ ⎣− 1 − 1⎦ Gradient magnitude dari operator Robert ini adalah sebagai berikut : G f (i, j ) = f (i, j ) − f (i + 1, j + 1) + f (i + 1, j ) − f (i, j + 1) Karena operator Robert hanya menggunakan convolution mask yang berukuran 2 x 2, maka operator Robert sangat sensitif terhadap adanya noise. 2. Metode Sobel Metode ini merupakan pengembangan dari metode Robert dengan menggunakan filter HPF ( High Pass Filter ) yang diberi satu angka nol penyangga. Operator ini mengambil prinsip dari fungsi laplacian dan gaussian yang dikenal sebagai fungsi untuk membangkitkan HPF. Adapun karakter dari High Pass Filter ( HPF ) adalah sebagai berikut : ∑∑ H ( x, y) = 0 y x Contohnya saja, sebuah fungsi citra f(x,y) adalah sebagai berikut : 29 Kemudian, dengan menggunakan filter HPF ( High Pass Filter ) : H ( x, y ) = [− 1,1] Maka hasil filternya adalah sebagai berikut : Jika digambarkan, maka input dan output dari proses filter di atas adalah sebagai berikut: Gambar 2.6 Input dan output proses filter Proses yang digunakan pada operator Sobel ini merupakan proses dari sebuah konvolusi yang telah ditetapkan terhadap citra yang terdeteksi. Kelebihan dari metode Sobel ini adalah kemampuannya untuk mengurangi noise sebelum melakukan perhitungan deteksi tepi. Operator Sobel menggunakan kernel filter dari matriks yang berukuran 3 x 3, yaitu : 2 1⎤ ⎡1 ⎢ H =⎢0 0 0 ⎥⎥ ⎣⎢− 1 − 2 − 1⎦⎥ ⎡1 0 − 1 ⎤ V = ⎢⎢2 0 − 2⎥⎥ ⎣⎢1 0 − 1⎥⎦ 30 Operator Sobel melakukan pendeteksian tepi dengan memperhatikan tepi vertikal dan tepi horizontal. Gradient magnitude dari operator Sobel ini adalah sebagai berikut : G x = f (i − 1, j − 1) + 2 f (i − 1, j ) + f (i − 1, j + 1) − f (i + 1, j − 1) + 2 f (i + 1, j ) + f (i + 1, j + 1) G y = f (i − 1, j − 1) + 2 f (i, j − 1) + f (i + 1, j − 1) − f (i − 1, j + 1) + 2 f (i, j + 1) + f (i + 1, j + 1) G f ( x, y ) = G x + G y 2 2 Operator Sobel digunakan untuk mencari skala absolut rata-rata pada tiap titik pada gambar grayscale. Tiap matriks pada operator Sobel adalah hasil rotasi 90 derajat terhadap matriks lainnya, dengan kata lain, saling tegak lurus satu sama lain. Gx merupakan estimasi besar gradien pada arah x. Sedangkan Gy merupakan estimasi besar gradien pada arah y. Pencarian gradien magnitude citra untuk melihat daerah-daerah yang memiliki turunan spasial yang tinggi. 2.10 Thresholding Menurut Evan Yovianto ( 2010 ), Thresholding merupakan suatu proses mengubah citra yang berderajat keabuan menjadi citra biner atau hitam putih, sehingga dapat diketahui daerah mana yang termasuk obyek dan background dari sebuah citra yang jelas. Pada proses thresholding, akan mengubah nilai dari suatu gambar menjadi bi-level image yaitu hitam ( 0 ) untuk latar belakang ( background ) dan putih ( 255 ) untuk obyeknya, ataupun sebaliknya. Suatu citra hasil thresholding biasanya akan digunakan lebih lanjut untuk proses pengenalan obyek serta ekstraksi fitur. 31 Secara umum, proses binerisasi dari sebuah citra grayscale untuk menghasilkan sebuah citra biner adalah sebagai berikut : g (x, y) = {1 if f (x, y) >= T} g(x, y) = {0 if f (x, y) < T} dengan g(x,y) merupakan sebuah citra biner dari citra grayscale f(x,y) dan T menyatakan nilai ambang ( threshold ). Metode thresholding dibagi menjadi 2 jenis, yaitu : 1. Thresholding Global Thresholding jenis ini dilakukan dengan mempartisi suatu histogram dengan menggunakan sebuah threshold ( batas ambang ) global T, yang berlaku untuk seluruh bagian citra. T = T{f(x,y)}, dengan T tergantung pada nilai gray level dari pixel pada posisi x,y. 2. Thresholding Adaptif Thresholding jenis ini dilakukan dengan membagi sebuah citra menggunakan beberapa sub citra. Kemudian pada setiap sub citra, proses segmentasi dilakukan dengan menggunakan nilai threshold yang berbeda. Nilai dari sebuah threshold dapat ditentukan dengan beberapa cara, seperti : metode Itterative Selection, metode Onsu ( global thresholding ), dan juga dengan menggunakan metode Local Thresholding. Pada metode Itterative Selection, nilai threshold ditentukan dengan cara menghitung nilai rata-rata dari pixel background (Tb) 32 dan juga dari pixel object ( To ) pada sebuah image. Dengan menggunakan rata-rata dari kedua nilai pixel tersebut, maka didapat nilai thresholdnya. Rumus yang dipakai dalam perhitungan ini adalah : T= (To + Tb) 2 Contoh dari hasil thresholding RGB adalah sebagai berikut : Gambar 2.7 Hasil thresholding RGB 2.11 Kalibrasi Kamera Menurut Giri Wahyu ( 2011 ), proses kalibrasi kamera dilakukan untuk mendapatkan beberapa nilai parameter dari sebuah kamera digital yang digunakan untuk melakukan proses rekonstruksi objek 3D dari gambar 2D. Parameter-parameter yang dibutuhkan ini adalah matriks intrinsik dan matriks ekstrinsik yang akan digunakan untuk dapat melakukan perhitungan. Hal ini dilakukan agar dapat ditentukan letak dari suatu benda di dalam ruang tiga dimensi. 33 Parameter dari matriks intrinsik terdiri dari 4 unsur, yaitu : • Nilai fokus kamera Jarak antara lensa kamera dengan bidang gambar. • Titik pusat proyeksi Lokasi titik tengah gambar dalam pixel koordinat. • Ukuran pixel efektif • Koefisien distorsi Koefisien tingkat kelengkungan lensa yang meliputi radial dan tangensial distorsi. Matriks intrinsik dapat dirumuskan dengan : ⎡ fx Wint = ⎢⎢ 0 ⎢⎣ 0 Cx ⎤ fy Cy ⎥⎥ 0 1 ⎥⎦ 0 K = [k1 k 2 p1 p 2] Di mana, fx, fy = nilai fokus kamera Cx, Cy = titik tengah k1, k2 = distorsi radial p1, p2 = distorsi tangensial Sedangkan nilai parameter ekstrinsik terdiri dari dua buah matriks, yaitu matriks translasi dan matriks rotasi. Parameter ekstrinsik ini menggambarkan orientasi posisi dari kamera terhadap sistem koordinat sebenarnya dalam ruang tiga dimensi atau world coordinate. 34 Matriks rotasi : ⎡ r11 R = ⎢⎢r21 ⎢⎣r31 r12 r22 r32 r13 ⎤ r23 ⎥⎥ r33 ⎥⎦ Matriks translasi : ⎡ t1 ⎤ T = ⎢⎢t 2 ⎥⎥ ⎢⎣t 3 ⎥⎦ 2.12 Pseudocode Menurut Hendrat ( 2011 ), pseudocode adalah suatu kode atau tanda yang menyerupai ( pseudo ) atau merupakan penjelasan cara menyelesaikan suatu masalah. Pseudocode sering digunakan untuk menuliskan algoritma dari suatu permasalahan, yang berisikan langkah-langkah untuk menyelesaikan suatu permasalahan ( hampir sama dengan algoritma ), hanya saja bentuknya sedikit berbeda dari algoritma. Pseudocode menggunakan bahasa yang hampir menyerupai bahasa pemrograman. Selain itu biasanya pseudocode menggunakan bahasa yang mudah dipahami secara universal dan juga lebih ringkas daripada algoritma. Dalam penulisan algoritma dan juga pseudocode tidak ada aturan yang mengikat, karena kedua hal ini berguna untuk memudahkan dalam menggambarkan suatu urutan kejadian dan sebagai dasar dari alur pembuatan program, sehingga dapat lebih mudah dipahami. 35 2.13 C Sharp ( C# ) Merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. C# adalah salah satu dari banyak bahasa yang bisa dipakai untuk pemrograman .NET. Kelebihan utama bahasa ini adalah sintaksnya yang mirip C, namun lebih mudah dan lebih bersih. C# sebagai bahasa pemrograman untutk Framework .NET memiliki ruang lingkup penggunaan yang sangat luas. Pembuatan program dengan user interface Windows maupun console dapat dilakukan dengan C#. Karena Framework .NET memberikan fasilitas untuk berinteraksi dengan kode yang unmanaged, penggunaan library seperti DirectX 8.1 dan OpenGL dapat dilakukan. C# juga dapat digunakan untuk pemrograman web site dan web service. ( Agro Rahmatullah, 2002, p. 14 ) 2.14 Metode Waterfall Menurut Nur Ichsan ( 2010 ), metode Waterfall merupakan sebuah model perancangan software secara sekuensial, dimana proses perancangan tersebut mengalir secara teratur ke bawah, sehingga terlihat seperti air terjun. Keuntungan Metode Waterfall, yaitu : • Kualitas dari sistem yang dihasilkan akan baik. Ini dikarenakan oleh pelaksanaannya secara bertahap, sehingga tidak terfokus pada tahapan tertentu saja. 36 • Dokument pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya. Jadi setiap fase atau tahapan akan mempunyai dokumen tertentu. Kelemahan dari metode Waterfall yaitu : • Diperlukan majemen yang baik, karena proses pengembangan tidak dapat dilakukan secara berulang sebelum terjadinya suatu produk. • Kesalahan kecil akan menjadi masalah besar jika tidak diketahui sejak awal pengembangan. • Pelanggan sulit menyatakan kebutuhan secara eksplisit sehingga tidak dapat mengakomodasi ketidakpastian pada saat awal pengembangan. Gambar 2.8 Metode Waterfall 37 Seperti yang terlihat pada Gambar 2.8, proses perancangan program bergerak dari atas ke bawah seperti air terjun. Di dalam model Waterfall, fase-fasenya adalah sebagai berikut : o Analisis Spesifikasi Kebutuhan o Desain o Implementasi o Integrasi o Pengetesan dan Debugging (verifikasi) o Instalasi o Perawatan 2.15 UML ( Unified Modeling Language ) Menurut Henderi ( 2007 ), Unified Modeling Language ( UML ) adalah sebuah bahasa pemodelan yang telah menjadi standar dalam industri software untuk visualisasi, merancang, dan mendokumentasikan sistem perangkat lunak. Bahasa Pemodelan UML lebih cocok untuk pembuatan perangkat lunak dalam bahasa pemrograman yang berorientasi objek ( C++, C#, Java, VB.NET ), namun demikian tetap dapat digunakan pada bahasa pemrograman prosedural. UML merupakan salah satu alat bantu yang sangat handal dalam bidang pengembangan sistem berorientasi objek karena UML menyediakan bahasa pemodelan visual yang memungkinkan pengembang sistem membuat blue print atas visinya dalam bentuk yang baku. UML berfungsi sebagai jembatan dalam mengkomunikasikan 38 beberapa aspek dalam sistem melalui sejumlah elemen grafis yang bisa dikombinasikan menjadi diagram. UML mempunyai banyak diagram yang dapat mengakomodasi berbagai sudut pandang dari suatu perangkat lunak yang akan dibangun. Diagramdiagram tersebut digunakan untuk : 1. Mengkomunikasikan sebuah ide 2. Melahirkan ide-ide dan peluang-peluang baru 3. Menguji sebuah ide dan membuat prediksi 4. Memahami struktur dan relasi-relasinya Berikut ini adalah penjelasan mengenai berbagai diagram UML serta tujuannya: 1. Model Use Case Diagram Use Case Diagram secara grafis menggambarkan interaksi antara sistem, sistem eksternal, dan pengguna. Dengan kata lain Use Case diagram secara grafis mendeskripsikan siapa yang akan menggunakan sistem dan dalam cara apa pengguna ( user ) mengharapkan interaksi dengan sistem itu. Use Case secara naratif digunakan untuk secara tekstual menggambarkan sekuensi langkahlangkah dari setiap interaksi. 39 2. Diagram Interaksi Diagram interaksi memodelkan sebuah interaksi yang terdiri dari satu set objek, hubungan-hubungannya, dan pesan yang terkirim di antara objek. Model diagram ini memodelkan behavior ( kelakuan ) sistem yang dinamis dan UML memiliki dua diagram untuk tujuan ini, yaitu: a. Diagram rangkaian/Sequence Diagram: secara grafis menggambarkan bagaimana objek berinteraksi dengan satu sama lain melalui pesan pada sekuensi sebuah use case atau operasi. Diagram ini mengilustrasikan bagaimana pesan terkirim dan diterima di antara objek dan dalam sekuensi atau timing apa. b. Diagram kolaborasi/Collaboration Diagram: serupa dengan diagram rangkaian/sekuensi, tetapi tidak fokus pada timing atau sekuensi pesan. Diagram ini justru menggambarkan interaksi (atau kolaborasi) antara objek dalam sebuah format jaringan. 2.16 Metode Algoritma GVC ( Generalize Voxel Coloring ) GVC (Generalized Voxel Coloring) merupakan suatu metode untuk merekonstruksi sebuah obyek 3D dari beberapa gambar 2D. Secara umum, metode ini dibagi menjadi 2 jenis metode, yaitu metode GVC dengan item buffer (GVC-IB) dan GVC dengan layered depth images (GVC-LDI). Perbedaan dari kedua metode ini adalah penggunaan memori dan juga waktu proses. Pada metode GVC-IB, memori yang digunakan lebih sedikit akan tetapi prosesnya akan menjadi lebih lama. Sedangkan pada 40 metode GVC-LDI, memori yang digunakan lebih besar tetapi waktu prosesnya akan menjadi lebih cepat jika dibandingkan dengan metode GVC-IB. Sebuah pendekatan dari garis-garis yang berbeda adalah foto-konsistensi dengan menggunakan algoritma pewarnaan voxel ( Voxel Coloring ), dikemukakan oleh Seitz dan Dyer. Masalah dalam pewarnaan voxel ini adalah dengan menetapkan warna ( radiance ) untuk voksel ( point ) yang ada di dalam volome 3D sehingga dapat memaksimalkan konsistensi foto dengan satu set gambar input. Maksudnya adalah rendering voksel berwarna dari setiap sudut pandang input yang harus mereproduksi gambar asli sedekat mungkin. Dengan menggunakan gagasan foto-konsistensi, foto yang tidak ada di permukaan secara otomatis diukir di dalam proses. Sebuah foto-konsistensi menyiratkan bahwa voxel warna harus serupa di semua pandangan di mana objek terlihat. Oleh karena itu, tanpa efek kebisingan atau kuantisasi, sebuah foto dengan voxel yang konsisten seharusnya memiliki satu set piksel dengan nilai warna yang sama. Konsistensi satu set warna dapat didefinisikan sebagai suatu standar deviasi. Algoritma pewarnaan voxel dimulai dengan volume rekonstruksi voxel awal yang buram yang mencakup obyek yang akan direkonstruksi. Voxel yang dilalui dalam urutan jarak yang meningkat dari volume kamera. Setiap voxel buram diproyeksikan di dalam gambar dan diuji konsistensinya. Gambar yang ditemukan tidak konsisten, akan dibuat transparan. Tes konsistensi dinyatakan oleh ambang batas di variasi warna dalam gambar yang akan diproyeksikan. Ambang batas sesuai dengan kesalahan dari korelasi maksimum yang diijinkan. Sebuah nilai ambang batas ( kecil ) yang terlalu konservatif, 41 hasil dalam rekonstruksi menjadi akurat, tetapi tidak lengkap. Di sisi lain, nilai ambang batas yang besar dapat menghasilkan sebuah rekonstruksi yang lebih lengkap, tetapi satu hasil yang mencakup beberapa voxel bisa menjadi salah. Dalam prakteknya, ambang batas harus dipilih sesuai dengan karakteristik yang diinginkan dari model yang akan direkonstruksi, baik dalam hal akurasi maupun dalam hal kelengkapan. Algoritma akan berhenti bila semua voksel buram yang terisisa adalah foto yang konsisten. Pada voxel akhir, warna yang ada pada gambar masukan diproses, maka akan membentuk sebuah model yang mirip dengan obyek yang direkonstruksi. Hasil dari pendekatan pewarnaan voxel yang sangat baik adalah dengan diberikan volume pada obyek rekonstruksi yang cukup berwarna-warni. Namun, pendekatan ini hanya merekonstruksi salah satu obyek yang memiliki konsistensi dengan gambar masukannya. Oleh karena itu, rentan terhadap masalah yang disebabkan oleh citra di daerah yang yang warnanya seragam. Daerah ini menyebabkan katup di dalam proses rekonstruksi, karena pewarnaan voxel menghasilkan hasil rekonstruksi untuk volume kamera. Dengan demikian, hasil rekonstruksi wilayah ( region ) dengan warna yang sama akan bias. Terdapat dua gambar dari sebuah obyek, yang menggunakan interpolasi untuk membuat gambar baru dalam sudut pandang menengah di antara gambar-gambar yang diinput. Karena tidak ada informasi 3D mengenai obyek, maka tidak dapat secara umum membuat gambar yang tepat benar, meskipun hasilnya sering terlihat meyakinkan. ( W. Bruce Culbertson dan Thomas Malzbender, 2000, p. 3 )