Outline
- Representasi citra digital
- Kuantisasi citra
- Kualitas citra
- Cara membaca citra
- Cara mendapatkan ukuran citra
- Cara menampilkan citra
- Pemahaman jenis citra Konversi jenis citra
Representasi Citra Digital
Citra digital dibentuk oleh kumpulan titik yang dinamakan piksel (pixel atau “picture element”). Setiap piksel digambarkan sebagai satu kotak kecil. Setiap piksel mempunyai koordinat posisi dan memiliki nilai yang menu jukkan tingkat kecerahan warna.

Dengan sistem koordinat yang mengikuti asas pemindaian pada layar TV standar itu, sebuah piksel mempunyai koordinat berupa:
(x, y)
Dalam hal ini,
- x menyatakan posisi kolom;
- y menyatakan posisi baris;
- piksel pojok kiri-atas mempunyai koordinat (0, 0) dan piksel pada pojok kanan-bawah mempunyai koordinat (N-1, M-1).
Dengan menggunakan notasi pada Octave dan MATLAB, citra dinyatakan dengan f(y, x). Sebagai contoh, citra yang berukuran 12x12 yang terdapat pada Gambar (a) memiliki susunan data seperti terlihat pada Gambar (b). Adapun Gambar (c) menunjukkan contoh penotasian f(y,x). Berdasarkan gambar tersebut maka:
- f(2,1) bernilai 6
- f(4,7) bernilai 237
Pada citra berskala keabuan, nilai seperti 6 atau 237 dinamakan sebagai intensitas

.

| Catatan: Dalam praktik, penggunaan koordinat pada sistem tertentu mempunyai sedikit perbedaan. Misalnya, pada Octave dan MATLAB, piksel pojok kiri-atas tidak mempunyai koordinat (0, 0) melainkan (1, 1). Selain itu, setiap piksel pada Octave dan MATLAB diakses melalui notasi (baris, kolom). Mengingat artikel ini menggunakan contoh dengan Octave dan MATLAB, maka notasi yang digunakan disesuaikan dengan Octave dan MATLAB. Sebagai contoh, koordinat piksel akan ditulis dengan (y, x) dan koordinat pojok kanan-atas akan dinyatakan dengan (1, 1). |
Kuantisasi Citra
Citra digital sesungguhnya dibentuk melalui pendekatan yang dinamakan kuantisasi. Kuantisasi adalah prosedur yang dipakai untuk membuat/mengubah suatu isyarat/sinyal yang bersifat kontinu ke dalam bentuk diskret. Untuk mempermudah pemahaman konsep ini, coba perhatikan Gambar (a) menyatakan isyarat analog menurut perjalanan waktu t, sedangkan Gambar (b) menyatakan isyarat diskret. Pada isyarat digital, nilai intensitas citra dibuat diskret atau terkuantisasi dalam sejumlah nilai bulat.

Gambar (a) di bawah ini menunjukkan contoh citra biner dua nilai intensitas berupa 0 (hitam) dan 1 (putih). Selanjutnya, gambar tersebut ditumpangkan pada grid 8x8 seperti yang diperlihatkan pada Gambar (b).
Bagian gambar yang jatuh pada kotak kecil dengan luas lebih kecil dibanding warna putih latar belakang, seluruh isi kotak dibuat putih. Sebaliknya, jika mayoritas hitam, isi kotak seluruhnya dibuat hitam. Hasil perubahan ke citra digital tampak pada Gambar (c). Adapun Gambar (d) memperlihatkan bilangan yang mewakili warna hitam (0) dan putih (1). Dengan demikian, citra digital akan lebih baik (lebih sesuai aslinya) apabila ukuran piksel diperkecil atau jumlah piksel.

Bagaimana halnya kalau gambar mengandung unsur warna (tidak sekadar hitam dan putih)? Prinsipnya sama saja, tetapi sebagai pengecualian, warna hitam diberikan tiga unsur warna dasar, yaitu merah (R = red), hijau (G = green), dan biru (B = blue). Pada citra berwarna terdapat 16.777.216 variasi warna apabila setiap komponen R, G, dan B mengandung 256 aras intensitas Namun, kepekaan mata manusia untuk membedakan macam warna sangat terbatas, yakni jauh di bawah enam belas juta lebih tersebut.

.

Seperti halnya pada citra monokrom (hitam-putih) standar, dengan variasi intensitas dari 0 hingga 255.

.

.
Untuk beberapa keperluan tertentu, jumlah gradasi intensitas saling berbeda. Tabel 2.1 memberikan lima contoh untuk citra beraras keabuan dan Tabel 2.2 menunjukkan empat contoh penggunaan citra berwarna (RGB). Bit Per Piksel (BPP) --> jumlah warna yang berbeda-beda yang terdapat pada sebuah piksel.

