Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
PERANCANGAN PERANGKAT LUNAK RED EYE REDUCTION DENGAN TEKNIK INTENSITY COLOR CHECKING Oleh : SUDI SURYADI Dosen Prodi Manajemen Informatika, AMIK Labuhanbatu Rantauprapat, Medan;
[email protected]
ABSTRAK Read eye merupakan permasalahan dalam fotografi. Penyebabnya adalahpencahayaan yang tinggi. Bentukn berupa titik merah pada bagian pupil mata , sehingga hasil foto dianggap tidak bagus. Terdapat teknik untuk menghilangkan red eye yaitu intensity color checking. Teknik ini menghilangkan red eye dengan cara penyesuaian intensitas warna berdasarkan warna pixel yang akan direduksi warna kemerahannya. Perangkat lunak yang dirancang dapat dipakai untuk menghilangkan red eye yang sering dihasilkan pada pemotretan gambar menggunakan kamera. Dengan menggunakan teknik intensity color checking maka proses penggantian warna merah pada bagian red eye gambar terlihat halus dan bagus. Bagian red eye reduction ini hanya dapat diterapkan pada suatu region titik tertentu pada citra dengan menginput radius dari titik untuk menentukan daerah yang akan dihilangkan red eye-nya Keyword : red eye, aplikasi, perangkat lunak, reduction, teknik, intensity, color, checking.
2. Permasalahan adalah penentuan nilai dasar warna menggantikan pixel yang membentuk red eye. 3. Algoritma yang digunakan dalam implementasi program.
I. PENDAHULUAN 1.1. Latar Belakang Pemilihan Judul Read eye merupakan permasalahan dalam fotografi. Penyebabnya adalahpencahayaan yang tinggi. Bentukn berupa titik merah pada bagian pupil mata , sehingga hasil foto dianggap tidak bagus. Terdapat teknik untuk menghilangkan red eye yaitu intensity color checking. Teknik ini menghilangkan red eye dengan cara penyesuaian intensitas warna berdasarkan warna pixel yang akan direduksi warna kemerahannya. Berdasarkan uraian diatas maka penulis merancang sebuah perangkat lunak sebagai bahan penelitian dengan judul “ Perancangan Perangkat Lunak Red Eye Reduction dengan Teknik Intensity Color Checking “. 1.2 Perumusan Masalah 1. Citra direpresentasi dalam matriks.
1.3 Tujuan dan Manfaat Penulisan Adapun tujuan dari penelitian ini adalah untuk merancang dan membangun suatu perangkat lunak red eye removal pada citra computer.dalam pemrosesan citra digital. 1.4 Pembatasan Masalah Oleh karena adanya keterbatasan pengetahuan dan kemampuan penulis maka dibuat batasan-batasan sebagai berikut : 1. Jenis format file citra yang dapat diubah adalah format *BMP,*. JPG,*.GIF,*.WMP. 2. Perangkat lunak dibuat dirancang dengan menggunakan bahasa pemrograman Visual Basic 6.0.
bentuk
65
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
3. File citra hasil hanya dapat disimpan dalam format bitmap (*.BMP). 4. Semua citra yang mengandung red eye hanya dapat diubah menjadi warna hitam keabuan (gray). 5. Untuk menghaluskan citra hasil maka dipergunakan efek blur.
Grafika Komputer banyak melakukan proses yang bersifat sintesis yang mempunyai citra data masukan berbentuk deskriptif dengan keluaran hasil proses yang berbentuk citra. Sebagai contoh adalah proses penggambaran perpektif tiitik-titik yang berbentuk objek tersebut, kemudian melalui proses transformasi tiga dimensi manghasilkan gambar objek tiga dimensi sebagai hasil keluarannya. Contoh aplikasi dari teknik Grafika Komputer ini banyak dijumpai pada proses desain di bidang engineering dan banyak pula ditemui di bidang seni [MUN04]. Computer Vision merupakan proses analisis citra yang cirinya merupakan kebalikan dari Grafika Komputer. Data masukan biasanya merupakan suatu citra atau gambar dan proses yang dilakukan adalah proses pengalian struktur dan hasil keluaran yang bersifat deskriptif. Sebagai contoh, pengenalan jenis penyakit paru-paru melalui citra sinar –x pada penderita [MUN04]. Pengolahan Citra merupakan proses pengolahan dana analisis citra yang banyak melibatkan persepsi visual. Proses ini mempunyai ciri data masukan dan informasi keluaran yang berbentuk citra. Dalam kenyataanya, batas antara ketiga bidang studi diatas sulit untuk ditentukan. Sebagai contoh, dalam proses pembuatan film animasi, objek dan proses animasinya diciptakan dengan teknik Grafika Komputer sedangkan pembuatan latar belakangnya dapat dilakukan dengan teknik Pengolahan Citra. Pembauran antara penggunaan teknik Pengolahan Citra dan Grafika Komputer juga dapat dilihat pada proses penggabungan peta tematik dan peta kontur. Contoh lain, pada proses pengenalan objek yang terkandung pada suatu citra di mana poroses segmentasi yang diperlukan merupakan bagian dari teknik Pengolahan Citra dan proses pengenalan objeknya merupakan bagian dari teknik Computer Vision [MUN04].
1.5 Metodologi Penyelesaian Masalah Langkah-langkah yang ditempuh untuk menyelesaikan di atas adalah Sebagai berikut : 1. Mempersiapkan citra yang memiliki red eye. 2. Mengimplementasi program red eye removal dengan teknik intensitycolor checking. 3. Menguji program dengan input citra pada point pertama. 4. Melakukan analisis perhitungan dengan Euclidean Distance. II. LANDASAN TEORI 2.1 Pengolahan citra Grafika Komputer, Pengolahan Citra dan Pengenalan Pola merupakan tiga bidang studi utama yang menangani pengolahan data berbentuk gambar atau citra. Pengenalan Pola sering merupakan bagian dari Pengolahan Citra seperti pada proses klasifikasi. Sehingga ketiga bidang studi tersebut kemudian diubah menjadi Grafika komputer, Pengolahan Citra, dan Computer Vision, di mana Pengenalan Pola menjadi bagian dari Pengolahan Citra dan juga bagian dari Computer Vision. Hubungan ketiga bidang studi tersebut diperlihatkan pada gambar 2.1 [MUN04]
2.1.1
Proses Pengolahan Citra Proses Pengolahan citra (Image Processing) terdiri dari transformasi citra (Image Transformation), filtering, segmentasi citra (Image Segmentation) , klasifikasi citra
Gambar 2.1 Hubungan antara Pengolahan Citra, Grafika Komputer dan Computer Vision
66
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
(Image Classification), dan kompresi citra (Image Compression). Proses pengolahan citra diperlihatkan pada gambar 2.2 [MUN04].
Klasifikasi citra didefinisikan sebagai teknik ekstraksi dari kelas-keles yang berbeda seperti pengelempokan daratan atau perairan yang datanya diperoleh dari satelit. Satu unit klasifikasi dapat berupa satu piksel, kumpulan piksel atau satu citra secara keseluruhan [MUN04]. Kompresi citra adalah pemadatan ukuran file citra, di mana citra tersebut disimpan dalam suatu format yang mengggunakan formula matematika untuk menganalisis dan menyimpan data atau informasi citra yang didalamnya seperti panjang, lebar, kedalam warna, atau informasi lainnya. Tujuan dari pemadatan data citra (kompresi citra) adalah mengurangi jumlah bit yang digunakan untuk menyimpan citra, dengan usaha semaksimum mungkin tidak terjadi penurunan mutu citra aslinya [MUN04]. 2.1.2 Kegunaan Pengolahan Citra Dalam kehidupan sehari-hari, pengolahan citra memegang peranan yang cukup penting walaupun kita tidak menyadarinya secara langsung. Pengolahan citra adalah memproses suatu gaambar sehingga menghasilkan gambar lain yang sesuai dengan keinginan kita. Adapun pemakaian pengolahan citra dalam sehari-hari adalah sebagai berikut [GON92] 1. Dalam Dunia fotografi dan perfilman. Pengolahan citra paling banyak digunakan dalam dunia fotografi dan perfilman. Pengolahan citra dimanfaatkan untuk menghaluskan gambar, membuat gambar menjadi kasar, menerangkan gambar, mempergelap gambar. Misalnya dalam menayangkan acara criminal, terkadang wajah orang tersebut dibuat menjadi kotak-kotak. Dalam dunia fotografi, pengolahan citra digunakan sebagai pengganti kamera filter. Filter kamera dalam dunia fotografi ini biasanya digunakan untuk membuat film hitam putih, membuat efek berkabut, juga pemberian cahaya pada bagian tertentu dari foto. 2. Dalam ilmu kedokteran Pengolahan citra digunakan terutama untuk memperjelas hasil x-ray organ tubuh manusia. Gambar yang didapat dari x-ray umumnya kabur sehingga sulit bagi para dokter untuk
Gambar 2.2 Proses Pengolahan Citra Transformasi citra adalah suatu proses perubahan dan perpindahan citra, yang meliputi proses perpindahan posisi citra, perubahan bentuk citra, ukuran citra dan perubahan isi citra. Tranformasi citra ini terdiri dari transfourmasi dasar gusuran (shearing) serta transformasi lanjutan yang meliputi transformasi Fourier dan transformasi Wavelet [MUN04]. Proses pengolahan citra umumnya menggunakan proses filtering untuk memperoleh hasil pengolahan yang diinginkan. Peningkatan mutu citra (Image Enhancement) merupakan pengolahan citra dengan menggunakan proses filtering untuk memberikan efek-efek tertentu pada suatu citra, seperti efek transparant, comic, night, emboss dan sebagainya. Proses pengolahan citra yang lain yang menggunakan proses filtering adalah perbaikan citra (Image Restoration) merupakan suatu proses yang dilakukan di mana suatu citra yang telah mengalami penurunan/degradasi dikembalikan ke bentuk citra aslinya. Penurunan tingkat/mutu citra dapat disebabkan oleh beberapa hal seperti penurunan tingkat kontras suatu citra yang menyebabkan citra tersebut gsulit dibedakan, ncitra yang mengalami tingkat ketajaman sehingga menjadi lebih kabur dari citra aslinya, maupun citra yang mengalami kerusakan seperti rusak karena robekan, lipatan, timbulnya bintik-bintik/spot dan lain-lain [MUN04] Segmentasi citra adalah bagian dari teknik pengolahan citra. Segmentasi citra merupakan proses pengindetifikasian pikselpiksel ke dalam suatu kelas.
67
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
menganalisa kelainan-kelainan yang terdapat pada organ tubuh tersebut. Dengan pengolahan citra, gambar tersebut dapat diperjelas. 3. Dalam bidang teknologi dan komunikasi Data gambar yang biasanya didapat dari satelit cuaca yang memfoto permukaan bumi ataupun satelit penyelidik yang memfoto planet-planet pada umumnya hamper tidak dapat dilihat. Hal ini disebabkan pada saat foto tersebut dikirim ke stasiun bumi melalui gelombang, terjadi baanyak gangguan di dalam perjalanan.gangguan ini disebabkan oleh gelombang-gelombang lain seperti gelombang radio, televise dan lain-lain yang bercampur dengan gelombang data tersebut. Pengolahan citra dilakukan pada foto yang diterima di stasiun bumi untuk menghilangkan gangguan (noise) tersebut, sehingga gambar tersebut dapat dilihat dengan jelas. 4. Dalam dunia game Dalam pembuatan game, pengolahan citra digunakan untuk menciptakan efek-efek seperti bayangan di atas permukaan air, tampilan yang kabur karena terkena angin, transparansi, percahayaan dan lain-lainnya. 5. Dalam ilmu geografi Ahli geografi memanfaatkan pengolahan citra untuk mempelajari pola-pola polusi udara, pemetaan pembukaan atau penutupan lahan. Pemetaan dan monitoring lahan pertanian, manajemen sumber daya pantai dan kelautan, eksplorasi bahan tambang mineral, eksplorasi minyak bumi, manajemen sumber daya hutan, perencanaan pemukiman dan perubahannya, perencanaan bidang telekomunikasi, oseanografi fisik, pemetaan geologi dan topografi, pemetaan dan deteksi laut-laut es. 2.2 Pengertian Citra Citra adalah representasi dari sebuah objek. Citra merupakan dari titik-titik yang mempunyai intensitas tertentu membentuk satu kasatuan perpaduan. Citra yang baik adalah citra yang dapat menampilkan gambar yang dimaksud dengan seutuhnya, yang meliputi keindahan gambar, kejelasan gambar untuk penganalisaan dan maksud-maksud lainnya. Dengan kata lain, citra yang baik adalah citra
yang dapat menampilkan nilai artistik gambar tersebut dengan [GOM96]. 2.2.1 Citra Analog Analog berhubungan dengan hal yang berterusan (continu) dalam satu dimensi. Contohnya adalah bunyi. Bunyi diwakili dalam bentuk analog yaitu suatu gelombang. Hampir semua kejadian alam boleh diwakili sebagai perwakilan analog seperti bunyi, cahaya, air, elektrik, angin dan sebagainya. Data gambar yang digunakan dalam bentuk rekaman hard-copy dinamakan foto (citra analog). Foto direkam dalam dua dimensi pada photosensitive emulsions [GOM96]. Citra analog terdiri dari sinyal-sinyal frekuensi elektromagnetis yang belum dibedakan sehingga pada umumnya tidak dapat ditentukan ukurannya [GOM96]. 2.2.2 Citra Digital Citra digital merupakan suatu array dua dimensi ataumasi yang suatu matriks yang elemen-elemennya menyatakan tingkat keabuan dari elemen gambar. Jadi informasi Yang terkandung bersifat diskrit [GOM96]. Citra digital terdiri dari sinyal-sinyal frekuensi elektromagnetis yang sudah di sampling,dan ukuran piksel dari citra tersebut sudah dapat ditentukan. Sampling merupakan proses pembentukan citra digital dari citra analog. Suatu citra yang dicetak diatas kertas disebut dengan citra analog, citra analog tersebut di-scan dengan alat scanner maka akan terjadi citra digital. Dengan demikian, scanner merupakan alat sampling. Proses pembentukan digital dari citra analog diperlihatkan pada gambar 2.3 [GOM96].
Gambar 2.3 Pembentukan Citra Digital Dari Citra Analog Citra sebagai keluaran suatu system perekaman data bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televise, atau bersifat digital yang dapat langsung disimpan pada suatu peta magnetik. Menurut presisi yang digunakan untuk menyatakan titik-titik 68
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
koordinat pada domain spasial atau bidang dan untuk menyatakan nilai keabuan atau warna suatu citra, maka secara teoritis citra dapat dikelompokkan ke dalam empat kelas citra yaitu citra kontinu-kontinu, kontinu-diskrit diskrit-kontinu, dan diskrit-diskrit [GOM96]. Laber pertama menyatakan presisi dari titik-titik koordinat pada bidang citra dan label kedua menyatakan presisi nilai keabuan atau warna. Kontinu dinyatakan dengan presisi angka tak terhingga sedangkan diskrit dinyatakan demikian hanya citra dari kelas diskrit-diskrit yang dapat diolah dengan komputer. Citra dari kelas tersebut lebih dikenal dengan citra digital [GOM96]. 2.2.3 Representasi Citra Digital Semua citra dalam sistem komputer perlu dikodekan menggunakan system symbol diskrit. Sebuah citra digital a(x,y) yang diuraikan dalam sebuah ruang diskrit dua dimensi diperoleh dari sebuah citra analog dalam sebuah ruang kontinu melalui proses sampling ataupun digitasi. Sebuah citra digital dapat dianggap suatu matriks di mana baris dan kolomnya menunjukkan sebuah titik pada citra dan nilai elemen matriks menunjukkan warna pada titik tersebut. Elemen dari array digital tersebut disebut piksel atau picture elements (pixels) [GOM96]. Citra analog dibagi dalam N baris dan M kolom sehingga diperoleh citra digital a(x,y) dengan memberikan nilai diskrit bagi setiap titik. Pada umumnya, citra digital yang direpresentasikan dengan a(x,y) merupakan sebuah fungsi dari banyak variabel yang mencakup kedalaman / depth (z), warna / color (ℷ), dan waktu / time (t) atau dengan kata lain, representasi citra digital yang sebenarnya dilambangkan dengan a(x,y,z,ℷ,t). Representasi citra digital diperlihatkan pada gambar 2.4 [GOM96].
Resolusi gambar dikatakan sebagai bilangan piksel yang terkandung dalam citra digital. Pada resolusi tinggi, keterperincian data lebih nyata dan tajam. Pada citra dengan resolusi rendah yang berbeda diperlihatkan pada gambar 2.5 [GOM96].
Gambar 2.5. Tingkatan Resolusi Citra hitam putih adalah citra yang menggunakan 1 bit bagi perwakilan hitam putih di mana 0 bagi hitam dan putih bagi satu piksel dikenali sebagai binary image. Suatu cara hitam putih yang diwakili dengan beberapa nilai kekuatan cahaya berlainan dari hitam hingga putih dikenali sebagai grayscale image [GOM96]. Salah satu sistem yang digunakan untuk mewakili gambar yaitu sistem warna RGB (Red, Green, Blue). Sistem RGB adalah sistem yang menggabungkan warna primer gabungan (additive primary colours) untuk memperoleh gabungan-gabungan warna. Berikut ini adalah table warna yang merupakan gabungan warna primer [GOM96]. Tabel 2.1 Kode Warna
2.2.4 Konversi Citra Analog ke Citra Digital Komputer digital hanya dapat memproses suatu citra dalam bentuk digital. Citra digital dapat diperoleh secara otomatis dari sistem penangkap citra digital (digital image acquisition sytem atau digitizer) yang melakukan penjelajahan citra membentuk suatu matriks di mana elemen-elemen dari matriks tersebut menyatakan nilai intensitas
Gambar 2.4 Representasi Citra Digital
69
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
cahaya pada suatu himpunan diskrit dari titiktitik. Sistem tersebut merupakan bagian terdepan dari suatu sistem pengolah citra. Elemen-elemen dari sistem pengolah citra diperlihatkan pada gambar 2.6 [GOM96].
dikenal sebagai proses digitasi atau sampling. Pada digitasi atau sampling, dilakukan pembagian gambar kepada bagian kecil supaya dapat mewakili kandungan gambar. Pembagian dilakukan kepada segiempat kecil (grid) yang dipanggil piksel (picture element atau pixel). Setiap piksel adalah sampel gambar asal yang diambil dari domain ruang (spatial domain). Proses digitasi terhadap peta Mexico diperlihatkan pada gambar 2.8 [GOM96].
Gambar 2.6 dari Sistem Pengolahan Citra Sistem penangkap citra digital terdiri Dari tiga komponen dasar yaitu sensor citra yang bekerja sebagai pengukur intensitas cahaya, perangkat penjelajah yang bertugas merekam hasil pengukuran intensitas pada seluruh bagian citra dan pengubah analog ke digital yang mengubah harga kontinu menjaadi haarga diskrit sehingga dapat diproses oleh komputer [GOM96]. Citra digital tidak selalu merupakan hasil langsung data rekaman suatu sistem. Kadang-kadang hasil rekaman data bersifat kontinu seperti gambar pada monitor televise, foto sinar –x dan lain sebagainya dengan demikian untuk mendapatkan suatu citra digital diperlukan suatu proses konversi, sehingga citra tersebut selanjutnya dapat diproses dengan komputer. Sistem penangkapan citra digital diperlihatkan pada gambar 2.7 [GOM96].
Gambar 2.8 Proses Digitasi Proses yang diperlukan selanjutnya adalah proses kuantisasi. Dalam proses ini tingkat keabuan setiap piksel dinyatakan dengan suatu harga integer. Batas-batas harga integer atau besarnya daerah tingkat keabuan yang digunakan untuk menyatakan tingkat keabuan piksel akan menentukan resolusi kecerahan dari gambar yang diperoleh. Kalau digunakan 3 bit untuk menyimpan harga integer tersebut, maka akan diperoleh sebanyak 8 tingkat keabuan. Makin besar keabuan yang digunakan makin baik gambar yang akan diperoleh, karena kontinuitas dari tingkat keabuan akan semakin tinggi sehingga mendekati citra aslinya [GOM96]. 2.3 Format Citra Untuk menyimpan foto dan citra digunakan yang digunakan format citra layar kuadratis (berbentuk kotak) yang terdiri atas titik-titik citra kecil yang disebut dengan piksel (pixel). Piksel disebut juga dengan dot. Piksel berbentuk bujur sangkar dengan ukuran relatif kecil. Banyaknya piksel tiap satuan luas tergantung pada resolusi yang digunakan. Keanekaragaman warna piksel tergantung pada bit depth yang dipakai. Semakin banyak jumlah piksel tiap satu satuan luas, semakin baik kualitas citra yang dihasilkan dan tentu akan semakin besar ukuran file-nya [GON92]. Resolusi adalah jumlah piksel per satuan luas yang terdapat pada suatu citra. Satuan piksel yang sering dipakai adalah dpi
Gambar 2.7 Sistem Penangkap Citra Digital Untuk mengubah citra yang bersifat kontinu menjadi citra digital diperlukan proses pembuatan kisi-kisi arah horizontal dan vertikel, sehingga diperoleh gambar dalam bentuk array dua dimensi. Proses tersebut 70
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
(dot per inch) atau ppi (pixel per inch). Satuan dpi menentukan jumlah piksel yang ada setiap satu satuan luas. Dalam hal ini adalah satu inci kuadrat. Resolusi sangat berpengaruh pada detil dan perhitungan citranya. Jika suatu citra dengan luas 1 inci kuadrat dan jumlah dot adalah 60 x 60 (yang berarti mempunyai resolusi 3600 dpi) diperbesar menjadi 10 inci maka jumlah piksel tetap 3600 dpi, tetapi resolusinya berubah menjadi 3600:10 = 360 dpi. Hal ini menyebabkan citra menjadi kabur atau kasar [GON92]. Depth menentukan berapa banyak informasi warna yang tersedia untuk ditampilkan atau dicetak dalam setiap piksel. Semakin besar nilainya semakin bagus kualitas citra yang dihasilkan. Tentu ukurannya juga semakin besar. Misalkan suatu citra mempunyai bit depth = 1. Ini berarti hanya ada 2 kemungkinan warna (21 = 1) yang ada pada citra tersebut yaitu hitam dan putih. Bit depth = 24 berarti mempunyai kemungkinan warna 224 = 16,7 juta warna [GON92]. Bersama ukuran citra dan kedalaman warna, resolusi menentukan besarnya ukuran file citra. Sebuah format citra harus mampu menyatakan kualitas citra, ukuran file dan kompatibilitas dengan berbagai aplikasi. Saat ini tersedia ratusan format citra dan format baru terus dikembangkan. Setiap program pengolah citra pun biasanya memiliki format citra tersendiri [GON92]. 2.3.1 Format File Bitmap (BMP) Bitmap (BMP) merupakan format file standar untuk komputer-komputer yang menjalankan sistem operasi Windows dan OS/2. Format ini dapat dibuka oleh setiap program Windows. Informasi citra diletakkan piksel demi piksel. Oleh karena it, BMP terutama tepat untuk menyimpan citra asli (original image) dengan semua detailnya. Namun, dengan ukurannya yang besar, BMP tidak tepat untuk Internet, bahkan sama sekali tidak dapat dibaca oleh browser yang umum digunakan [GON92]. Kelebihan dari format Bitmap adalah sebagai berikut [GON92]: 1. Dibaca oleh semua program Windows Kedalaman warna dapat diatur dari 1
sampai 24-bit (maksimal 16,7 juta Warna). 2. Kelemahan dari format Bitmap adalah sebagai berikut : 1. Ukuran file sangat besar. 2. Tidak dapat dipublikasikan ke Internet. 2.3.2 Format File Bitmap (BMP) Format file BMP adalah sebagai berikut [GON92]:
Dimana : File Header : Berisi informasi sebagai berikut : File Type → ‘BM’ File Size → Ukuran file dalam byte. Info Header Berisi informasi sebagai berikut : Height → Tinggi gambar dalam satuan piksel. Bit Count → Jumlah bit per piksel. Image Size → Ukuran data gambar dalam satuan byte. Colours Used → Jumlah warna dalam table. Colour Table (Palette) Warna dalam bitmap ditentukan berdasarkan table warna ini. Image Bitmap Berupa informasi warna piksel (data gambar) Tabel 2.2 Struktur File Bitmap File Header
Tabel 2.3 Struktur Bitmap Info Header
71
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
yang terdapat pada tabel warna yang didalamnya berisi 256 warna [GON92]. Pada citra dengan format 4 bit, 1 byte menampilkan 2 piksel dalam citra. 4 bit hanya memiliki kemungkinan 24 = 16 nilai. Nilainilai ini digunakan untuk mengisi index palette, sehingga hanya da kemungkinan 16 warna. Pada citra dengan format 1 bit, tabel warna berisi dua warna (21 = 2), biasanya hitam dan putih. Jika setiap bit dari data citra bernilai 0, maka warna yang ditunjukkan adalah warna di dalam tabel warna. Jika setiap bit dari data citra bernilai 1, maka warna yang ditunjukkannya adalah warna kedua yang terdapat di dalam tabel warna [GON92]. Tabel warna sendiri dibentuk dari struktur RGBQUAD yang disusun dalam bentuk array. Struktur dari RGBQUAD diperlihatkan pada tabel dibawah ini [GON92].
Ada tidaknya tabel warna pada file ditentukan oleh nilai biBitCount yang menyatakan kedalaman warna dari citra (jumlah warna yang terdapat pada citra). Table warna biasanya digunakan oleh format citra dengan ukuran 8 bit atau kurang [GON92]. Piksel dalam citra dengan format 24 bit terdiri dari 3 byte masing-masing 1 byte memiliki warna Red, Green,dan Blue. Tiap byte memiliki satu dari 256 nilai yang berbeda, jadi tiap komponen warna memiliki 256 kemungkinan intensitas warna sehingga menghasilkan 256 x 256 x 256 = 16.777.216 kemungkinan warna (224 = 16.777.216). oleh karena itu, pada citra 24 bit semua informasi yang diperlukan untuk menjelaskan warna dari citra tersebut telah ditampilkan dalam bitmap array, sehingga tidak diperlukan lagi tabel warna untuk citra 24 bit [GON92]. Pada citra dengan format 8 bit, 1 byte (1 byte = 8 bit) digunakan untuk menampilkan warna tiap piksel. 1 byte memiliki kemungkinan nilai sebanyak 28 = 256. Agar dapat menampilkan citra dengan warna yang bagus seperti halnya format 24 bit, maka solusinya adalah menggunakan tabel warna (palette). Sebuah tabel warna merupakan memori yang terpisah dari bitmap, berisi warna-warna yang digunakan oleh bitmap. Tiap posisi dalam palette dinomori. Nomor ini disebut dengan index palette. Jadi pada bitmap tidak berisi nilai warna dari tiap titik, melainkan nilai index palette. Dari tiap warna titik bitmap. Palette sendiri berisi 3 byte dari tiap warna (Red, Green, Blue) seperti hanya format 24 bit. Sedangkan array bitmap berisi 8 bit, jadi setiap byte mewakili satu pixel. Nilai dari setiap byte menunjuk ke salah satu warna
Tabel 2.4 Struktur RGBQUAD
2.4 Efek-Efek Citra Pengolahan citra juga mencakup pemberian suatu efek tertentu pada citra. Tujuannya adalah member kesan artistic pada citra itu sendiri sehingga citra bertambah indah. Program pengolah citra seperti Adobe PhotoShop ataupun Corel PhotoPaint mempunyai fungsi bult-inn untuk menambah efek tertentu [IMA04]. Secara umum jenis efek yang dapat ditambahkan pada suatu citra dibagi atas beberapa kategori seperti [IMA04]. 1. 3D Effects. Untuk memberi kesan efek 3D pada citra sehingga citra hasil mempunyai ilusi kedalaman. Efek 3D terdiri atas : a. 3D Rotate . Efek ini merotasi suatu citra dengan mhodel tiga dimensi. b. Cylinder. Mengalah citra menjadi bentuk silinder. c. Emboss. Mentransformasikan suatu citra menjadi bentuk relief dengan detail yang muncul sebagai retak
72
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
atau timbul pada permukaan yang datar. d. Fish Eye. Membentuk efek citra mencembung atau mencekung keluar seperti bentuk mata ikan. e. Glass . Menempatkan permukaan seperti bentuk glass secara 3D dibensi pada suatu daerah tertentu citra. f. Page Curl. Membuat salah satu sudut dari citra seperti menggulung. g. Perspective . memberikan kedalaman tiga dimensi jika suatu citra berada pada bangun datar dan menyusut pada suatu jarak tertentu. h. Pinch /Punch. Melengkungkan suatu citra dengan menarik keluar atau menekannya ke dalam. i. Sphere . menyisipkan citra di sekeliling bagian dalam atau luar dari bola. j. The Boss. Menampilkan area citra yang menurun di sekeliling tepi dari mask. k. Zig Zag. Membentuk suatu gelombang berupa garis lurus dengan sudut tertentu dan menikung keluar pada citra pada suatu titik tengah yang dapat ditentukan. 2. Art Strokes. Efek khusus art strokes memberikan efek seperti lukisan tangan pada citra seperti lukisan pastel, lukisan spons, dan cat air ataupun untuk membentuk background yang mempunyai texture. Efek art strokes terdiri atas. a. Charcoal. Membuat citra kelihatan seperti lukisan dengan arang dalam warna hitam putih b. Conte Crayon. Mensimulasikan texture yang dihasilkan dengan conte crayon pada citra c. Crayon . membuat citra kelihatan lukisan wax crayon. d. Cubist. Mengelompokkan pixel nyang mempunyai warna yang sama menjadi persegi untuk menghasilkan suatu citra seperti lukisan Cubist.
e. Dabble. Membuat pixel citra kelihatan seperti cat yang dicolek. f. Impressionit. Membuat suatu citra kelihatan seperti lukisan Impressionit. g. Palette Knife. Membentuk suatu impresi pada citra dengan membentuk cat yang disebar pada suatu kanvas dengan palette knife. h. Pastels. Membuat suaatu citra kelihatan seperti lukisan pastel. i. Pen and Ink. Membuat suatu image kelihatan seperti lukisan yang dibentuk dengan pena dan tinta. Menggunakan teknik crosshatching atau stipple. j. Pointillist. Menganalisas warna utama pada citra dan mengkonversi warna tersebut menjadi titik-titik yang kecil. k. Scraperboard. Membuang permukaan hitam untuk memperoleh warna putih atau warna yang lain, membuat suatu citra kelihatan seperti lukisan sketsa. l. Sketch Pad. Membuat suatu citra seperti gambar sketsa dengan pensil. m. Watercolor. Membuat citra kelihatan seperti lukisan dengan cat cair. n. Water Maker. Membuat citra kelihatan seperti sketsa abstrak yang dibentuk dengan marker berwarna. o. Wave Paper. Membuat citra kelihatan seperti suatu lukisan yang dibentuk pada texture atau pada kertas yang bergelombang. 3. Creative. Efek khusus creative menggunakan beragam bentuk dan texture untuk mentransformasikan suatu citra menjadi seni abstrak dengan menggunakan item seperti craft, Kristal, fabric, kaca, potongan game, frame, pusaran air, tetesan air hujan, dan air mancur. Efek khusus creative terdiri atas : 73
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
a. Crafts. Membuat suatu citra kelihatan dibentuk dengan bentuk craft, seperti potongan puzzle, rodaroda, kelereng, permen, keramik, dan potongan kartu poker. b. Crystallize. Membuat suatu citra kelihatan dibentuk dengan Kristal. c. Fabric. Membuat suatu citra kelihatan dibentuk dengan textile seperti needlepoint, senar, pita, kertas tisu, selimut kapas, permadani. d. Frame. Membentuk frame atau bingkai dengan menggunakan citra yang lain atau suatu area yang didefinisikan sebagai mask. e. Glass Block. Membuat suatu citra kelihatan seperti sedang dilihat melalui blok kaca yang tebal. f. Kid’s Play. Membuat suatu citra kelihatan seperti dibentuk dengan pasak dan blok bangunan (seperti LEGO) g. Mosaic. Memecah suatu citra menjadi bentuk potongan eleptikal yang tidak beraturan untuk membentuk tampilan mosaic. h. Particle. Menambahkan efek cahaya berkelip pada citra dengan menggunakan bola berwarna atau putih dan bintang. i. Scatter. Mendistorsi suatu citra dengan pixel yang disebar pada seluruh bagian citra. j. Smoked Glass. Mengaplikasikan suatu warna tinta transparan pada citra. k. Stained Glass. Mentransformasikan citra menjadi bentuk stained-glass artwork. l. Vignette. Menambahkan frame elips, sirkular, persegi, dan persegi panjang disekeliling citra. m. Vortex. Menghasilkan putaran angin di sekeliling citra dengan suatu titik tengah yang dapat dispesifikasi oleh use. n. Weather. Mengaplikasikan efek salju, hujan, dank abut pada citra.
4. Texture. Merupakan efek khsus dengan menambahkan texture pada suatu citra menggunakan suatu bentuk dan permukaan tertentu seperti batu bata, bubble, kanvas, elephant skin, plastik, dan batu. Efek ini juga dapat dipakai untuk membuat suatu citra kelihatan seperti dilukis pada suatu dinding plaster ataupun seperti melihatnya malalui pintu kaca. Jenisjenis efek texture terdiri atas : a. Brick Wall. Efek ini mengelompokkan sekelompok interlocking cell untuk membuat citra kelihat seperti suatu lukisan pada dinding batu bata. b. Bubble. Membentuk efek seperti busa sabun pada citra. c. Canvas. Menambahkan suatu permukaan texture pada citra dengan menggunakan citra yang lain sebagai kanvas. d. Cobblestone. Untuk membantu suatu citra kelihatan seperti dibentuk dari batu bulat. e. Elephant Skin. Memberikan suatu citra kelihatan berkerut dengan membentuk suatu lapisan berupa garis bergelombang (seperti kulit gajah. f. Etching. Mentransformasikan suatu citra menjadi bentuk ukiran. g. Plastic.Membuat suatu citra kelihatan seperti dibuat dari bahan plastic. h. Plaster Wall. Mendistribusi pixel sehingga citra kelihatan seperti dilukis pada dinding plester. i. Relief Sculpture. Mentransformasikan suatu citra menjadi bentuk ukiran relief. j. Screen Door. Membuat citra kelihatan seperti lihat melalui pintu kaca. k. Stone. Memberikan efek texture batu pada citra. l. Underpainting. Membuat citra kelihatan seperti suatu lukisan yang dibuat pada suatu kanvas yang dilapisi dengan suatu lapisan cat. 74
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
PhotoShop mempunyai tools untuk fungsi seperti ini [IMA04].
2.5
Red Eye Warna merah berasal dari cahaya yang membias pada retina pada mataManusia. Banyak hewan, termasuk anjing, kucing, dan rusa, retinanya mempunyai suatu lapisan pembias khusus yang disebut dengan tepetum lucidum yang berfungsi seperti sebuah cermin pada bagian belakang mata mereka. Jika suatu cahaya lampu seperti senter atau lampu sorot menyinari mata pada waktu malam hari, mata mereka akan tampak bersinar seperte memantulkan suatu cahaya putih [IMA04]. Manusia tidak mempunyai lapisan tapetum lucidum pada retina. Jika suatu cahaya lampu mengenai mata manusia maka pembiasan cahaya tidak akan terjadi. Flash pada kamera cukup terang, bagaimanapun juga ini dapat menyebabkan refleksi pada retina yang kelihatan berwarna merah. Ini berasal dari pembuluh darah yang terdapat pada mata manusia [IMA04]. Banyak kamera saat ini telah mempunyai fitur “red eye redction”. Pada kamera ini, flashing akan dilakukan sebanyak dua kali, pertama sebelum gambar diambil, kemdian sekali lagi ketika gambar sebenarnya diambil. Flash yang pertama menyebabkan pupil pada mata manusia berkontraksi, sehingga mengurangi “red eye” secara signifikan. Trik yang lain adalah mematikan semua cahaya dalam ruangan, juga dapat mengakibatkan pupil berkontraksi [IMA04]. Cara lain untuk mengurangi atau memperkecil “red eye” adalah memindahkan flash dari lensa. Pada kebanyakan kamera kecil. Flash hanya satu ata dua inci jaauhnya dari lensa, jadi refleksi yang berasal dari lensa akan dihasilkan pada film. Jika flash pada kamera dapat dibongkar pasang dan memegangnya beberapa feet jauhnya dari lensa maka hal ini akan cukup menolong. Selain itu disarankan jika akan mengambil photo usahakan bagian belakang dari objek yang akan difoto tidak mempnyai sumber percahayaan yang terang langsung menuju ke kamera [IMA04]. Cara lain adalah mengedit photo yang mempunyai “red eye” dengan menggunakan tools red eye reduction. Program pengolah citra seperti Adobe
Gambar 2.9 Contoh Citra yang Mempunyai Red Eye Red eye reduction sebenarnya dapat dihilangkan dengan cara mudah yaitu mengganti pixel yang berwarna merah dengan pixel berwarna hitam secara langsung (dikenal dengan teknik color replacing). Teknik ini memang sederhana tetapi hasil yang didapat sangat buruk selain itu terdapat suatu teknik yang lebih bagus yaitu melalui algoritma intensity color checking. Secara dasar dapat dikatakan pada suatu citra yang proses dengan menggunakan algoritma intensity color checking.Ini akan membaca setiap nilai pixel pada bagian tertentu citra yang akan digantikan warnanya dimana dalam hal ini merupakan retina mata. Selanjutnya adalah melakukan kalkulasi pada setiap nilai pixel citra dan kemudian red eye untuk mereduksinya adalah sebagai berikut [IMA04]. 1. Lakukan proses me-loadcitra. 2. Tentukan region yang akan diproses. 3. Baca semua nilai pixel pada bagian ini. 4. Input warna pengganti. 5. Lakukan perhitungan mengganti nilai pixel dengan yaitu intensity color Checking. 6. Output hasil pada citra output. 7. Lakukan proses 5 dan 6 hingga sema pixel selesai diproses. Untuk memperhalus hasil dengan red eye redction maka biasanya ditambahkan efek blur
75
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
untuk menghaluskan citra yang telah direduksi bagian red eye- nya [IMA04].
L merupakan suatu nilai hasil pertandingan. Fungsi perpangkatak di atas digunakan agar tidak dihasilkan nilai negative [DUN89].
2.6 Intensity Color Checking Intensity color checking merupakan suatu algoritma yang dipergunakan untuk mengganti nilai komponen RGB yang sudah citra dengan nilai RGB yang lain tetapi dengan memperhitungkan faktor intensitasnya. Jadi pada algoritma ini proses penggantian tidak hanya langsung mengganti warna pixel dengan warna lain tetapi dengan warna yang mempunyai intensitas yang sama dengan pixel asal [CAT04]. Bentuk dari algoritma intensitas color checking adalah kalkulasi untuk mencari nilai intensitas rata-rata dari komponen warna RGB dari suatu pixel . secara umum bentuk aplikasi dari algoritma intensitas color checking ini dapat dilihat pada contoh berikut ini [CAT04].
III. PEMBAHASAN DAN PERANCANGAN 3.1 Pembahasan Proses pada algoritma red eye reduction adalah sebagai berikut : a. Menginput matriks citra dengan kedalaman warna RGB 24-bit b. Matriks region ditentukan oleh user berdasarkan area red eye yang i. akan di remove. Proses untuk matriks region ini terdiri atas : c. Memindahkan intensitas pixel dari matrik input. d. Lakukan intensitas color checking. e. Update kembali matrik input dengan hasil yang didapat. Proses pada algoritma blur adalah sebagai berikut : a. Menginput matriks citra dengan kedalaman warna RGB 24-bit. b. Lakukan iterasi sampai lebar citra dikali tinggi citra. c. Input dan ambil nilai pixel pada koordinat x, y. d. Proses setiap komponen Red, Green, Blue dengan menggeser nilai-nilai tersebut dengan suatu konstanta. e. Set pixel hasil kembali ke dalam matriks citra.
For i = 0 to 2r - 1 For j = 0 to 2r – 1 Pixelcolor = GetPixel (Picture, 1, j) R = Pixelcolor Mod 256 g = (Pixelcolor \ 256) Mod 256 b = Pixelcolor \ 256 \ 256 I = (R + G + B) \ 3 Gray= (RedConstant*R+GreenConstant*G– BlueConstant * B) \ 1000 R = Abs (Gray –I) G = Abs (Gray – I) B = Abs (Gray – I) SetPixel Picture, RGB (R, G, B) Next j Next i
2.7
Euclidean Distance Euclidean Distance merupakan suatu cara yang dipergunakan untuk membandingkan kemiripan antara suatu pixel dengan pixel hasil pada citra yang telah diproses dengan membandingkan jarak antara suatu pixel dengan pixel tetangganya Euclidean Distance disebut Euclidean Norm. Rumusan Euclidean Distance adalah sebagai berikut [DUN89].
3.1.1 Menghitung Penggantian Pixel dengan Intensitas Color Checking Proses penggunaan pixel dengan melakukan perhitungan intensity colorchecking digambarkan oleh flow chart Gambar 3.1.
Dimana A dan B adalah vector yang akan dicari jaraknya dan N adalah banyaknya elemen vector yang akan dibandingkan. Nilai 76
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
Agar algoritma di atas lebih mudah dipahami maka berikut ini penulis menyertakan contoh perhitungan dengan menggunakan algoritma di atas dengan hanya menyertakan suatu contoh citra input yang terdiri atas empat pixel.
Gambar 3.1 Penggantian Pixel dengan Perhiungan Intensity Color Checking Adapun persamaan utama pada intensity color checking adalah sebagai berikut :
Dimana R (Red), G (Green), B (Blue) merupakan komponen warna pixel untuk warna merah, hijau dan biru yang dihasilkan dengan melakukan pembagian bulat dan module dengan nilai 256. 1 merupakan variabel unruk menghitung rata-rata intensitas pixel dengan pembagian bulat (menggunakan tanda back slash) sedangkan gray merupakan nilai tingkat keabuan pixsel sebagai nilai sementara yang dignakan untuk dikurangkan dengan nilai intensitas 1. Konstanta 222,707, dan 71 merupakan konstanta ketentuan. Pada algoritma intensitas color checking terlihat bahwa menggunakan diperlukan proses looping dalam memproses setiap pixel citra yaitu sebanyak dua kali loop terhadap lebar dan tinggi citra input. Setelah itu akan dilakukan pengambilan warna satu buah pixel pada posisi i, j. Setelah itu komponen nilai R, G, B akan diekstraksi sesuai dengan persamaan di atas. Nilai intensitas (I) didapat dengan menghitung nilai rata-rata dari komponen R, G dan B. Gray atau tingkat keabuan dari pixel tersebut merupakan nilai perkalian dan penjumlahan dari komponen R, G, dan B. Setelah selesai maka nilai R, G, B masing-masing akan digeser dengan cara mengurangkan nilai gray dengan 1 untuk mendapatkan pixel pengganti yang berwarna keabuan kemudian diabsolutkan agar tidak mendapatkan hasil negative.
Gambar 3.1 Contoh Pixel Input Untuk Pixel (0, 0) R = 255, G = 102, B = 0 I = (255 + 102 + 0) \ 3 I = 119 Gray = (222 * 255 * 707 * 102 + 71 * 0)\ 1000 Gray = (56610 + 72114 * 0) \ 1000 Gray = 128 R R R G G G B B B
= = = = = = = = =
Gray |128 9 Gray |128 9 Gray |126 9-
–I – 119| – I – 119| – I – 119|
Untuk Pixel (0, 1) R = 204, G = 51, Blue = 0 I = (204 + 51 + 0) \ 3 I = 85 Gray = (22 * 204 + 707 * 51 + 71 * 0) \ 1000 Gray = (45288 + 36057 + 0) \ 1000 Gray = 81 R = Gray – I R= |81 – 85| R = 4 G = Gray – I
77
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
G = |81 – 85| G = 4
Gambar 3.2 Contoh Pixel Hasil Setelah Dilakukan Red Eye Reduction Untuk mendapatkan perbandingan nilai intensitas setelah dan sebelum direduksi maka akan dianalisis dengan Euclidean Distance. Perbandingan akan dilakukan antara pixel 1 dengan pixel 2, pixel 3, dan pixel 4 dari contoh di atas. Untuk analisis ini hanya menggunakan pixel dengan komponen warna merah saja karena pada citra yang mengandung red eye biasanya pixel inilah yang dominan. Langkah awal adalah menghitung nalai L dengan rumusan Euclidean Distance untuk citra yang belum direduksi. Untuk pixel (0, 0) dengan pixel (0, 1) Nilai red pada pixel (0, 0) → R = 55 Nilai red pada pixel (0, 1) → R = 204 A1 = 255 ; B1 = 204 Untuk pixel (0, 0) dengan pixel (1, 0) Nilai red pada pixel (0, 0) → R = 255 Nilai red pada pixel (1, 0) → R = 255 A2 = 255 ; B2 = 255 Untuk pixel (0, 0) dengan pixel (1, 1) Nilai red pada pixel (0, 0) → R = 255 Nila red pada pixel (0, 0) → R = 255 A3 = 255 ; B3 = 2555 Perhitungan akan menggunkan rumusan Evclidean Distance sebagi berikut :
B = Gray – I B = |81 – 85| B = 4
Untuk Pixel (1, 0) R = 255, G = 51, Blue = 0 I = (255 + 51 + 0) \ 3 I = 102 Gray 0) \ Gray Gray
= (222 * 255 * 707 * 51 + 71 * 1000 = (56610 + 36057 + 0) \ 1000 = 93
R = Gray – I R = |93 – 102| R = 9 G G G B B B
= = = = = =
Gray – I |93 – 102| 9 Gray – I |93 – 102| 9
Utuk Pixel (1, 1) R = 255, G = 121, Blue = 32 I = (255 + 121 + 32) \ 3 I = 136 Gray = (222 * 255 + 707 * 71 * 32) \ 1000 Gray = (56610 + 85547 + 2272) \ 1000 Gray = 144 R = Gray – I R = |144 – 136| R = 8
Langkah berikutnya adalah menghitung nilai L kembali tetapi untuk posisi pixel yang sama dengan citra yang telah direduksi. Nilai pixel (0, 0) dengan pixel (0, 1) Nilai red pada pixel (0, 0) → R = 9 Nilai red pada pixel (0, 1) → R = 4 A1 = 9 ; B1 = 4 Untuk pixel (0, 0) dengan pixel (1, 0) Nilai red pada pixel (0, 0) → R = 9 Nilai red pada pixel (1, 0) → R = 4 A1 = 9 ; B2 = 4 Untuk pixel (0, 0) dengan pixel (1, 1) Nilai red pada pixel (0, 0) → R = 9 Nilai red pada pixel (1, 0) → R = 8
G = Gray – I G = |144 – 136| G = 8 B = Gray – I B = |144 – 136| B = 8
Untuk perhitungan ketiga pixel lainnya akan sama seperti perhitungan untuk pixel pada posisi (0, 0) sehingga hasil akhirnya diperlihatkan pada Gambar 3.2 :
78
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
A3 = 9 ; B3 = 8 Perhitungan akan menggunakan rumusan Euclidean Distance sebagai berikut :
Jadi total nilai reduksi yang telah dilakukan adalah sebesar : Gambar 3.3 Ilustrasi Aplikasi Red Eye pada Seluruh Bagian Citra Pada bagian ini hanya dapat diterapkan pada suatu titik tertentu pada gambar dengan menginput radius dari titik untuk menentukan daerah yang akan diganti warnanya. Seperti halnya dengan bagian pertama ditentukan titik pusat dari bagian yang yang dipilih dengan perbedaan titik yang dipilih akan menjadi titik pusat citra yang akan diproses.
3.1.2
Region Algoritma intensity color checking hanya sebatas pengambilan warna citra dan menset dengan nilai baru sehingga didapat hasil penggantian warna pixel yang baru. Agar dapat diterapkan maka algoritma di atas masih harus digabungkan dengan algoritma pemilihan region. Untuk aplikasi red eye pada seluruh bagian citra maka titik pusat citra akan ditarik untuk menentukan radius dari citra yang akan diganti warnanya. Ilustrasinya adalah sebagai berikut pertama sekali akan ditentukan titik pusat citra dengan menarik dua buah garis diagonal hasil perpotongan kedua diagonal itulah merupakan titik pusat dari citra. Radius ditentukan dengan menghitung nilai 1⁄2dari panjang diagonal lalu ditarik sebuah garis tegak lurus dari titik perpotongan ke bawah atau ke bawah atau ke atas. Dari nilai ini dapat ditentukan daerah batas yang akan diproses yaitu berupa daerah lingkaran atau dengan kata lain dapat ditentukan dengan penentuan jari (r) sebesar 2r. Selanjutnya adalah bagian ini akan disubstitusi dengan menggunakan algoritma intensity color checking.
Gambar 3.4 Ilustrasi Aplikasi Red Eye pada Bagian Tertentu Citra Pada penentuan region yang digunakan untuk membatasi besar kecilnya pupil maka terdapat tiga dalam hal ini adalah : 1. Region lingkaran yang dibuat lebih besar dari pupil yang mengandung red eye.
79
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
2. Region lingkaran yang dibuat lebih kecil dari pupilyang mengandung red eye. 3. Region lingkarn sam dengan pupil yang mengandung red eye. Adapun ilustrasi dari ketiga kasus di atas dapat digambarkan sebagai berikut :
a. DeleteDC berfungsi untuk menghapus pixel input. b. createDIBitmap berfungsi untuk membentuk pixel input menjadi pixel dalam bitmap 24-bit. c. createCompatibieBitmap berfungsi untuk membentuk pixel input yang kompatibel dengan bitmap 24-bit. d. createCompatibleDC berfungsi untuk membentuk pixel input yang kompatibel dengan bitmap DC. e. SelectObject berfungsi untuk memilih region tertentu pada citra. f. GetDIBIts berfungsi untuk mengkonversikan nilai pixel ke dalam bentuk long. g. BitBlt berfungsi untuk menset suatu nilai pixel ke dalam citra. h. DeleteObject berfungsi untuk menghapus region tertentu yang mengandung pixel dari citra. i. SetDIBIts berfungsi untuk menset nilai pixel dalam bentuk Device Interface.
Gambar 3.5 Ilustrasi Penempatan Region Pada Pupil yang Mengandung Red Eye 3.1.3
Efek Blur Untuk memperindah hasil efek red eye maka pada program yang dibuat akan ditambahkan opsi untuk membuat hasil dengan efek blur. Tujuan dari efek blur ini adalah membuat suatu citra menjadi lebih kabur. Efek ini dapat dihasilkan dengan cara mengambil nilai RGB dari tiap pixel , kemudian menambahkan dengan nilai RGB dari pixel tetangganya. Hasil pertambahan dibagi dengan suatu bilangan bulat untuk mendapatkan nilai RGB yang baru.
3.2 Perancangan Perancangan perangkat lunak menghilangkan efek red eye pada photo mulai dari merancang antarmuka perangkat lunak, menyusun komponen visual, merancang kotak dialog, dan menulis kode program. Pada bagian perancangan ini akan berisi penjelasan mengenai perancangan program. Program dirancang dengan menggunakan Visual Basic versi 6.0. Profesional Edition dan dapat juga dibuka dan dikompilasi dengan Visual Basic versi 5.0. Antarmuka dari program ini adalah formyang berbentuk windows. Form yang dirancang terdiri atas dua buah formyaituformSplash Screen dan Form Utama.
Gambar 3.6 Contoh Efek Blur Untuk mengaplikasikan efek Blur ini ke dalam citra maka digunakan fungsi Blur yang dirancang dalam bentuk module. Modulemodule ini merupakan fungsi API (Aplication Programing Interface) Windows yaitu memanggil fungsi yang terdapat dalam GDI32. DLL yaitu sebuah file pustaka yang berisi fungsi-fungsi dasar penanganan grafik sistem operasi Windows. Adapun beberapa fungsi utama yang terdapat dalam GDI32.DLL adalah sebagai berikut :
3.2.1
Rancangan Aplikasi Program red eye reduction yang dirancang ini terdiri atas dua bagian yaitu bagian pertama dengan menggunakan teknik menggantikan warna tertentu sedangkan teknik yang kedua adalah dengan menghitung intensitas warna dimana hasil yang kedua akan diperoleh photo yang red eye dihilangkanlebih halus. 80
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
Semua modul-modul yang diperlukan seperti modul pembacaan citra, modul penggantian warna, dan modul penggantian warna dengan color intensity akan dibuat dalam suatu module Visual Basic yaitu modul Graphic.bas. Sebagai modul red eye reduction-nya akan digunakan modul dalam bahasa Visual C++ dan dikompilasi menjadi suatu library yang diberi nama csXImage.OCX. Tujuan penulisan dalam bahasa C++ agar proses dapat berjalan lebih cepat. Sebagai user interface maka akan digunakan Visual Basic karena fasilitas dan kemudahan dalam penggunaan komponen visual Windows. Secara umum dalam kode pembuatan komponen OCX csXImage akan dibentuk suatu fungsi yang diberi nama RedEyeRuduction. Untuk pemanggilan dalam Visual Basic maka fungsi tersebut harus dideklarasikan terlebih dahulu dalam module yang disimpan dalam ekstensi *.BAS.
Gambar 3.7 Rancangan Tampilan Dialog Pada rancangan antarmuka Gambar 3.7 digunakan komponen Visual seperti command button, label, combobox, check box, dan picture box. Dua buah picture box digunakan untuk menampung citra output. Command button digunakan sebagai tombol. Adapun beberapa fungsi-fungsi dari tombol-tombol tersebut adalah sebagai berikut : a. “Select” digunakan memilih region tertentu pad citra yang akan dihilangkan red eye-nya. b. “Apply” digunakan untuk mengaplikasikan algoritma red eye reduction yang diberikan pada citra. c. “Cancel” digunakan untuk membatalkan proses red eye reduction yang diberikan pada citra. d. “Zoom In” digunakan untuk melakukan proses zooming atau memperbesar citra. e. “Zoom Out” digunakan untuk melakukan proses memperkecil citra. Sedangkan pada antarmuka tersebut juga terdapat combo box untuk memilih efek blur dan pilihan red eye reduction ataupun memunculkan sebuah kotak dialog memilih warna. Pada interface ini juga terdapat struktur dimana struktur menunya dapat digambarkan seperti terlihat pada Gambar 3.8.
3.2.2 Antarmuka Perangkat Lunak Antarmuka merupakan suatu media interaksi (interaktif) antara komputer dengan pemakai (user). Pada sistem operasi yang berbasis grafis (graphic user interface atau GUI) seperti Windows, antarmuka dari suatu perangkat lunak biasanya berupa jendela (window). Melalui jendela inilah pemakai dapat berinteraksi dengan perangkat lunak yang digunakannya. Gambar 3.3 di bawah ini adalah tampilan antar muka dari perangkat lunak yang dirancng.
81
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
Gambar 3.8 Struktur Menu Pada perangkat lunak yang dirancang juga dilengkapi dengan beberapa kotak dialog seperti Open dan Save As. Kotak dialog merupakan jendela-jendela kecil yang muncul untuk meminta input atau masukan dari user. Gambar 3.9 berikut ini memperlihatkan kotak dialog dari Open dan Save As yang memiliki tampilan yang hampir sama.
Gambar 3.10 Rancangan Dialog Pencetakan Dalam dialog pencetakn terdapat pilihan skala dan pengaturan citra dari tepi atas dan kiri kertas serta jumlah cetakan yang akan dibuat. Selain itu juga terdapat opsi untuk mencetak ke seluruh bagian kertas ataupun pada tengah kertas. Pilihan untuk menentukan jenis printer dan jenis kertas juga dapat dilakukan pada dialog ini. Jika user menekan tombol “Print” maka akan dihasilkan pencetakan sesuai dengan opsi yang dipilih. Pilihan “Cancel” untuk kembali ketampilan tentang Author yang berfungsi untuk menampilkan nama penulis serta keterangan programsecara singkat. Tampilan ini mamakai objek seperti image, label, dan command button. Bentuk layout dari tampilan ini diperlihatkan pada gambar 3.11.
Gambar 3.9 Kotak Dialog Open atau Save As Kotak dialog Open dapat dimunculkan pada saat user menekan tombol “Buka File”. Memilih kotak dialog ini user dapat mencari dan memiliki file citra yang akan dibuka. Pada saat user menyimpan citra maka dapat menekan tombol “Simpan” maka kotak dialog “Save As” akan dimunculkan. Gambar 3.10 memperlihatkan rancangan dialog pencetakan. Adapun bentuk layout dari dialog pencetakan ini dapat dilihat pada gambar 3.10
Gambar 3.11 Rancangan Form Author
82
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013 R = R / C G = G / C B = B / C SetPixel RGB) ke citra hasil Next j Next i
IV. ALGORITMA DAN IMPLEMENTASI 4.1 Algoritma Algoritma merupakan langkah-langkah terstruktur maupun urutan bertahap dan spesifik dari suatu masalah, untuk menganalisa serta menjelaskan urutan dan hubungan antara kegiatan-kegiatan yang akan ditempuh untuk memecahkan dan menyelesaikan suatu permasalahan sehingga tercapai tujuan yang diinginkan. Berikut ini merupakan algoritmaalgoritma utama dari program ini. 4.1.1 Algoritma Intensity Color Checking Berikut ini adalah algoritma red eye removal dengan menggunakan intensity checking.
j,
4.2
Implementasi Implementasi sistem program ini mencakup spesifikasi kebutuhan perangkat lunak (software) 4.2.1 Spesifikasi Perangkat Keras dan Perangkat Lunak Program ini dijalankan dengan menggunakan perangkat keras (hardware) yang mempunyai spesifikasi minimal adalah sebagai berikut : 1. Prosesor Intel Pentium II 200 Mhz. 2. Memory 32 MB. 3. Harddisk 10 GB. 4. VGA card 1 MB. 5. Monitor dengn resolusi 1024 x 768 pixel. 6. Mouse. 7. Keyboard. Adapun perangkat lunak (software) yang digunakan untuk menjalankan aplikasi ini adalah lingkungan sistem operasi MS-Windows 98 atau MSWindows NT/2000/XP.
For i = 0 To 2r – 1 For j = 0 To 2r – 1 pixelColor = GetPixel(i, j) r = PixelColor Mod 256 g = (PixelColor \ 256) Mod 256 b = PixelColor \ 256) Mod 256 I = (R + G + B) \ 3 Gray = (222 * r + 707 * g + 71 * b) \ 1000 r = ABS (Gray – I) g = ABS (Gray – I) b = ABS (Gray – I) SetPixel i, j, RGB(r, g, b) Next J Next i
4.1.2
Aloritma Pemilihan Region Adapun algoritma untuk memilih region pada aplikasi red eye adalah sebagai berikut :
4.2.2
Cara Instalasi Program ini tidak memerlukan cara instalasi yang khusus, dengan alasan bahwa semua file yang dibutuhkan oleh aplikasi ini dapat dikompilasi menjadi satu file executeable. Jadi untuk instlasi program ini cukup dengan meng-copy fileexecutablenya(RedEyeRemoval. EXE) ke dalam lokasi folder yang dipilih pada harddisk. Jika program tidak dapat dijalankan lakukanlah instlasi dengan menjalankan file SETUP. EXE. 4.2.3 Cara Penggunaan Program Untuk menggunakan program ini, jalankan file executeable (RedEyeRemoval. EXE) dari lokasi di mana file tersebut di-copy-kan, ataupun jik program diinstalasi maka icon shortcut program dapat dijalankan dari tombol Start ⟶ Program Windows. Setelah itu jika
Get X1, Y1, X2 , Y2 Midx = (X2 – X1) / 2 Midy = (Y2 – Y1) / 2 R = Midy Set X1, Y1, X2, Y2, r, CentrePoint
4.1.3
Algoritma Blur Algoritma sederhana untuk efek blur ini adalah sebagai berikut : C = 10 For i = 0 to Width For j = 0 to Height RGB = GetPixel (i, j) dari citra For k = -1 To 1 For 1 = -1 To 1 R1G1B1 = GetPixel (i,k j-1) citra R = R + R1 G = G + G1 B = B + B1 Next 1
(i,
dari
83
Sudi Suryadi
program dijalankan maka akan tampilan seperti gambar berikut ini.
J. Informatika AMIK-LB Vol.1 No.3/September/2013
tampak
Berikut akan dimunculkan pilihan-pilihan seperti gambar 4.4 berikut ini. Selanjutnya klik pada tombol “Select” dan pilihlah pada bagian citra yang mengandung red eye dan selanjutnya adalah menekan tombol “Apply” untuk menghilanhkan red eye tersebut. Pilih tombol “ Cancel” untuk membatalkan proses terakhir.
Gambar 4.1 Tampilan Program Untuk mencoba menggunakan program yang telah dihasilkan ini maka langkah pertama adalah me-load sebuah file citra. File tersebut dapat berupa format BMP, GIF, JPEG, TIF, WMF. Karena program ini berfungsi untuk menghilangkan red eye yang biasa terdapat pda bagian mata mak uji coba ini akan menggunakan citra yang mempunyai red eye. Untuk itu user Dapat me-load citra dengan memilih pada menu file ⟶ Open dan berikutnya akan dimunculkan sebuah kotak dialog untuk membuka file citra seperti terlihat pada gambar berikut ini.
Gambar 4.3 Tampilan Proses Penghilangan Red Eye Setelah selesai user dapat menyimpan dengan menekan mengakses melalui menu “Save” ataupun “Save AS” bila akan disimpan dengan nama lain ataupun untuk mencetak gambar tersebut dapat mengakses melalui menu File ⟶ Print. Untuk memperhalus citra ini maka user dapat menggunakan efek blur untuk sedikit membuat kabur citra dengan memilih pada pilihan blur pada bagian combo box. Untuk melakukan pencetakan maka dapat dilakukan dengan memilih pada menu File ⟶ Print. Setelah itu akan ditampilkan dialog pencetakan seperti Gambar 4.5 berikut ini. Pada dialog ini terdapat pilihan untuk memilih jenis printer yang aktif pada sistem dan ukuran kertas melalui pilihan paper size. Selain itu juga terdapat pilihan apakah akan dilakukan pencetakan secara mendatar ataupun secara vertikal. Penentuan jarak posisi kiri atas dan unit pencetakan dapat diatur pada pilihan berikutnya. Jumlah kopian dapat ditentukan pada bagian “Copies” dan skala pencetakan dapat dipilih melalui pilihan “Scale”.
Gambar 4.2 Tampilan Saat Citra Di-Load Setelah itu untuk melakukan proses zoom in ataupun zoom out untuk mempermudah memilih bagian yang mengandung red eye dapat menggunakan kedua tombol zoom. Setelah itu user dapat memilih pada combo box berupa pilihan “Red Eye Reduction”. 84
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
Gambar Awal
Sesudah Diproses
Gambar 4.7 Contoh Output III
Gambar 4.4 Tampilan Dialog Pencetakan Opsi berikutnya adalah “Fit to Page” yang dipakai untuk mencetak seluruh citra dengan penyesuaian berdasarkan ukuran kertas. Opsi “Centre on Page” digunakan untuk mencetak citra pada tengah kertas. Setelah semua pilihan detentukan maka tekan tombol “Print” untuk mencetak dan tombol “Cancel” untuk pembatalan.
Gambar Citra Dina (a)
4.2.4
Hasil Program Berikut ini merupakan contoh hasil dari program berupa empat citra yang dijadikan untuk menghilangkan red eye pada bagian mata.
Gambar citra Dina Sesudah Diproses (b) Gambar 4.8 Contoh Output IV
Gambar 4.5 Contoh Output I
V. KESIMPULAN DAN SARAN 5.1 Kesimpulan Dari hasil pengujian yang telah dilakukan pada program dapat ditarik beberapa kesimpulan sebagai berikut : 1) Perangkat lunak yang dirancang dapat dipakai untuk menghilangkan red eye yang sering dihasilkan pada pemotretan gambar menggunakan kamera. 2) Dengan menggunakan teknik intensity color checking maka proses penggantian warna merah pada bagian
Gambar 4.6 Contoh Output II
85
Sudi Suryadi
J. Informatika AMIK-LB Vol.1 No.3/September/2013
red eye gambar terlihat halus dan bagus. 3) Bagian red eye reduction ini hanya DAFTAR PUSTAKA dapat diterapkan pada suatu region titik tertentu pada citra dengan menginput [Dun89] Dunteman, G. H, Principal radius dari titik untuk menentukan Compones Analysis, Sage daerah yang akan dihilangkan red eyePublications, 1989. nya. [GOM96] Gomes, J. dan Velho, L, Image Processing For Computer Graphics,Translated by Silvio Levy, 5.2 Saran Beberapa saran pengembangan yang Springer, Rio de Janeiro, 1996. dapat diberikan terhadap perangkat lunak ini [GON92] Gonzales, R. C, Digital Image adalah : Processing, Addison – Wesley 1. Pemilihan region pupil mata yang Publishing Company, 1992 mengandung red eye tergantung pada [HAD01] Hadi R, Pemrograman Windows ketelitian user. API dengan Microsoft Visual Basic, 2. Format citra yang dapat disimpan oleh PT. Elex Media Komputindo, Jakarta, software ini hanya terbatas pada 2001 format *.bmp (8 atau 24 bit dan tanpa [HAL00] Halvorson M, Microsoft Visual terkompresi), *.gif, *.wmf, dan *.jpg. Basic 6.0 Professional Step by Jika cakupan format citra lebih luas, maka Step,PT. Elex Media Komputindo, akan jadi lebih baik karena tidak Jakarta, 2000 dibutuhkan lagi perangkat lunak lain [MUN04] Munir, Rinaldi, Pengolahan Citra (seperti ACDSee atau Adobe Digital Dengan Pendekatan PhotoShop) untuk mengubah format citra Algoritmik, Penerbit Informatika, sebagai input (dalam kasus : citra yang 2004. dimiliki user tidak termasuk dalam ketiga [CAT04] http://www.catenary.com, tanggal format tersebut). akses 19 November 2004 3. Perangkat lunak dikembangkan agar dapat [IMA04] http://www.imaginghardware.com, menerima input langsung dari scanner. tanggal akses 20 Oktober 4. Perangkat lunak dikembangkan lebih 2004 lanjut lagi sehingga dapat berfungsi [WOT04] http://www.wotsit.com, tanggal akses Sebagai plug-in untuk program pengolah 20 November 2004 gambar seperti Adobe PhotoShop.
86