Program Java Sederhana untuk Parsing Grafik Menjadi Koordinat Kartesius (Part 1)

Umumnya suatu grafik dalam format gambar (JPG, JPEG, PNG, dll) yang terlihat memiliki garis hitam pada dasar putih, atau merah pada dasar putih, atau warna garis dan dasar apapun, sebenarnya tidaklah murni semata-mata terdiri dari dua komponen warna tersebut (warna garis dan warna dasar). Apabila dilakukan perbesaran maksimum hingga ukuran piksel pada gambar tersebut, yang semula terlihat hanya hitam dan putih akan terlihat adanya warna-warna lain. Selain itu, ketebalan garis yang beragam membuat kita harus mengambil hanya titik-titik yang berarti dan menyingkirkan titik-titik yang dianggap “noise”. Terlebih lagi apabila grafik tersebut merupakan grafik fungsi karena hanya diperbolehkan satu nilai y untuk setiap satu nilai x. Dengan demikian titik-titik yang berarti tersebut merupakan piksel yang mampu mewakili koordinat data yang sebenarnya. Semakin “hitam” suatu titik, semakin berarti titik tersebut. Berdasarkan pernyataan tersebut maka kita perlu menentukan threshold tingkat kehitaman titik utuk dapat dianggap berarti.

Gambar yang akan diekstrak menjadi data berupa koordinat kartesian dipastikan harus terbebas dari komponen lain selain grafik itu sendiri. Keterangan pada gambar, angka dan huruf, serta garis sumbu harus dihilangkan seperti pada Gambar 1. Proses pembersihan grafik dapat dilakukan secara manual dengan perangkat lunak pemroses citra apapun termasuk yang sederhana seperti Paint.

graphic-image-parsing-to-cartesian-1
Gambar 1. Pembersihan grafik dari komponen yang tidak diperlukan untuk proses parsing.

Whiteness

Suatu piksel pada gambar memiliki tiga komponen warna dasar, yaitu Red-Green-Blue (R,G,B) yang direpresentasikan dengan angka 0 sampai 255. Sebagai contoh, nilai RGB untuk red (255,0,0), green (0, 255, 0), blue (0, 0, 255) black (0,0,0), dan white (255,255,255). Untuk mengubah gambar berwarna menjadi gambar grayscale dapat dilakukan dengan mengubah serentak seluruh nilai-nilai RGB tiap pikselnya. Perumusan konversi nilai tersebut tidaklah baku sehingga terdapat beberapa cara dengan hasil yang berbeda pula. Pada blog ini, gambar grafik akan dikonversi seperti halnya grayscale namun dengan perumusan yang lebih sederhana:

W = (R + G + B) : 3

Dengan perumusan ini, bobot warna red, green, maupun blue akan sama. W minimum bernilai 0 dan maksimum bernilai 255. Nilai whiteness (W) yang semakin tinggi akan terlihat semakin putih.

Set The Threshold Value

Dengan menggunakan perangkat lunak pemroses citra digital seperti Adobe Photoshop, nilai RGB suatu titik dapat dengan mudah diketahui. Berdasarkan tes visual berbagai grafik hitam di atas putih, saya tentukan bahwa nilai whiteness yang lebih besar dari 150 merupakan noise. Sehingga pada program yang akan dibuat, threshold W ditetapkan sebesar 150.

Blackness 

Tingkat kehitaman atau blackness (B) didapat dari:

B = 255- W
graphic-image-parsing-to-cartesian-2
Gambar 2. Contoh Piksel yang berarti (a) dan yang dianggap noise (b) pada suatu grafik berformat JPG.

Berdasarkan contoh pada Gambar 2 di atas, dapat dilihat perbesaran suatu grafik hingga terlihat kotak-kotak tiap pikselnya.

Piksel a
W = (151+20+25) : 3 = 65,33 
B=189,67
Piksel b
W = (255+176+179) : 3 = 203,33
B=51,6

Berdasarkan nilai threshold yang telah ditentukan, piksel a merupakan bagian dari grafik sedangkan piksel b merupakan noise.

Setelah program berhasil mendapatkan koordinat (x,y) untuk seluruh grafik, arah penghitungan disesuaikan dengan arah koordinat kartesian. Hal perlu dilakukan karena pada pemroses citra digital, urutan penghitungan y dari atas ke bawah sedangkan pada koordinat kartesian, y dihitung dari bawah ke atas sehingga titik ordinat didapat dari

y' = Tinggi Gambar – y

sedangkan absis memiliki arah yang sama baik pada pemroses citra digital maupun koordinat kartesian sehingga tidak perlu dilakukan penyesuaian.

x' = x

Seluruh proses ekstraksi citra grafik hingga menghasilkan x’ dan y’. Detail program akan dijelaskan pada blog selanjutnya:

Program Java Sederhana untuk Parsing Grafik Menjadi Koordinat Kartesius (Part 2)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s