Struktur Data untuk Citra Digital


Struktur Data Pada Citra
Citra digital diolah dengan menggunakan komputer, oleh karena itu kita perlu mendefinisikan struktur data untuk merepresentasikan citra di dalam memori komputer. Matriks adalah struktur data yang tepat untuk merepresentasikan citra digital. Elemen-elemen matriks dapat diakses secara langsung melalui indeksnya (baris dan kolom). Di dalam bab ini kita akan mendefinisikan struktur data matriks untuk citra digital. Notasi algoritmik yang kita gunakan untuk menjelaskan struktur data ini (beserta beberapa primitif operasi citra) adalah notasi Bahasa C (lebih tepatnya notasi ANSI C). Pemrograman citra digital lebih cocok menggunakan Bahasa C karena Bahasa C mempunyai penanganan tipe pointer yang lebih dinamis daripada Bahasa Pascal. Pada pembahasan nanti kita akan melihat bahwa struktur data matriks direpresentasikan dengan menggunakan tipe pointer mengingat ukuran matriks tidak diketahui sebelum pemrosesan citra digital. 

Struktur Kerja Data Pada Citra adalah sebagai berikut :


1. Matriks
Sebagaimana telah dijelaskan sebelumnya, citra digital yang berukuran N dan  M umum dinyatakan dengan matriks N baris dan M kolom sebagai berikut: 
Keterangan :
M = Kolom
N = Baris


Untuk citra dengan 256 derajat keabuan, harga setiap elemen matriks adalah bilangan bulat di dalam selang [0, 255]. Karena itu, kita dapat menggunakan tipe unsigned char untuk menyatakan tipe elemen matriks. Unsigned char adalah tipe integer positif di dalam Bahasa C yang rentang nilainya hanya dari 0 sampai 255. Kita dapat menggunakan matriks statik untuk merepresentasikan citra digital secara fisik di dalam memori komputer.

2. Menampilkan Citra Ke Layar

Citra ditampilkan ke layar peraga jika card grafik tersedia pada komputer yang digunakan dan card tersebut mampu menghasilkan warna untuk setiap komponen RGB (Red, Green, Blue). Fungsi baku untuk menampilkan citra adalah set pixel: 

3. Membaca Citra Dari Arsip

Citra disimpan di dalam arsip biner untuk sewaktu-waktu dibuka dan dibaca kembali. Arsip tersebut ada yang mempunyai header dan ada yang tanpa header. Header adalah informasi yang terletak pada bagian awal arsip. Header berisi informasi bagaimana citra disimpan. Kita perlu mengetahui header agar kita mengetahui cara membaca data citra. Saat ini terdapat bermacam-macam format penyimpanan citra di dalam arsip (misalnya BMP, GIF, TIFF, PCX, JPG, dan lain-lain). Dua format yang populer saat ini dan seolah-olah menjadi standard adalah GIF dan JPG. Pembahasan format-format citra di dalam arsip diluar cakupan. Namun khusus format bitmap (BMP) akan diberikan sebagai satu studi kasus.

4. Menyimpan Citra Kedalam Arsip

Operasi menyimpan citra ke dalam arsip merupakan kebalikan dari operasi arsip. Citra disimpan di dalam dengan susunan yang sama.

5. Format Berkas Citra Bitmap

Citra disimpan di dalam berkas (file) dengan format tertentu. Format citra yang baku di lingkungan sistem operasi Microsoft Windows dan IBM OS/2 adalah berkas bitmap (BMP). Saat ini format BMP memang “kalah” populer dibandingkan format JPG atau GIF. Hal ini karena berkas BMP pada umumnya tidak dimampatkan, sehingga ukuran berkasnya relatif lebih besar daripada berkas JPG maupun GIF. Hal ini juga yang menyebabkan format BMP sudah jarang digunakan. 

Meskipun format BMP tidak mangkus dari segi ukuran berkas, namun format BMP mempunyai kelebihan dari segi kualitas gambar. Citra dalam format BMP lebih bagus daripada citra dalam format yang lainnya, karena citra dalam format BMP umumnya tidak dimampatkan sehingga tidak ada informasi yang hilang (pemampatan citra dibahas secara mendalam di dalam Bab 10). Terjemahan bebas bitmap adalah pemetaan bit. Artinya, nilai intensitas pixel di dalam citra dipetakan ke sejumlah bit tertentu. Peta bit yang umum adalah 8, artinya setiap pixel panjangnya 8 bit. Delapan bit ini merepresentasikan nilai intensitas pixel. Dengan demikian ada sebanyak 28 = 256 derajat keabuan, mulai dari 0 sampai 255.


Berikut Contoh Header bitmap versi baru dari IBM OS/2 (64 byte) 

Informasi palet warna terletak sesudah header bitmap. Informasi palet warna dinyatakan dalam suatu tabel RGB. Setiap entry pada tabel terdiri atas tiga buah field, yaitu R (red), G (green), dan B (blue). 

Data bitmap diletakkan sesudah informasi palet. Penyimpanan data bitmap di dalam berkas disusun terbalik dari bawah ke atas dalam bentuk matriks yang berukuran Height dan Width. Baris ke-0 pada matriks data bitmap menyatakan data pixel di citra baris terbawah, sedangkan baris terakhir pada matriks menyatakan data pixel di citra baris teratas.

Contoh format citra 8-bit kira-kira seperti, Format citra 4-bit (16 warna) serupa dengan format citra 8-bit. Pada citra 4-bit dan citra 8-bit, warna suatu pixel diacu dari tabel informasi palet pada entry ke-k (k merupakan nilai dengan rentang 0 – 15 untuk citra 16 warna dan 0 – 255 untuk citra 256 warna). Sebagai contoh pada, pixel pertama bernilai 2; warna pixel pertama ini ditentukan oleh komponen RGB pada tabel palet warna entry ke-2, yaitu R = 14, G = 13, dan B = 16. Pixel kedua serupa dengan pixel pertama. Pixel ketiga bernilai 1, warnanya ditentukan oleh komponen RBG pada tabel warna entry ke- 1, yaitu R = 20, G = 45, dan B = 24. 

Komentar

Postingan populer dari blog ini

Operasi-operasi Dasar Pengolahan Citra Digital

Pemampatan Citra