MaRiSkA FunNy

September 19, 2008

MeRiNdUkAnMu – d’Masiv

Filed under: Uncategorized — m4r1sk4 @ 6:04 am

Saat aku tertawa diatas semua
Saat aku menangisi kesedihanku
Aku ingin engkau selalu ada
Aku ingin engkau aku kenang

Reff :
Selama aku masih bisa bernafas
Masih sanggup berjalan kukan slalu memujamu
Meski ku tak tahu lagi engkau ada dimana
Dengarkanlah aku kumerindukanmu

Saat aku mencoba merubah segalanya
Saat aku meratapi kekalahanku
Aku ingin engkau selalu ada
Aku ingin engkau aku kenang

(back to reff)


 

 

 

September 15, 2008

Konsep Citra Berwarna

Filed under: Study — m4r1sk4 @ 3:49 am

Pengantar

Di dalam dunia dijital dikenal 2 jenis citra, yaitu citra berwarna dan citra monokrom. Perbedaan yang mendasar diantara keduanya terletak pada informasi warna pada setiap pixel. Pada artikel kali ini akan dibahas mengenai konsep-konsep dasar pada citra berwarna.

Sebenarnya, apa sih yang disimpan oleh sebuah file citra? Contoh misalkan, jika kita membuka file citra yang mempunyai extension jpeg, informasi apa yang akan dipergunakan oleh komputer untuk menampilkan citra? Kalau kita teliti lebih jauh, sebenarnya ada dua bagian besar yang lazim ditemui pada file-file citra. Bagian pertama disebut sebagai header yang berisi informasi mengenai bagaimana informasi citra disimpan, dan bagian yang kedua adalah informasi warna pada setiap pixel. Dimana kah meta data dari citra yang sering dibahas di infotainment? Nanti akan saya ceritakan diartikel yang lain.

Representasi matematis citra

