Laporan Praktikum FisKom RGB
LAPORAN PRAKTIKUM FISIKA KOMPUTASI INTERPRETASI GRAFIS INTENSITAS WARNA DASAR RGB PADA GAMBAR BITMAP MENGGUNAKAN DELPHI7 Disusun untuk Memenuhi Tugas Mata Kuliah Praktikum Fisika Komputasi
Oleh :
SISKA ARIANI W.A NIM. 080913081
JURUSAN FISIKA DEPARTEMEN FISIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS AIRLANGGA 2012
Laporan Praktikum FisKom RGB
A. Judul praktikum Interpretasi grafis intensitas warna RGB( Red Green Blue) pada suatu gambar bitmap menggunakan program Delphi7
B. Tujuan praktikum Menentukan intensitas warna dasar RGB(Red Green Blue) pada suatu gambar bitmap berdasarkan fungsi posisi Membuat suatu program aplikasi Image Processing berbasis intensitas RGB
C. Alat dan Bahan Alat yang digunakan adalah Program Delphi7. Bahan atau komponen didalamnya adalah: 1 buah TImage (pada toolbar Additional) 1 buah TChart (pada toolbar Additional) 1buah TOpenDialog (pada toolbar Dialog) 3 buah TLabel ( pada toolbar Standard) 1 buah TScrollBar (pada toolbar Standard) 1 buah TButton (pada toolbar Standard)
D. Algoritma Algoritma secara umum adalah sebagai berikut: procedure ketika Button di klik serta opendialog ke gambar bitmap procedure ScrollBar digeser, maka posisi X, Y, Z akan berubah menunjukkan intensitas RGB procedure FormCreate menyatakan format posisi, ukuran dan warna pada form ketika ada gambar dan tidak, serta procedure Chart dengan 3 line masing-masing Red, Green dan Blue prosedur Image1Click procedure Image1MouseMove, berubahnya label X, Y, Z yang menyatakan posisi Prosedur FormClose, yaitu prosedur yang akan diberi perintah agar program dapat dijalankan.
Laporan Praktikum FisKom RGB
Pertama, masing-masing komponen disusun dalam form seperti berikut:
Selanjutnya:
Edit di sini...
Ini dia Object Inspector...
Untuk mengedit Label1, Label2, Label3, Ukuran TImage dan TOpenDialog dapat dilakukan di Object Inspector. Pada ukuran TImage kita atur dalam Object Inspector>Height dan Width kita ganti masing-masing 300. Artinya panjang image yang dapat ditampilkan kita batasi berukuran 300x300. Atau dapat diganti
Laporan Praktikum FisKom RGB
sesuka kita jika ingin menurut ukuran gambar yang dimiliki. Label1, Label2, Label3 digunakan untuk menampilkan X,Y,dan Z. Untuk mengedit grafik dapat dilakukan dengan meng-klik kanan komponen TChart, kemudian pilih Chart--series untuk membuat garis grafik, pada praktikum ini kita buat 3 buah series untuk masing-masing Red, Green dan Blue. Edit label pada Line Chart dapat dilakukan di Chart--Title, sedangkan edit bentuk grafik terdapat pilihan bentuk (pie, Histogram, panah, diagram bagian dsb) serta pilihan 2D atau 3D dapat dilakukan di Chart—Series—Change—TeeChart Gallery. Edit warna line chart dapat dilakukan di Chart--Series--Border. Edit nama Grafik di Chart—Titles. Sedangkan source code secara lengkapnnya adalah sebagai berikut: unit Unit1; interface Part 1 uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, jpeg; type Part 2 TForm1 = class(TForm) Image1: TImage; OpenDialog1: TOpenDialog; Chart1: TChart; Series1: TLineSeries; Series2: TLineSeries; Series3: TLineSeries; Label1: TLabel; Label2: TLabel; Label3: TLabel; ScrollBar1: TScrollBar; Button1: TButton; procedure Button1Click(Sender: TObject); procedure ScrollBar1Change(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Image1Click(Sender: TObject); procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public
Laporan Praktikum FisKom RGB
{ Public declarations } end; var Form1: TForm1; gambar2 :Tbitmap; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var red,green,blue:byte; Part 3 a,b,lebar:Integer; warna:TColor; open:string; begin OpenDialog1.Execute; open:=OpenDialog1.FileName; Image1.Picture.LoadFromFile(open); scrollbar1.Enabled := True; gambar2.Assign(Image1.Picture); ScrollBar1.Max:=Image1.Picture.Height; end; procedure TForm1.FormCreate(Sender: TObject); begin gambar2:=TBitmap.Create; // ScrollBar1.Max:=Image1.Picture.Height; end; procedure TForm1.ScrollBar1Change(Sender: TObject); var red,green,blue:byte; Part 4 a,b,lebar:Integer; warna:TColor; garis:TBitmap; begin Series1.Clear; Series2.Clear; Series3.Clear; b:=ScrollBar1.Position; lebar:=Image1.Picture.Bitmap.Width; garis:=TBitmap.Create; garis.Assign(gambar2); garis.Canvas.MoveTo(0,b);
Laporan Praktikum FisKom RGB
garis.Canvas.LineTo(lebar,b); for a:=0 to lebar -1 do begin warna:=Image1.Picture.Bitmap.Canvas.Pixels[a,b]; red:=GetRValue(warna); green:=GetGValue(warna); blue:=GetBValue(warna); Series1.AddXY(a,red); Series2.AddXY(a,green); Series3.AddXY(a,blue); end;
Part 5
Image1.Picture.Assign(garis); garis.Free; end;
procedure TForm1.Button2Click(Sender: TObject); var open:string; begin OpenDialog1.Execute; open:=OpenDialog1.FileName; Image1.Picture.LoadFromFile(open); end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer); Part 6 var warna:TColor; begin warna:=Image1.Picture.Bitmap.Canvas.Pixels[X,Y]; Label1.Caption:= inttostr(GetRValue(warna)); Label2.Caption:= IntToStr(GetGValue(warna)); Label3.Caption:= IntToStr(GetBValue(warna)); end; procedure TForm1.Image1Click(Sender: TObject); begin gambar2:=TBitmap.Create; ScrollBar1.Max:=Image1.Picture.Height; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin gambar2.Free; end; end. Selebihnya akan diulas pada pembahasan per-part-nya.
Laporan Praktikum FisKom RGB
E. Pembahasan Penjelasan Tiap Part untuk source code diatas: Part 1 Uses dalam source code Delphi7 adalah kode umum yang harus ada untuk mengawali source code dan merupakan macam-macam perintah yang digunakan dalam pembuatan program aplikasi. Part 2 Type, yang dibawahnya bertuliskan TForm dan macam-macam komponen lain, yaitu TChart, TScrollBar, Label, Button dan Series. Maksudnya adalah dalam satu form ini dapat kita tempelkan berbagai macam komponen lain sesuai program aplikasi yang kita buat. Dalam kode inilah, komponen apasaja yang akan kita gunakan dideklarasikan. Tak lupa, di setiap komponen yang kita masukkan tadi harus disertai prosedur dibawahnya. Ini menerangkan bagaimana komponenkomponen tersebut bekerja. Part 3 Bagian dibawah Implementation adalah urutan kerja sebuah program yang sebenarnya. Pada prosedur Button1.Click, pertama harus mendeklarasikan variable, yaitu byte yangdipakai sebagai perintah untuk membaca warna dalam bite, kemudian variable batasan integer yang digunakan sebagai perintah untuk pembacaan batas yang digunakan dalam gambar berupa integer, yaitu angka real yang kita definisikan sendiri dan Tcolor untuk membaca warna Tcolor, agar program dapat membaca Red Green Blue. Selanjutnya TOpenDialog digunakan sebagai prosedur agar ketika button di eksekusi dengan klik, akan membuka kotak dialog yang bertujuan untuk membuka file image. Nah, pada program ini kita batasi file image ber-ekstensi Bitmap saja, sehingga ketika kita klik Button, membuka Open Dialog yang terdeteksi hanya image yang Bitmap saja. Part 4 Prosedur TScrollBar1.Change merupakan prosedur yang menjalankan Scrollbar, meliputi apa yang terjadi apabila Scrollbar tergeser. Source code pada bagian ini merupakan perintah untuk menjalankan komponen scrollbar sesuai variable yang sudah dideklarasikan sebelumnya, yaitu integer. garis:TBitmap merupakan perintah agar image yang dapat dibaca adalah bitmap saja dan pembacaan
Laporan Praktikum FisKom RGB
TColor berdasarkan garis. Selanjutnya, Series1.Clear merupakan perintah agar disetiap perubahan geser yang ada, mengalami looping sesuai posisi terupdate sesuai
TScrollBar
Change-nya,
posisi-clear-posisi
dan
seterusnya.
Dan
garis:=TBitmap.Create adalah Garis yang menyatakan TScrollBar yang ada, perintah dibuat dengan memunculkan garis ketika posisi scrollbar diubah-ubah pada batas (0,b). Part 5 Selanjutnya adalah perintah warna:=Image1.Picture.Bitmap.Canvas.Pixels[a,b]; ini menyatakan warna yang dibaca dari image bitmap dengan menggunakan canvas yang bersatuan pixel, mengapa gambar harus bitmap?? Jawabnya karena bitmap adalah gambar yang tersusun dari titik-titik atau dot dan banyaknya dot disetiap luasan dinyatakan sebagai pixel, sehingga suatu gambar ber-ekstensi bitmap dengan luasan per-inci yang memiliki satu juta dot dinyatakan sebagai 1MegaPixel. Itulah mengapa semakin besar pixel suatu kamera atau semakin besar dpi (dot per-Inch) suatu printer, maka akan menghasilkan kualitas gambar yang semakin baik. Semakin besar pixel berarti semakin baik pula resolusi gambar, karena pixel menyatakan kepadatan titik yang men-detailkan gambar. Kemudian red:=GetRValue(warna);… Series1.AddXY(a,red); menyatakan warna yang harus dipilih oleh masing-masing series. Sedangkan Garis.Free digunakan untuk memunculkan garis jika posisi scrollbar diubah. Part 6 procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer); merupakan perintah yang dijalankan ketika mouse digerakkan di atas gambar sehingga posisi akan muncul pada tiap komponen Label masing-masing.
Laporan Praktikum FisKom RGB
Hasil Running Program setelah klik button dan sebelum Scrollbar digeser:
Running setelah ScrollBar tergeser:
Ini dia...
Kita lihat dalam program ini, ketika scrollbar digeser maka intensitas juga berubah seiring berubahnya posisi garis dan ketika kita menggeser posisi mouse diatas gambar maka angka pada label berhighlight biru tersebut jga berubah sesuai posisi kita meletakkan mouse pointer.
Laporan Praktikum FisKom RGB
Pada grafik interpretasi RGB, sumbu Y menyatakan intensitas yang mana skala warna ini adalah 0-255 sesuai dengan byte. Sedangkan sumbu X menyatakan 0300 skala garis yang kita buat untuk menyatakan gambar bitmap. Pembacaan skala warna di tiap posisi titik menyatakan intensitas masing-masing Red, Green dan Blue. Pada gambar ini dapat kita lihat pada bagian mana dominan warna merah, hehe karena kebetulan saya memakai baju merah. Dan juga dapat kita simpulkan bahwa setiap warna sebenarnya adalah campuran dari warna-warna lain. Setiap warna terdiri dari campuran 3 warna dasar yaitu merah, hijau dan biru. Warna yang kita lihat, warna yang terdefinisi pada mata kita adalah warna dominan dari campuran tersebut. Warna dominan dalam Image Processing ini sering disebut sebagai Hue. Sedangkan warna putih dapat diuraikan sebagai campuran maksimum semua warna(Red+Green+Blue), jika putih sempurna maka Red, Green, Ble masing-masing bernilai 255.
Laporan Praktikum FisKom RGB
Daftar Pustaka Soelistiono, Soegianto. 2010. Delphi5; dibuat untuk Mata Kuliah Fisika Komputasi UNAIR. Halaman 136-155.