.

.
Dalam pengolahan citra, kuantisasi aras intensitas menentukan kecermatan hasilnya. Dalam praktik, jumlah aras intensitas piksel dapat dinyatakan dengan kurang dari 8 bit. Contoh berikut menunjukkan citra yang dikuantisasi dengan menggunakan 8, 5, 4, 3, 2, dan 1 bit.
Pada kuantisasi dengan 1 bit, jumlah level sebanyak 2 (21). Oleh karena itu, warna yang muncul berupa hitam dan putih saja. Perlu diketahui, penurunan jumlah aras pada tingkat tertentu membuat mata manusia masih bisa menerima citra dengan baik. Sebagai contoh, citra dengan 4 bit dan citra dengan 8 bit praktis terlihat sama. Hal seperti itulah yang mendasari gagasan pemampatan data citra, mengingat citra dengan jumlah bit lebih rendah tentu akan membutuhkan tempat dan transmisi yang lebih hemat.

Kualitas Citra
Di samping cacah intensitas kecerahan, jumlah piksel yang digunakan untuk menyusun suatu citra mempengaruhi kualitas citra. Istilah resolusi citra biasa dinyatakan jumlah piksel pada arah lebar dan tinggi. Resolusi piksel biasa dinyatakan dengan notasi m x n, dengan m menyatakan tinggi dan n menyatakan lebar dalam jumlah piksel. Contoh pada Gambar (a) menunjukkan bahwa kalau gambar apel hanya dinyatakan dalam 8 x 8 piksel, citra yang terbentuk sangat berbeda dengan aslinya.

Seandainya jumlah piksel yang digunakan lebih banyak, tentu akan lebih mendekati dengan gambar aslinya. Di bawah ini memperlihatkan efek resolusi piksel untuk menampilkan gambar yang sama. Terlihat bahwa pada resolusi tertentu citra menjadi kabur karena jumlah piksel yang makin sedikit.
Resolusi spasial ditentukan oleh jumlah piksel per satuan panjang. Istilah seperti dpi (dot per inch) menyatakan jumlah piksel per inci. Misalnya, citra 300 dpi menyatakan bahwa citra akan dicetak dengan jumlah piksel sebanyak 300 sepanjang satu inci
Berdasarkan hal itu, maka citra dengan resolusi ruang spasial sebesar 300 dpi dicetak di kertas dengan ukuran lebih kecil daripada yang mempunyai resolusi ruang sebesar 150 dpi, meskipun kedua gambar memiliki resolusi piksel yang sama.

Membaca Citra
Untuk kepentingan memudahkan dalam memahami hasil proses pengolahan citra, Anda perlu mengenal perintah yang berguna untuk membaca citra yang tersimpan dalam bentuk file. Octave dan Matlab menyediakan fungsi bernama imread. Bentuk pemanggilannya:
Img = imread(nama_file_citra)

Dalam hal ini, nama_file_citra menyatakan nama file citra yang hendak dibaca dan Img menyatakan larik (array) yang menampung data citra yang dibaca. Perlu diketahui, format-format gambar yang bisa dibaca oleh imread ditunjukkan pada Tabel 2.3.


Mengetahui Ukuran Citra
Secara umum, ukuran matriks Img adalah M x N. Untuk mengetahui nilai M dan N yang sesungguhnya, dapat digunakan fungsi pada Octave/Matlab yang bernama size. Contoh untuk mengetahui dimensi pada matriks img:

Dengan cara seperti itu, terlihat bahwa Img berisi 512 baris dan 512 kolom piksel. Untuk mendapatkan jumlah baris dan jumlah kolom secara tersendiri, perlu diberikan perintah seperti berikut:

.
Angka 1 dan 2 pada ukuran menyatakan indeks. Dengan cara seperti itu, jum_baris berisi jumlah baris pada larik Img dan jum_kolom berisi jumlah kolom pada larik Img. Sebagai alternatif, dapat ditulis perintah seperti berikut:

Menampilkan Citra
Citra dapat ditampilkan dengan mudah melalui fungsi imshow. Contoh berikut digunakan untuk menampilkan citra yang terdapat di img:

.

Apabila dikehendaki untuk menampilkan dua citra di dua jendela masingmasing, fungsi figure perlu dipanggil terlebih dulu sebelum memanggil imshow. Hasilnya, gambar sungai ditampilkan di jendela 1 dan gambar bangunan diletakkan di jendela 2. Contoh:


.
Octave dan Matlab menyediakan fasilitas yang memungkinkan dua buah citra diletakkan dalam satu jendela. Berdasarkan larik sungai dan bangunan di depan, dapat dicoba untuk memberikan perintah berikut:


