TUGAS 6

8
PROGRAM FILTERING CITRA DENGAN DELPHI XE2 Oleh: Nama : Ni Kadek Rahayu Widya Utami Nim : 1204505043 MK : Pengolahan Citra Digital Tgl Pemberian : 07 November 2013 Tgl Pengumpulan : 14 November 2013 TUGAS 6

description

Pengolahan Citra Digital

Transcript of TUGAS 6

PROGRAM FILTERING CITRADENGAN DELPHI XE2

Oleh:Nama : Ni Kadek Rahayu Widya UtamiNim : 1204505043MK : Pengolahan Citra DigitalTgl Pemberian : 07 November 2013Tgl Pengumpulan : 14 November 2013TUGAS 6

JURUSAN TEKNOLOGI INFORMASIFAKULTAS TEKNIKUNIVERSITAS UDAYANA2013Soal :Buatlah sebuah program yang dapat mendeklarasikan array dan mengubah suatu citra dengan tambahan filter mean.

Penyelesaian :Disini saya menggunakan delphi XE2 untuk membuat program ini. Terdapat beberapa komponen yang digunakan untuk membuat desain interface program filtering ini, diantaranya :a. Komponen Tfrom : digunakan sebagai lembar kerja dari program pengolahan citrab. Komponen Timage : digunakan sebagai batasan dari frame tempat gambar diletakkan nantic. Komponen Tbutton : digunakan untuk menyatakan tombol insert image, filtering dan exitBerikut ini merupakan tampilan interface dari program pengubah citra :

Setelah proses pembuatan desain interface dari program filtering citra ini, maka selanjutnya setiap komponen seperti komponen Tbutton, harus diisikan suatu perintah atau kode program untuk dapat menjalankan tugas-tugas dari setiap komponen tersebut.Berikut ini merupakan kode program dari setiap komponen-komponen :a. Tombol insert image :Tombol insert image ini bertugas untuk mengambil gambar dari komputer. Proses kerjanya dimana ketika user mengklik tombol insert image maka secara otomatis akan muncul kotak dialog dari open picture untuk mengambil gambar dari komputer. Berikut merupakan kode programnya :

procedure TForm2.Button1Click(Sender: TObject); varalamatgambar:string;beginif openpicturedialog1.Execute thenbegin alamatgambar:=openpicturedialog1.FileName; image1.Picture.LoadFromFile(alamatgambar);end;end;

/* prosedur dari button click 1 adalahPertama deklarasikan variabel alamat gambar dengan tipe string.Kemudian mulai proses dengan mengeksekusi openpicturedialog1 untuk mencari file gambar dengan format bitmap.Jika gambar sudah berhasil di cari dan diambil maka prosedur akan berakhir */

b. FilteringTombol Filtering bertugas untuk melakukan salinan gambar dari image 1 ke image 2 dan memproses image 2 dengan proses filtering. Proses kerjanya dimana ketika user mengklik tombol copy image maka setiap pixels pada image 1 akan disalin dan diproses dengan filter yang telah di tentukan ke image 2. Berikut merupakan kode programnya:

procedure TForm2.Button2Click(Sender: TObject);varx,y,lebar, tinggi : integer;beginimage2.Picture.Bitmap.Width := image1.Picture.Bitmap.Width;image2.Picture.Bitmap.Height := image1.Picture.Bitmap.Height;lebar := image2.Picture.Bitmap.Width;tinggi := image2.Picture.Bitmap.Height;setlength(temp,lebar,tinggi);setlength(Ri,lebar,tinggi);/* prosedur dari button click 2 adalah pertama dengan membuat variabelKemudian deklarasikan variabel x,y,lebar, tinggi dengan tipe integerProsedur dimulai dengan melakukan pencopyan lebar dan tinggi pada image 1 ke image 2Kemudian dilakukan pendeklarasian variabel lebar dan tinggi untuk menampung lebar dan tinggi image 2Dilakukan pendeklarasian nilai panjang temp, Ri,Gi,Bi, Ro,Go, Bo dengan masing-masing lebar tingginya */

