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(N-1,0) f(N-1,1) … f(N-1,M-1) f(x,y) = N = baris M = kolom Misal: 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 PC ARSIP CITRA
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 ... M N 2 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 BITMAPINFOHEADER RGB QUAD (Palette) Pixels
SUSUNAN FORMAT BERKAS BITMAP Data Bitmap Informasi Palet Header Bitmap Header berkas 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)
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 Height Tinggi bitmap dalam satuan pixel 9-10 Planes Jumlah plane (Umumnya 1) 11-12 BitCount Jumlah bit per pixel
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 Width Lebar bitmap dalam satuan pixel 9-12 Height Tinggi bitmap dalam satuan pixel 13-14 2 Planes Jumlah plane (Umumnya 1) 15-16 BitCount Jumlah bit per pixel 17-20 Compression 0=tidak dikompresi, 1=dikompresi 21-24 ImgSize Ukuran bitmap dalam byte 25-28 HorzRes Resolusi Horisontal 29-32 VertRes Resolusi Vertikal 33-36 ClrUsed Jumlah warna yang digunakan 37-40 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 Reserved Field cadangan 45-46 Recording Algoritma perekaman 47-48 Rendering Algoritma Halftoning 49-52 4 Size1 Nilai ukuran 1 53-56 Size2 Nilai Ukuran 2 57-60 ClrEncoding Pengkodean warna 61-64 Identifier Kode yang digunakan aplikasi
PRIMITIF CITRA BITMAP Berkas header Membaca citra dari arsip 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/VectorMedianFiltering/presentation/EE%20475F.ppt www.students.tut.fi/~ferreira/exercise1/MatlabIntroduction.ppt http://mpa.itc.it/markus/grass61progman/bitmap_8c-source.html http://www.pythonware.com/library/pil/handbook/introduction.htm
TERIMAKASIH