MENGGALI POTENSI AMALKAN BAKTI

Minggu, 08 Januari 2012

PROGRAM OLAH CITRA

OLAH CITRA SEDERHANA MENGGUNAKAN DELPHI

 
1.    Komponen Dalam Delphi Yang Support Olah Citra.

Komponen pada Delphi terdiri atas komponen visual dan non visual. Komponen visual akan ditampilkan apa adanya dalam form yang dibuat sesuai dengan penampakannya pada saat kita desain, sedangkan komponen non visual tidak terlihat pada waktu dieksekusi.

Beberapa komponen yang sering digunakan adalah tercantum pada tabel berikut ini.

          Tabel 1. Komponen Delphi yang Dapat Digunakan
Komponen
Icon
Palet
Keterangan
Label

Standard
Menuliskan tulisan dalam form
Button

Standard
Berupa tombol tekan dengan tulisan diatasnya
Edit

Standard
Kotak isian, untuk mengisikan teks atau angka, biasanya untuk input program
ListBox

Standard
Kotak berisi daftar tulisan yang dapat kita isikan waktu desain, dapat dipilh sewaktu eksekusi
CheckBox

Standard
Biasanya untuk pilihan diantara dua hal, misalnya aktif – tidak aktif
RadioButton

Standard
Untuk memilih di antara beberapa radiobutton dalam grup
Image

Additional
Untuk menampilkan gambaryang dimuat dari file atau di kopi dari bitmap
TrackBar

Win32
Untuk mempermudah mengatur nilai parameter

Updown


Win32

Untuk mempermudah mengatur nilai parameter
Timer

System
Untuk membuat event yang berulang setiap rentang waktu tertentu
OpenPictureDialog

Dialogs
Untuk menampilkan kotak dialog untuk memilih file citra yang akan dimuat
SavePictureDialog

Dialogs
Mirip dengan OpenPictureDialog tetapi untuk memilih file ke mana citra akan di simpan

2.    Menampilkan Citra.

Dalam Delphi terdapat sebuah komponen yang telah disediakan untuk menampilkan citra, yaitu komponen Image. Komponen ini terdapat dalam palet Additional.
Komponen ini memiliki beberapa properti penting yang sering digunakan dalam menampilkan citra di dalam form, yaitu;
a.       Width     : lebar komponen Image.
b.      Height    : tinggi komponen Image.
c.       Picture   : obyek berisi data citra berbentuk bitmap.
d.      AutoSize : untuk mengubah agar ukuran Image secara otomatis mengikuti ukuran citra dalam Picture.
e.      Center    : untuk mengatur agar posisi citra dalam picture di tengah komponen Image.
f.        Strecth   : untuk mengatur citra ditampilkan penuh sesuai ukuran Image.
g.       Proportional        : mempertahankan aspect ratio (perbandingan lebar dan tinggi citra).

3.    Tipe Citra yang Digunakan.
Tipe citra yang dapat dimuat dalam properti Picture pada komponen Image dapat berupa file bitmap (*.bmp) atau JPEG (*.jpg). Namun untuk mudahnya penulis menggunakan Image berupa file bitmap (*.bmp), alasannya karena jika menggunakan citra file JPEG (*.jpg) diperlukan tambahan intruksi untuk mengonversinya menjadi bitmap (*.bmp) kemudian baru diolah tiap-tiap pikselnya.
Citra bitmap yang diolah dapat berupa citra skala keabuan (grayscale) atau warna dengan berbagai format sebagaimana tercantum dalam tabel 1. Pada kesempatan ini, penulis menggunakan format pf24bit atau citra warna True Color 24 bit/piksel, dimana ketiga elemen warna (R, G, B) masing-masing berukuran 1 byte. Untuk memudahkan akses data setiap piksel pada citra yang akan diolah.
Untuk mengetahui format citra yang dimuat dalam komponen Image, gunakan properti PixelFormat dari properti bitmap dalam properti Picture. Nilai PixelFormat ini seprti tercantum dalam tabel 1.
Contoh penentuan format citra dalam program adalah sebagai berikut;
               
if (Image1.Picture.Bitmap.PixelFormat = pf24bit)
                then
                ,,,,,,,,,,,,,,,,,,,,,,,,,,,

Tabel 2. Tabel Format Citra
PixelFormat
Keterangan

pf1bit
Citra biner (1 bit/piksel), dengan palet hitam-putih

pf4bit
Citra warna berindeks menggunakan palet 16 warna (4 bit/piksel)

pf8bit
Citra warna berindeks menggunakan palet 256 warna (8 bit/piksel)

pf15bit
Citra warna True Color 15 bit/piksel (RGB compression)

pf16bit
Citra warna True Color 16 bit/piksel (bitfield compression)

pf24bit
Citra warna True Color 24 bit/piksel (R, G, B masing-masing 1 byte)

pf32bit
Citra warna True Color 32 bit/piksel (RGB compression)


4.    Mengakses Piksel pada Citra.

Citra yang disimpan dalam komponen Image seringkali tidak hanya ditampilkan saja, tapi juga diolah sehingga diperoleh citra baru. Untuk itu diperlukan cara untuk mengakses data piksel yang ada dalam citra tersebut. Terdapat 2 cara yang dapat digunakan dalam Delphi, yaitu;
a.       Menggunakan properti Pixels dari Canvas
b.      Menggunakan properti Scanline dari Bitmap
Cara kedua lebih cepat karena pengaksesannya dilakukan langsung terhadap nilai-nilai piksel pada memori citra. Meskipun demikian, cara ini harus dilakukan dengan hati-hati karena dapat merusak data yang ada di memori (dapat berakibat computer hang).
Untuk menggunakan ScanLine, diperlukan variable bertipe PByteArray untuk menunjuk ke alamat memori tempat penyimpanan data piksel citra. Dengan cara ini, selanjutnya kita dapat mengakses data elemen-elemen warna (R, G dan B)dari piksel-piksel tersebut sebagai larik byte. Contoh pendefinisian variable PByteArray;

                                Var
                                      HS: PByteArray;

Dengan menggunakan properti ScanLine, HS akan menunjuk ke alamat awal dari data piksel untuk setiap barisnya, dimana nomor baris menjadi indeks dari properti tersebut. Jadi perintah berikut akan membuat HS seolah-olah menjadi variable larik byte untuk data piksel baris ke y.

                          HS := Image1.Picture.Bitmap.ScanLine[y];

Selanjutnya untuk mendapatkan data piksel ke x, gunakan sebagai indeks dari HS. Untuk format citra True Color 24 bit, ketiga elemen warna akan disimpan secara berurutan dengan urutan elemen biru (B), diikuti hijau (G) dan merah (R). Dengan demikian setiap piksel akan mengambil tempat 3 byte. Oleh karena itu, data setiap elemen warna pikselpada kolom x akan menempati indeks larik sebagai berikut:
a.       Elemen biru (B), posisi indeks larik 3*x
b.      Elemen hijau (G), posisi indeks larik 3*x+1
c.       Elemen merah (R), posisi indeks larik 3*x+2


Tidak ada komentar:

Posting Komentar