Ok, balik ke pembahasan. Hal yang terpenting dalam memanipulasi data citra adalah pada informasi warna pada setiap pixel. Informasi ini seperti layaknya informasi kata-kata yang ada pada file text seperti .txt. Pada citra berwarna informasi ini biasa dipecah dalam 3 komponen warna yang lazim disebut RGB (Red Green Blue). Seperti yang kita ketahui kita dapat membuat warna apapun. Sebagai ilustrasi, silahkan lihat gambar di bawah ini (Gambar diambil dari http://en.wikipedia.org/wiki/RGB_color_model)

Secara matematis, kita dapat menuliskan sebuah citra sebagai sebuah fungsi dua dimensi f yang berisi nilai RGB pada koordinat (x,y).

1: f(x,y) = [RGB]

Representasi Matrix

Nilai RGB bisa direpresentasikan dengan berbagai cara. Misalkan, BufferedReader pada java merepresentasikannya dalam bentuk sebuah integer (untuk lebih lanjut, silahkan tilik tutorial berikut). Cara yang lain adalah dengan merepresentasikannya dalam bentuk matrix 3 dimensi. Sebagai ilustrasi, marilah lihat gambar dibawah ini.

Pada gambar diatas, komponen red pada lokasi (0,0), bernilai 78, green 200, dan blue 12. Di dalam program, kita dapat menuliskannya sebagai berikut.

1: const int RED = 0;

2: const int GREEN = 1;

3: const int BLUE = 2;

4:

5: f[0][0][RED] = 78;

6: f[0][0][GREEN] = 200;

7: f[0][0][BLUE] = 12;

3 baris pertama dibuat agar code mudah dibaca. Note: Ini bukanlah satu-satunya cara untuk membuat representasi matrix. Ada banyak jalan menuju Roma!

Pertanyaan yang cukup menarik untuk dijawab adalah apa arti angka 78? Bagaimana meramu campuran RGB agar mendapatkan warna putih atau hitam?

Nilai dari masing-masing komponen berkisar 0 sampai dengan 255 jika direpresentasikan dengan integer (bilangan tanpa ada desimal). warna putih didapat ketika kita memberikan nilai 255 pada setiap komponen. Sebaliknya jika kita memberikan nilai 0 pada semua komponen, kita akan mendapatkan warna hitam. Sebenarnya teknik mencampur seperti ini sesuai dengan kenyataan. Jika kita mencampur warna merah hijau dan biru sebanyak-banyaknya, maka kita akan mendapatkan warna putih. Sebaliknya, warna hitam didapat jika kita tidak mencampur apa-apa.

int atau double?

Seperti yang telah disebutkan kalau nilai dari masing-masing komponen berkisar 0 sampai dengan 255 jika direpresentasikan dalam bentuk integer. Sebenarnya ada represenstasi yang lain, yaitu antara 0 sampai dengan 1 dalam bentuk floating point (bilangan desimal). Penggunaan floating point tentunya memiliki kelebihan dalam presisi ketimbang memakai nilai yang diskrit. Namun demikian, penggunaan floating point akan membuat file citra membesar.

Biasanya citra disimpan dalam representasi integer. Representasi floating point dipergunakan pada saat citra dimodifikasi. Bagaimana cara mengubah dari representasi integer ke floating point? Mudah, tinggal membagi nilai integer dengan angka 255. Sebagai contoh, jika kita ingin mengubah nilai komponen green.

1: double green_d = green_i / 255;

Apa sih kegunaan representasi matrix?

Oh banyak kegunaannya. Salah satu contoh menarik adalah jika kita ingin membuat suatu citra menjadi citra abu2x. Caranya? dengan merata-rata semua komponen dari setiap pixel. Berikut adalah contoh singkat untuk melakukan hal tersebut.

1: for (int x = 0; x < PANJANG_MAX_CITRA; x++)

2: for (int y = 0; y < LEBAR_MAX_CCITRA; y++)

3: {

4: double rata = (f[x][y][RED] + f[x][y][GREEN] + f[x][y][BLUE]) / 3.0;

5: f[x][y][RED] = rata;

6: f[x][y][GREEN] = rata;

7: f[x][y][BLUE] = rata;

8: }

www.pengolahancitra.com

September 12, 2008

Pengolahan Citra

Filed under: Study — m4r1sk4 @ 7:10 am

Definisi Dasar Pengolahan Citra

Citra adalah gambar dua dimensi yang dihasilkan dari gambar analog dua dimensi yang kontinu menjadi gambar diskrit melalui proses sampling. Gambar analog dibagi menjadi N baris dan M kolom sehingga menjadi gambar diskrit. Persilangan antara baris dan kolom tertentu disebut dengan piksel. Contohnya adalah gambar/titik diskrit pada baris n dan kolom m disebut dengan piksel [n,m].Sampling adalah proses untuk menentukan warna pada piksel tertentu pada citra dari sebuah gambar yang kontinu. Pada proses sampling biasanya dicari warna rata-rata dari gambar analog yang kemudian dibulatkan. Proses sampling sering juga disebut proses digitisasi.Kuantisasi yaitu, ada kalanya dalam proses sampling, warna rata-rata yang didapat di relasikan ke level warna tertentu. Contohnya apabila dalam citra hanya terdapat 16 tingkatan warna abu-abu, maka nilai rata-rata yang didapat dari proses sampling harus diasosiasikan ke 16 tingkatan tersebut. Proses mengasosiasikan warna rata-rata dengan tingkatan warna tertentu disebut dengan kuantisasi.

Derau (Noise) adalah gambar atau piksel yang mengganggu kualitas citra. Derau dapat disebabkan oleh gangguan fisis(optik) pada alat akuisisi maupun secara disengaja akibat proses pengolahan yang tidak sesuai. Contohnya adalah bintik hitam atau putih yang muncul secara acak yang tidak diinginkan di dalam citra. bintik acak ini disebut dengan derau salt & pepper.
Banyak metode yang ada dalam pengolahan citra bertujuan untuk mengurangi atau menghilangkan noise.

Operasi pengolahan citra yang dilakukan untuk mentransformasikan suatu citra menjadi citra lain dapat dikategorikan berdasarkan tujuan transformasi maupun cakupan operasi yang dilakukan terhadap citra.
Berdasarkan tujuan transformasi operasi pengolahan citra dikategorikan sebagai berikut :
Peningkatan Kualitas Citra (Image Enhancement)
Operasi peningkatan kualitas citra bertujuan untuk meningkatkan fitur tertentu pada citra.
Pemulihan Citra (Image Restoration) Operasi pemulihan citra bertujuan untuk mengembalikan kondisi citra pada kondisi yang diketahui sebelumnya akibat adanya pengganggu yang menyebabkan penurunan kualitas citra.Berdasarkan cakupan operasi yang dilakukan terhadap citra, Operasi pengolahan citra dikategorikan sebagai berikut :
Operasi titik, yaitu operasi yang dilakukan terhadap setiap piksel pada citra yang keluarannya hanya ditentukan oleh nilai piksel itu sendiri.
Operasi area, yaitu operasi yang dilakukan terhadap setiap piksel pada citra yang keluarannya dipengaruhi oleh piksel tersebut dan piksel lainnya dalam suatu daerah tertentu. Salah satu contoh dari operasi berbasis area adalah operasi ketetanggaan yang nilai keluaran dari operasi tersebut ditentukan oleh nilai piksel-piksel yang memiliki hubungan ketetanggaan dengan piksel yang sedang diolah.
Operasi global, yaitu operasi yang dilakukan tehadap setiap piksel pada citra yang keluarannya ditentukan oleh (more…)

Theme: Banana Smoothie. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.