Anda di halaman 1dari 7

PROGRAM FILTERING CITRA

DENGAN DELPHI XE2

Oleh:
Nama
Nim
MK
Tgl Pemberian
Tgl Pengumpulan

: Ni Kadek Rahayu Widya Utami


: 1204505043
: Pengolahan Citra Digital
: 07 November 2013
: 14 November 2013
TUGAS 6

JURUSAN TEKNOLOGI INFORMASI


FAKULTAS TEKNIK

UNIVERSITAS UDAYANA
2013
Soal :
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 citra
b. Komponen Timage : digunakan sebagai batasan dari frame tempat gambar diletakkan
nanti
c. Komponen Tbutton : digunakan untuk menyatakan tombol insert image, filtering dan
exit
Berikut 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);
var
setlength(Gi, lebar, tinggi);
alamatgambar:string;
setlength(Bi, lebar, tinggi);
begin
setlength(Ro, lebar, tinggi);
if openpicturedialog1.Execute then
setlength(Go, lebar, tinggi);
begin
setlength(Bo, lebar, tinggi);
alamatgambar:=openpicturedialog1.Fil
for eName;
x := 0 to lebar-1 do
for y := 0 to tinggi-1 do
image1.Picture.LoadFromFile(alamatga
begin
mbar);

/* prosedur dari button click 1


adalah
Pertama 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

temp[x,y]
end;
b. :=
Filtering
image1.Picture.Bitmap.Canvas.Pixels[x,y];
Tombol Filtering bertugas untuk melakukan salinan gambar dari image 1 ke image
end;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:
for x := 0 to lebar-1 do
/* prosedur dari button click
procedure TForm2.Button2Click(Sender:
for y := 0 to tinggi-1 do
2 adalah pertama dengan
TObject);
var begin
Ri[x,y]
:= GetRValue(temp[x,y]);
x,y,lebar,
tinggi
: integer;
beginGi[x,y] := GetGValue(temp[x,y]);
Bi[x,y] := GetBValue(temp[x,y]);
image2.Picture.Bitmap.Width
:=
image1.Picture.Bitmap.Width;
end;
image2.Picture.Bitmap.Height :=
image1.Picture.Bitmap.Height;
for x := 1 to lebar-2 do
for y := 1 to tinggi-2 do
lebar := image2.Picture.Bitmap.Width;
begin
tinggi := image2.Picture.Bitmap.Height;
Ro[x,y] := round((Ri[x-1,y-1]+Ri[xsetlength(temp,lebar,tinggi);
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);

membuat variabel

Kemudian deklarasikan
variabel x,y,lebar, tinggi
dengan tipe integer
Prosedur dimulai dengan
melakukan pencopyan lebar
dan tinggi pada image 1 ke
image 2

Kemudian dilakukan
pendeklarasian variabel lebar
dan tinggi untuk menampung
lebar dan tinggi image 2
Dilakukan pendeklarasian
nilai panjang temp, Ri,Gi,Bi,
Ro,Go, Bo dengan masingmasing lebar tingginya */

/* 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 */

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,y1]+Bi[x-1,y]+Bi[x-1,y+1]+Bi[x,y1]+Bi[x,y]+Bi[x,y+1]+Bi[x+1,y1]+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]);

/* 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

/* prosedur ini digunakan


untuk menampilkan hasil dari
pixels-pixels yang telah
difilter */

c. Tombol Exit
Tombol 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);
begin
Ri := nil;
Gi := nil;
Bi := nil;
Ro := nil;

/* prosedur button click 3


digunakan untuk
mengakhiri program */

Go := nil;
Bo := nil;
temp := nil;
close;
end;
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.

Anda mungkin juga menyukai