STRUKTUR DATA CITRA DIGITAL
STRUKTUR DATA CITRA DIGITAL
&
&
FORMAT CITRA BITMAP
FORMAT CITRA BITMAP
Rinaldi Munir
PENDAHULUA
PENDAHULUA
N
N
DIGITAL IMAGE DIGITAL IMAGE DATA
DATA
STRUCTURE STRUCTURE
in computer in computer
IMAGE
IMAGE DIGITALIZATIODIGITALIZATIO N
POKOK BAHASAN
POKOK BAHASAN
•
Matriks
Matriks
•
Menampilkan
Menampilkan
Citra
Citra
ke
ke
Layar
Layar
•
Membaca
Membaca
Citra
Citra
dari
dari
Arsip
Arsip
•
Menyimpan
Menyimpan
Citra
Citra
ke
ke
Dalam
Dalam
Arsip
Arsip
MATRIKS
MATRIKS
BINARY IMAGE BINARY IMAGE
GRAYSCALE GRAYSCALE IMAGE
IMAGE
MODEL MATRIKS CITRA DIGITAL
MODEL MATRIKS CITRA DIGITAL
f(0,0)
f(0,0) f(0,1)f(0,1) …… f(0,M)f(0,M) f(1,0)
f(1,0) f(1,1)f(1,1) …… f(1,M)f(1,M)
f(N-1,0)
f(N-1,0) f(N-1,1)f(N-1,1) …… f(N-1,M-1)f(N-1,M-1)
f(x,y)
f(x,y)
=
=
Misal:
Untuk citra dengan 256 derajat keabuan, harga setiap elemen matriks merupakan bilangan bulat dalam
selang [0,255]
TIPE DATA CITRA DIGITAL
TIPE DATA CITRA DIGITAL
•
Citra digital memiliki data yang besar
Citra digital memiliki data yang besar
•
Citra digital dimodelkan dalam matriks
Citra digital dimodelkan dalam matriks
•
Tipe data citra digital yaitu pointer
Tipe data citra digital yaitu pointer
•
Pointer memanfaatkan larik (array)
Pointer memanfaatkan larik (array)
•
Pointer adalah penunjuk alamat suatu
Pointer adalah penunjuk alamat suatu
memori
memori
•
Digunakan tipe data pointer agar
Digunakan tipe data pointer agar
menghemat memori
CONTOH ALGORITMA ALOKASI MEMORI UNTUK
CONTOH ALGORITMA ALOKASI MEMORI UNTUK
CITRA f DALAM BAHASA C
CITRA f DALAM BAHASA C
Citra Alokasi (int N,int M)
Citra Alokasi (int N,int M)
/* Alokasi untuk citra NxM pixel. */
/* Alokasi untuk citra NxM pixel. */
{
{
int i;
int i;
f=(unsigned char**)malloc(N * sizeof(unsigned
f=(unsigned char**)malloc(N * sizeof(unsigned
char*));
char*));
if (f=null) return (null); /*memori habis*/
if (f=null) return (null); /*memori habis*/
for (i=0;i<N;i++)
for (i=0;i<N;i++)
{
{
f[i]=(unsigned char*)malloc(M*sizeof(unsigned
f[i]=(unsigned char*)malloc(M*sizeof(unsigned
MENAMPILKAN CITRA KE
MENAMPILKAN CITRA KE
LAYAR
LAYAR
Layar Layar Image File
PROSEDUR MENAMPILKAN CITRA KE
PROSEDUR MENAMPILKAN CITRA KE
LAYAR
LAYAR
•
Card Graphic harus tersedia pada
Card Graphic harus tersedia pada
komputer
komputer
•
Card mampu menghasilkan warna
Card mampu menghasilkan warna
untuk setiap unsur RGB (
untuk setiap unsur RGB (
Red
Red
,
,
Green
Green
,
,
Blue
Blue
)
)
•
Prosedur menampilkan Citra berwarna
Prosedur menampilkan Citra berwarna
disimpan dalam matriks
disimpan dalam matriks
r
r
,
,
g
g
,
,
b
b
(
(
algoritma
algoritma
pertama
pertama
)
)
•
Jika citra adalah hitam putih, maka
Jika citra adalah hitam putih, maka
perubahan pada
ALGORITMA MENAMPILKAN CITRA BERWARNA
ALGORITMA MENAMPILKAN CITRA BERWARNA
{
PERUBAHAN ALGORITMA PADA SAAT MENAMPILKAN CITRA
PERUBAHAN ALGORITMA PADA SAAT MENAMPILKAN CITRA
HITAM PUTIH
HITAM PUTIH
MEMBACA CITRA DARI ARSIP
MEMBACA CITRA DARI ARSIP
ARSIP CITRA
ARSIP CITRA DIGITAL
ARSIP CITRA DIGITAL
•
Citra disimpan dalam arsip biner
Citra disimpan dalam arsip biner
•
Citra dapat memiliki header atau tanpa
Citra dapat memiliki header atau tanpa
header
header
•
Header merupakan awal arsip
Header merupakan awal arsip
•
Header berisi informasi bagaimana citra
Header berisi informasi bagaimana citra
disimpan
disimpan
•
Header berfungsi mengetahui cara
Header berfungsi mengetahui cara
membaca data dari citra
STRUKTUR DATA ARSIP CITRA
STRUKTUR DATA ARSIP CITRA
MENTAH
•
Mula-mula membaca data tinggi (N) dan lebar (M)Mula-mula membaca data tinggi (N) dan lebar (M)•
Data pixel-pixel dalam sitra dibaca baris per barisData pixel-pixel dalam sitra dibaca baris per baris•
Panjang setiap baris = M bytePanjang setiap baris = M byte•
Setiap byte ke-j dan beris i menyatakan nilai pixel pada Setiap byte ke-j dan beris i menyatakan nilai pixel pada koordinat (i,j)koordinat (i,j)
MENYIMPAN CITRA KE DALAM
MENYIMPAN CITRA KE DALAM
ARSIP
ARSIP
ARSIP CITRA ARSIP CITRA PC
PROSEDUR MENYIMPAN CITRA DALAM
PROSEDUR MENYIMPAN CITRA DALAM
ARSIP
ARSIP
•
Ukuran citra N dan M disimpan pada awal
Ukuran citra N dan M disimpan pada awal
arsip
arsip
•
Misal ukuran pixel NxM, 256x256 pixel,
Misal ukuran pixel NxM, 256x256 pixel,
maka jumlah byte N = 2 byte, M = 2 byte
maka jumlah byte N = 2 byte, M = 2 byte
Apa itu
Apa itu
BITMAP
BITMAP
?
?
•
Salah satu format citra dari sekian
Salah satu format citra dari sekian
banyak format citra digital yang tersedia
banyak format citra digital yang tersedia
•
Sangat sederhana dalam
Sangat sederhana dalam
implementasinya
implementasinya
–
memiliki cara pembacaan,
memiliki cara pembacaan,
penyimpanan yang mudah
penyimpanan yang mudah
•
Banyak digunakan pada aplikasi
Banyak digunakan pada aplikasi
Windows OS
Windows OS
Bitmap Format
Bitmap Format
•
Seperti format citra pada umummnya,
Seperti format citra pada umummnya,
format citra
format citra
bitmap
bitmap
terdiri atas:
terdiri atas:
–
Header – mengandung informasi
Header – mengandung informasi
deskripsi tentang gambar seperti
deskripsi tentang gambar seperti
lebar, tinggi, dsb
lebar, tinggi, dsb
–
Body – mengandung informasi
Body – mengandung informasi
warna gambar tiap pixel (raster
warna gambar tiap pixel (raster
scanned)
STRUKTUR BITMAP
STRUKTUR BITMAP
BITMAP FILE HEADER
BITMAPINFO
BITMAPINFOHEADER
RGB QUAD (Palette)
SUSUNAN FORMAT BERKAS
SUSUNAN FORMAT BERKAS
BITMAP
•
Ukuran header sama untuk semua versi (14 byte)
Ukuran header sama untuk semua versi (14 byte)
•
byte 1-2
byte 1-2
= BmpType (tipe berkas bitmap)
= BmpType (tipe berkas bitmap)
•
byte 3-6
byte 3-6
= BmpSize (Ukuran berkas bitmap)
= BmpSize (Ukuran berkas bitmap)
•
byte 7-8
byte 7-8
= XhotSpot (X hotspot untuk kursor)
= XhotSpot (X hotspot untuk kursor)
•
byte 9-10
byte 9-10
= YhotSpot (Y hotspot untuk kursor)
= YhotSpot (Y hotspot untuk kursor)
Header Bitmap Versi
Header Bitmap Versi
Lama
Lama
Byte
ke-Byte ke- Panjang Panjang (byte)
(byte) NamaNama KeteranganKeterangan
1-4
1-4 44 HdrSizeHdrSize Ukuran headerUkuran header dalam suatu dalam suatu bytebyte
5-6
5-6 22 WidthWidth Lebar bitmapLebar bitmap dalam satuan dalam satuan
pixel
pixel
7-8
7-8 22 HeightHeight Tinggi bitmap Tinggi bitmap dalam satuan dalam satuan
pixel
pixel
9-10
9-10 22 PlanesPlanes Jumlah plane Jumlah plane (Umumnya 1)(Umumnya 1) 11-12
Header Bitmap Versi Baru
Header Bitmap Versi Baru
Microsoft Windows (40 byte)
Microsoft Windows (40 byte)
Byte
ke-Byte ke- Panjang Panjang (byte)
(byte) NamaNama KeteranganKeterangan
1-4
1-4 44 HdrSizeHdrSize Ukuran Ukuran headerheader dalam suatu dalam suatu bytebyte
5-8
5-8 44 WidthWidth Lebar Lebar bitmapbitmap dalam satuan dalam satuan pixelpixel
9-12
9-12 44 HeightHeight Tinggi Tinggi bitmap bitmap dalam satuan dalam satuan pixelpixel
13-14
13-14 22 PlanesPlanes Jumlah Jumlah plane plane (Umumnya 1)(Umumnya 1) 15-16
15-16 22 BitCountBitCount Jumlah bit per Jumlah bit per pixelpixel
17-20
17-20 44 CompressionCompression 0=tidak dikompresi, 1=dikompresi0=tidak dikompresi, 1=dikompresi 21-24
21-24 44 ImgSizeImgSize Ukuran Ukuran bitmap bitmap dalam dalam bytebyte
25-28
25-28 44 HorzResHorzRes Resolusi HorisontalResolusi Horisontal 29-32
29-32 44 VertResVertRes Resolusi VertikalResolusi Vertikal 33-36
33-36 44 ClrUsedClrUsed Jumlah warna yang digunakanJumlah warna yang digunakan 37-40
Tambahan Byte pada Header Bitmap
Tambahan Byte pada Header Bitmap
versi Baru IBM OS/2 (64 byte)
versi Baru IBM OS/2 (64 byte)
Byte
ke-Byte ke- Panjang Panjang (byte)
(byte) NamaNama KeteranganKeterangan
41-42
41-42 22 UnitsUnits Satuan pengukuran yang Satuan pengukuran yang dipakai
dipakai 43-44
43-44 22 ReservedReserved Field cadanganField cadangan 45-46
45-46 22 RecordingRecording Algoritma perekamanAlgoritma perekaman 47-48
47-48 22 RenderingRendering Algoritma Algoritma HalftoningHalftoning
49-52
49-52 44 Size1Size1 Nilai ukuran 1Nilai ukuran 1 53-56
53-56 44 Size2Size2 Nilai Ukuran 2Nilai Ukuran 2 57-60
57-60 44 ClrEncodingClrEncoding Pengkodean warnaPengkodean warna 61-64
PRIMITIF CITRA BITMAP
PRIMITIF CITRA BITMAP
•
Berkas header
Berkas header
–
berisi struktur data citra bitmap
berisi struktur data citra bitmap
•
Membaca citra dari arsip
Membaca citra dari arsip
•
Menyimpan citra ke dalam arsip
Menyimpan citra ke dalam arsip
•
Membaca header berkas bitmap
Membaca header berkas bitmap
•
Membaca data bitmap
Membaca data bitmap
•
Menampilkan citra ke layar
Menampilkan citra ke layar
DAFTAR ACUAN
DAFTAR ACUAN
•
Munir, Rinaldi. Munir, Rinaldi. Pengolahan Citra Digital dengan Pendekatan Pengolahan Citra Digital dengan Pendekatan Algoritmik. 2004Algoritmik. 2004. Penerbit Informatika. Bandung. Penerbit Informatika. Bandung
•
mdid.org/Papers/vra2005/hegg_knab_updike.pptmdid.org/Papers/vra2005/hegg_knab_updike.ppt•
http://www.brackeen.com/home/vga/bitmaps.htmlhttp://www.brackeen.com/home/vga/bitmaps.html•
www.busim.ee.boun.edu.tr/~ee475/projeler/VectorMedianFilwww.busim.ee.boun.edu.tr/~ee475/projeler/VectorMedianFil tering/presentation/EE%20475F.ppttering/presentation/EE%20475F.ppt
•
www.students.tut.fi/~ferreira/exercise1/MatlabIntroduction.www.students.tut.fi/~ferreira/exercise1/MatlabIntroduction. pptppt
•
http://mpa.itc.it/markus/grass61progman/bitmap_8c- http://mpa.itc.it/markus/grass61progman/bitmap_8c-source.htmlsource.html