You are on page 1of 27

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(0,1) … f(0,M)


f(1,0) f(1,1) … f(1,M)
f(x,y) =
f(N-1,0) f(N-1,1) … f(N-1,M-1)

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<N;i++)
{
f[i]=(unsigned char*)malloc(M*sizeof(unsigned char));
if (f[i]==null)
{
dealokasi(f,N);
return(null)
}
}
return f;
}
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<N;i++)
setpixel (r [ i ] [ j ] , g [ i ] [ j ] , b [ i ] [ j]);
}

PERUBAHAN ALGORITMA PADA SAAT MENAMPILKAN CITRA


HITAM PUTIH

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 Pixels


BITMAPINFO

RGB QUAD (Palette)


BITMAPINFOHEADER
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 Nama Keterangan


(byte)

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)

11-12 2 BitCount Jumlah bit per pixel


Header Bitmap Versi Baru
Microsoft Windows (40 byte)
Byte ke- Panjang Nama Keterangan
(byte)
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 Nama Keterangan
(byte)
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_8c-
source.html
• http://www.pythonware.com/library/pil/handbook/introduc
tion.htm
TERIMAKASIH

You might also like