Mengenal Jenis Citra
Ada tiga jenis citra yang umum digunakan dalam pemrosesan citra. Ketiga jenis citra tersebut yaitu :
- Citra Berwarna
- Citra berskala keabuan
- Citra biner
1. Citra Berwarna
Citra berwarna, atau biasa dinamakan citra RGB, merupakan jenis citra yang menyajikan warna dalam bentuk komponen R (merah), G (hijau), dan B (biru). Setiap komponen warna menggunakan 8 bit (nilainya berkisar antara 0 sampai dengan 255). Kemungkinan warna yang bisa disajikan mencapai 255 x 255 x 255 atau 16.581.375 warna. Tabel ini menunjukkan contoh warna yang dihasilkan dari kombinasi nilai R,G, dan B.

Gambar di bawah ini menunjukkan pemetaan warna dalam ruang tiga dimensi dan keadaan suatu citra dan representasi warnanya.

.

Citra berwarna pun dibaca melalui imread. Contoh:

sekarang dapat dicoba untuk mengenakan size pada Kotaku:

Hasilnya menunjukkan bahwa Kotaku berupa larik berdimensi tiga, dengan dimensi ketiga berisi tiga buah nilai. Hal inilah yang membedakan dengan citra berskala keabuan.

Dimensi ketiga menyatakan komponen R, G, B. Indeks pertama menyatakan komponen R, indeks kedua menyatakan komponen G, dan indeks ketiga menyatakan komponen B. Berikut adalah cara untuk mendapatkan komponen R, G, dan B pada larik Kotaku di depan:

Untuk menampilkan gambar berwarna, imshow bisa digunakan seperti kalau mau menampilkan gambar berskala keabuan. Contoh:


2. Citra Berskala Keabuan
Sesuai dengan nama yang melekat, citra jenis ini menangani gradasi warna hitam dan putih, yang tentu saja menghasilkan efek warna abu-abu. Pada jenis gambar ini, warna dinyatakan dengan intensitas. Dalam hal ini, intensitas berkisar antara 0 sampai dengan 255. Nilai 0 menyatakan hitam dan nilai 255 enyatakan
putih.

3. Citra Biner
Citra biner adalah citra dengan setiap piksel hanya dinyatakan dengan sebuah nilai dari dua buah kemungkinan (yaitu nilai 0 dan 1). Nilai 0 menyatakan warna hitam dan nilai 1 menyatakan warna putih. Citra jenis ini banyak dipakai dalam pemrosesan citra, misalnya untuk kepentingan memperoleh tepi bentuk suatu objek. Sebagai contoh, perhatikan Gambar di bawah ini. Bagian kiri menyatakan citra beraras keabuan, sedangkan bagian kanan adalah hasil konversi ke citra biner.

Contoh berikut menunjukkan cara membaca dan menampilkan citra biner.


Mengkonversi Jenis Citra (RGB --> Grayscale)
Dalam praktik, seringkali diperlukan utuk mengonversi citra berwarna ke dalam bentuk citra berskala keabuan mengingat banyak pemrosesan citra yang bekerja pada skala keabuan. Namun, terkadang citra berskala keabuan pun perlu dikonversikan ke citra biner, mengingat beberapa operasi dalam pemrosesan citra berjalan pada citra biner. Bagaimana cara mengubah citra berwarna ke dalam citra berskala keabuan?. Secara umum citra berwarna dapat dikonversikan ke citra berskala keabuan melalui rumus:

dengan R menyatakan nilai komponen merah, G menyatakan nilai komponen hijau, dan B menyatakan nilai komponen biru. Misalnya, sebuah piksel mempunyai komponen R, G, B sebagai berikut: (R = 50, G = 70, B = 61). Jika a, b, dan c pada Persamaan di atas dibuat sama, akan diperoleh hasil seperti berikut:

Salah satu contoh rumus yang biasa dipakai untuk mengubah ke skala keabuan yaitu:

Contoh berikut menunjukkan cara melakukan konversi dari citra berwarna ke citra biner.


Mengkonversi Jenis Citra (Grayscale --> Biner)
Strategi yang dipakai yaitu dengan menerapkan suatu nilai yang dikenal sebagai nilai ambang (threshold). Nilai tersebut dipakai untuk menentukan suatu intensitas akan dikonversikan menjadi 0 atau menjadi 1. Secara matematis, konversi dinyatakan dengan rumus:

.


Hasil:

Menyimpan Citra
Untuk kepentingan menyimpan citra ke dalam file, fungsi imwrite pada Octave/Matlab dapat digunakan. Pemakaiannya:

A dapat berupa larik dua dimensi (citra berskala keabuan) ataupun larik berdimensi tiga (citra RGB).