setlength(Gi, lebar, tinggi);setlength(Bi, lebar, tinggi);setlength(Ro, lebar, tinggi);setlength(Go, lebar, tinggi);setlength(Bo, lebar, tinggi);for x := 0 to lebar-1 do for y := 0 to tinggi-1 do begin temp[x,y] := image1.Picture.Bitmap.Canvas.Pixels[x,y]; end; for x := 0 to lebar-1 do for y := 0 to tinggi-1 do begin Ri[x,y] := GetRValue(temp[x,y]); Gi[x,y] := GetGValue(temp[x,y]); Bi[x,y] := GetBValue(temp[x,y]); end; for x := 1 to lebar-2 do for y := 1 to tinggi-2 do begin Ro[x,y] := round((Ri[x-1,y-1]+Ri[x-1,y]+Ri[x-1,y+1]+Ri[x,y-1]+Ri[x,y]+Ri[x,y+1]+Ri[x+1,y-1]+Ri[x+1,y]+Ri[x+1,y+1])/9);

/* dimulai dengan pemberian nilai lebar dan tinggi dari x dan y, maka prosedur pun dimulai penampungan nilai image2 pada temp dengan menggunakan array maka prosedur pun berakhir*/

/* dimulai dengan pemberian nilai lebar dan tinggi dari x dan y, maka prosedur pun dimulai dengan memberikan nilai red ke Ri, nilai green ke Gi, dan blue ke Bi dan prosedur pun berakhir */

/* dimulai dengan pemberian nilai lebar dan tinggi dari x dan y, maka prosedur pun dimulai dan proses representasi mean filterpun dimulai dengan hasil representasi tersebut disimpan pada Ro, Go, Bo*/

Go[x,y] := round((Gi[x-1,y-1]+Gi[x-1,y]+Gi[x-1,y+1]+Gi[x,y-1]+Gi[x,y]+Gi[x,y+1]+Gi[x+1,y-1]+Gi[x+1,y]+Gi[x+1,y+1])/9); Bo[x,y] := round((Bi[x-1,y-1]+Bi[x-1,y]+Bi[x-1,y+1]+Bi[x,y-1]+Bi[x,y]+Bi[x,y+1]+Bi[x+1,y-1]+Bi[x+1,y]+Bi[x+1,y+1])/9); end; for x := 1 to lebar-2 do for y := 1 to tinggi-2 do begin image2.Canvas.Pixels[x,y] := RGB(Ro[x,y],Go[x,y],Bo[x,y]); end;end;

/* prosedur ini digunakan untuk menampilkan hasil dari pixels-pixels yang telah difilter */

c. Tombol ExitTombol Exit digunakan untuk keluar dari program. Proses kerjanya dimana ketika user mengklik exit program akan langsung tertutup. Berikut merupakan kode programnya.

procedure TForm2.Button3Click(Sender: TObject);beginRi := nil;Gi := nil;Bi := nil;Ro := nil;Go := nil;Bo := nil;temp := nil;close;end;end.

/* prosedur button click 3 digunakan untuk mengakhiri program */

Uji Coba Program Berikut akan ditampilkan proses uji coba dari program filtering. Dibawah ini merupakan tampilan awal interface dari program ini :

Ketika user mengklik tombol insert image, maka akan langsung terhubung ke dalam kotak pencarian gambar. Berikut merupakan tampilan setelah user mengklik open pada insert image.

Kemudian ketika user mengklik tombol filtering, maka gambar akan tersalin dan diproses untuk melakukan filering image, maka akan menghasilkan tampilan yang lebih tajam dari gambar sebelumnya, seperti gambar berikut.

Setelah program selesai dijalankan maka user dapat menekan tombol exit untuk menutup program.