STRUKTUR DATA CITRA DIGITAL & FORMAT CITRA BITMAP Rinaldi Munir
PENDAHULUAN
IMAGE
DIGITALIZATION
DIGITAL IMAGE DATA STRUCTURE in computer
POKOK BAHASAN • • • • • •
Matriks Menampilkan Citra ke Layar Membaca Citra dari Arsip Menyimpan Citra ke Dalam Arsip Format Berkas Bitmap Primitif Citra Bitmap
MATRIKS
BINARY IMAGE
RGB IMAGE
GRAYSCALE IMAGE
MODEL MATRIKS CITRA DIGITAL f(0,0) f(1,0)
f(0,1) f(1,1)
… …
f(0,M) f(1,M)
f(N-1,0)
f(N-1,1)
…
f(N-1,M-1)
f(x,y) =
N = baris Misal:
M = kolom
Untuk citra dengan 256 derajat keabuan, harga setiap elemen matriks merupakan bilangan bulat dalam selang [0,255]
TIPE DATA CITRA DIGITAL • • • • •
Citra digital memiliki data yang besar Citra digital dimodelkan dalam matriks Tipe data citra digital yaitu pointer Pointer memanfaatkan larik (array) Pointer adalah penunjuk alamat suatu memori • Digunakan tipe data pointer agar menghemat memori
CONTOH ALGORITMA ALOKASI MEMORI UNTUK CITRA f DALAM BAHASA C Citra Alokasi (int N,int M) /* Alokasi untuk citra NxM pixel. */ { int i; f=(unsigned char**)malloc(N * sizeof(unsigned char*)); if (f=null) return (null); /*memori habis*/ for (i=0;i
MENAMPILKAN CITRA KE LAYAR
Image File
Layar
PROSEDUR MENAMPILKAN CITRA KE LAYAR
• Card Graphic harus tersedia pada komputer • Card mampu menghasilkan warna untuk setiap unsur RGB (Red, Green, Blue) • Prosedur menampilkan Citra berwarna disimpan dalam matriks r , g , b (algoritma pertama) • Jika citra adalah hitam putih, maka perubahan pada algoritma kedua
ALGORITMA MENAMPILKAN CITRA BERWARNA { int i,j; for (i=0;i
setpixel ( f [ i ] [ j ] , f [ i ] [ j ] , f [ i ] [ j ] , j , i) ;
MEMBACA CITRA DARI ARSIP
ARSIP CITRA
PC
ARSIP CITRA DIGITAL • Citra disimpan dalam arsip biner • Citra dapat memiliki header atau tanpa header • Header merupakan awal arsip • Header berisi informasi bagaimana citra disimpan • Header berfungsi mengetahui cara membaca data dari citra
STRUKTUR DATA ARSIP CITRA MENTAH N
M
...
...
2 byte 2 byte
M byte
M byte
... ...
...
... M byte
N kali
• • • • •
Mula-mula membaca data tinggi (N) dan lebar (M) Data pixel-pixel dalam sitra dibaca baris per baris Panjang setiap baris = M byte Setiap byte ke-j dan beris i menyatakan nilai pixel pada koordinat (i,j) Nilai ini disimpan dalam matriks (f [ i ] [ j ])
MENYIMPAN CITRA KE DALAM ARSIP
PC
ARSIP CITRA
PROSEDUR MENYIMPAN CITRA DALAM ARSIP
• Ukuran citra N dan M disimpan pada awal arsip • Misal ukuran pixel NxM, 256x256 pixel, maka jumlah byte N = 2 byte, M = 2 byte • Data citra disimpan baris per baris pixel
FORMAT BERKAS BITMAP
Apa itu BITMAP? • Salah satu format citra dari sekian banyak format citra digital yang tersedia • Sangat sederhana dalam implementasinya – memiliki cara pembacaan, penyimpanan yang mudah
• Banyak digunakan pada aplikasi Windows OS – Terdapat pula dalam Unix
Bitmap Format • Seperti format citra pada umummnya, format citra bitmap terdiri atas: – Header – mengandung informasi deskripsi tentang gambar seperti lebar, tinggi, dsb – Body – mengandung informasi warna gambar tiap pixel (raster scanned)
STRUKTUR BITMAP BITMAP FILE HEADER BITMAPINFO
RGB QUAD (Palette) BITMAPINFOHEADER
Pixels
SUSUNAN FORMAT BERKAS BITMAP
Header berkas Header Bitmap Informasi Palet Data Bitmap 14 byte
• • • • • •
12 s/d 64 byte
0 s/d 1024 byte
N byte
Ukuran header sama untuk semua versi (14 byte) byte 1-2 = BmpType (tipe berkas bitmap) byte 3-6 = BmpSize (Ukuran berkas bitmap) byte 7-8 = XhotSpot (X hotspot untuk kursor) byte 9-10 = YhotSpot (Y hotspot untuk kursor) byte 11-14 = OffBits (ofset ke awal data bitmap)
JENIS HEADER BITMAP • Bitmap versi lama (12 byte) • Bitmap versi baru Microsoft Windows (40 byte) • Bitmap versi baru IBM OS/2 (64 byte)
Header Bitmap Versi Lama Byte ke-
Panjang (byte)
Nama
Keterangan
1-4
4 HdrSize
Ukuran header dalam suatu byte
5-6
2 Width
Lebar bitmap dalam satuan pixel
7-8
2 Height
Tinggi bitmap dalam satuan pixel
9-10
2 Planes
Jumlah plane (Umumnya 1)
2 BitCount
Jumlah bit per pixel
11-12
Header Bitmap Versi Baru Microsoft Windows (40 byte) Byte ke-
Panjang (byte)
Nama
Keterangan
1-4
4 HdrSize
Ukuran header dalam suatu byte
5-8
4 Width
Lebar bitmap dalam satuan pixel
9-12
4 Height
Tinggi bitmap dalam satuan pixel
13-14
2 Planes
Jumlah plane (Umumnya 1)
15-16
2 BitCount
Jumlah bit per pixel
17-20
4 Compression
0=tidak dikompresi, 1=dikompresi
21-24
4 ImgSize
Ukuran bitmap dalam byte
25-28
4 HorzRes
Resolusi Horisontal
29-32
4 VertRes
Resolusi Vertikal
33-36
4 ClrUsed
Jumlah warna yang digunakan
37-40
4 ClrImportant
Jumlah warna yang penting
Tambahan Byte pada Header Bitmap versi Baru IBM OS/2 (64 byte) Byte ke-
Panjang (byte)
Nama
Keterangan
41-42
2 Units
Satuan pengukuran yang dipakai
43-44
2 Reserved
Field cadangan
45-46
2 Recording
Algoritma perekaman
47-48
2 Rendering
Algoritma Halftoning
49-52
4 Size1
Nilai ukuran 1
53-56
4 Size2
Nilai Ukuran 2
57-60
4 ClrEncoding
Pengkodean warna
61-64
4 Identifier
Kode yang digunakan aplikasi
PRIMITIF CITRA BITMAP • Berkas header – berisi struktur data citra bitmap
• • • • • •
Membaca citra dari arsip Menyimpan citra ke dalam arsip Membaca header berkas bitmap Membaca data bitmap Menampilkan citra ke layar Alokasi/dealokasi memori matriks(citra)
DAFTAR ACUAN • Munir, Rinaldi. Pengolahan Citra Digital dengan Pendekatan Algoritmik. 2004. Penerbit Informatika. Bandung • mdid.org/Papers/vra2005/hegg_knab_updike.ppt • http://www.brackeen.com/home/vga/bitmaps.html • www.busim.ee.boun.edu.tr/~ee475/projeler/VectorMedia nFiltering/presentation/EE%20475F.ppt • www.students.tut.fi/~ferreira/exercise1/MatlabIntroductio n.ppt • http://mpa.itc.it/markus/grass61progman/bitmap_8csource.html • http://www.pythonware.com/library/pil/handbook/introduc tion.htm
TERIMAKASIH