• Tidak ada hasil yang ditemukan

Tugas atau uts

Dalam dokumen Modul Praktikum Pengolahan Citra Digital (Halaman 37-57)

Tugas :

1) Buatlah program brightness untuk citra berwarna 2) Buatlah program Contras untuk citra berwarna

3) Buatlah program pengambangan tunggal untuk citra berwarna 4) Buatlah program pengambangan ganda untuk citra berwarna

Praktikum Pengolahan Citra Digital 38

PRAKTIKUM 10

Operasi titik, Negasi

Tujuan :

Mahasiswa mengetahui cara membuat program operasi titik Negasi dan

mengimplementasikan pada citra berwarna maupun citra gray scale

Keterangan:

Praktikum ini akan membuat sebuah citra dengan output bernilai 255

dikurangi nilai input, sehingga timbul efek gambar negatif . CH = 255 – CA

Dengan :

CH : Citra Hasil

CA : Citra Asal

Langkah Praktikum Negasi :

4) Aktifkan program delphi dan buatlah form2 dan form3 dengan cara

mengklik tombol new form disebelah kiri tombol run

5) Pilih additional double klik image sebanyak dua kali untuk membuat

image1 dan image2 kemudian ubahlah propertinya

Pada image 1

Autosize diset true

Center diset true

Name diubah gb1 (singkatan gambar 1)

Proportional diset true

Praktikum Pengolahan Citra Digital 39 Autosize diset true

Center diset true

Name diubah gb2 (singkatan gambar 2) dan Proportional diset true

6) Buatlah button pada form1 dan captionnya diubah menjadi Ambil gambar,

lakukan langkah seperti langkah pada praktikum 2 untuk menampilkan

gambar pada gb1 dan gb2 tambahkan beberapa baris code sehingga

hasilnya seperti yang terdapat pada gambar 10.1.

Gambar 10.1 Code untuk mengambil gambar yang sama dengan picture dialog

4. Buatlah button pada form1 dan captionnya diubah menjadi negasi, kemudian

double klik button tersebut dan isikan code yang terdapat pada gambar 10.2

procedure TForm1.Button1Click(Sender: TObject); begin if (opd.Execute) then begin gb1.Picture.LoadFromFile(opd.FileName); gb2.Picture.LoadFromFile(opd.FileName); gb2.Top := gb1.Height + 5 ; histogram; button1.Top := gb1.Height * 2 + 10 ; button2.Top := gb1.Height * 2 + 10 ; end; end;

Praktikum Pengolahan Citra Digital 40 Gambar 10.2 Code proses negasi

Contoh hasil eksekusi proses negasi terdapat pada gambar 10.3

Gambar 10.3 Contoh hasil eksekusi proses negasi

procedure TForm1.Button2Click(Sender: TObject); var

br , kl : integer;

dbaris1 , dbaris2 : pbytearray; begin for br := 0 to gb1.Height-1 do begin for kl := 0 to gb1.Width-1 do begin dbaris1 := gb1.Picture.Bitmap.ScanLine[br]; dbaris2 := gb2.Picture.Bitmap.ScanLine[br]; dbaris2[kl] := 255 - dbaris1[kl]; end; end;

// tampilkan hasilnya dan hitung histogramnya gb2.Repaint;

histogram; end;

Praktikum Pengolahan Citra Digital 41

PRAKTIKUM 11

Operasi titik, penggabungan gambar(image blending)

Tujuan :

Mahasiswa mengetahui cara membuat program operasi titik,

penggabungan gambar (image blending) dan mengimplementasikan pada citra

berwarna maupun citra gray scale.

Keterangan:

Praktikum ini akan menggabung dua gambar sehingga diperoleh . CH = w1 x C1 – w2 x C2 Dengan : CH : Citra Hasil C1 : Citra pertama C2 : Citra kedua W1 dan w2 : bobot

Langkah Praktikum image blending :

7) Aktifkan program delphi dan buatlah form2 dan form3 dengan cara

mengklik tombol new form disebelah kiri tombol run

8) Pilih additional double klik image sebanyak tiga kali untuk membuat

image1, image2 dan image3 kemudian ubahlah propertinya

Pada image 1

Autosize diset true

Center diset true

Praktikum Pengolahan Citra Digital 42 Proportional diset true

Pada image 2

Autosize diset true

Center diset true

Name diubah gb2 (singkatan gambar 2) dan Proportional diset true

Pada image 3

Autosize diset true

Center diset true

Name diubah gb3 (singkatan gambar 3) dan Proportional diset true

9) Buatlah button pada form1 dan captionnya diubah menjadi Ambil gambar,

lakukan langkah seperti langkah pada praktikum 2 untuk menampilkan

gambar pada gb1 dan gb2 tambahkan beberapa baris code sehingga

hasilnya seperti yang terdapat pada gambar 10.1.

Gambar 11.1 Code untuk mengambil gambar 1, gambar 2 dan gambar3 open

picture dialog

procedure TForm1.Button1Click(Sender: TObject); begin if (opd.Execute) then begin gb1.Picture.LoadFromFile(opd.FileName); gb2.Picture.LoadFromFile(opd.FileName); gb3.Picture.LoadFromFile(opd.FileName); gb2.Top := gb1.Height + 5 ; histogram; button1.Top := gb1.Height * 2 + 10 ; button2.Top := gb1.Height * 2 + 10 ; end; end;

Praktikum Pengolahan Citra Digital 43 4. Berikut ini adalah coding untuk melakukan proses blending

Gambar 11.2 Code proses blending

procedure TForm1.sbChange(Sender: TObject); var

br , kl , tinggi , lebar: integer;

dbaris1 , dbaris2, dbaris3 : pbytearray; begin

sb.Max := 100; sb.Min := 0;

edit1.Text := inttostr(sb.Position); if ( gb1.Height < gb2.Height) then tinggi := gb1.Height

else

tinggi := gb2.Height;

if ( gb1.Width < gb2.Width) then lebar := gb1.Width else lebar := gb2.Width; for br := 0 to tinggi-1 do begin for kl := 0 to lebar-1 do begin dbaris1 := gb1.Picture.Bitmap.ScanLine[br]; dbaris2 := gb2.Picture.Bitmap.ScanLine[br]; dbaris3 := gb3.Picture.Bitmap.ScanLine[br]; if (form1.gb1.Picture.Bitmap.PixelFormat = pf8bit) then begin

dbaris3[kl] := round ((sb.Position/100)*dbaris1[kl] + ((100 - sb.Position) / 100 )* dbaris2[kl]); end;

end; end;

// tampilkan hasilnya dan hitung histogramnya gb3.Repaint;

histogram; end;

Praktikum Pengolahan Citra Digital 44 Contoh hasil eksekusi coding tersebut terdapat pada gambar 11.3.

Praktikum Pengolahan Citra Digital 45

PRAKTIKUM 12

Operasi titik, pengurangan gambar(Untuk aplikasi Motion detection)

Tujuan :

Mahasiswa mengetahui cara membuat program operasi titik, pengurangan

gambar (Contoh untuk deteksi gerak) dan mengimplementasikan pada citra

berwarna maupun citra gray scale.

Keterangan:

Praktikum ini akan mengurangkan dua gambar sehingga diperoleh . CH = C1 – C2

Dengan :

CH : Citra Hasil

C1 : Citra pertama

C2 : Citra kedua

Langkah Praktikum pengurangan gambar :

10) Aktifkan program delphi dan buatlah form2 dan form3 dengan cara

mengklik tombol new form disebelah kiri tombol run

11) Pilih additional double klik image sebanyak tiga kali untuk membuat

image1, image2 dan image3 kemudian ubahlah propertinya

Pada image 1

Autosize diset true

Center diset true

Name diubah gb1 (singkatan gambar 1)

Praktikum Pengolahan Citra Digital 46 Pada image 2

Autosize diset true

Center diset true

Name diubah gb2 (singkatan gambar 2) dan Proportional diset true

Pada image 3

Autosize diset true

Center diset true

Name diubah gb3 (singkatan gambar 3) dan Proportional diset true

12) Buatlah button pada form1 dan captionnya diubah menjadi Ambil gambar,

lakukan langkah seperti langkah pada praktikum 2 untuk menampilkan

gambar pada gb1 dan gb2 tambahkan beberapa baris code sehingga

hasilnya seperti yang terdapat pada gambar 12.1.

Gambar 12.1 Code untuk mengambil gambar 1, gambar 2 dan gambar3 open

picture dialog

procedure TForm1.Button1Click(Sender: TObject); begin if (opd.Execute) then begin gb1.Picture.LoadFromFile(opd.FileName); gb2.Picture.LoadFromFile(opd.FileName); gb3.Picture.LoadFromFile(opd.FileName); gb2.Top := gb1.Height + 5 ; histogram; button1.Top := gb1.Height * 2 + 10 ; button2.Top := gb1.Height * 2 + 10 ; end; end;

Praktikum Pengolahan Citra Digital 47 4. Berikut ini adalah coding untuk melakukan proses pengurangan gambar

Gambar 12.2 Code proses pengurangan gambar dan menghitung total

perbedaannya

procedure TForm1.sbChange(Sender: TObject); var

br , kl , tinggi , lebar , total : integer; dbaris1 , dbaris2, dbaris3 : pbytearray; begin

sb.Max := 100; sb.Min := 0;

edit1.Text := inttostr(sb.Position); if ( gb1.Height <= gb2.Height) then tinggi := gb1.Height

else

tinggi := gb2.Height;

if ( gb1.Width <= gb2.Width) then lebar := gb1.Width else lebar := gb2.Width; total := 0; for br := 0 to tinggi-1 do begin for kl := 0 to lebar-1 do begin dbaris1 := gb1.Picture.Bitmap.ScanLine[br]; dbaris2 := gb2.Picture.Bitmap.ScanLine[br]; dbaris3 := gb3.Picture.Bitmap.ScanLine[br]; if (form1.gb1.Picture.Bitmap.PixelFormat = pf8bit) then begin

if (dbaris1[kl]> dbaris2[kl]) then

total := total + dbaris1[kl]- dbaris2[kl] else

total := total + dbaris2[kl]- dbaris1[kl]; dbaris3[kl] := dbaris1[kl]- dbaris2[kl]+ 100; end;

end; end;

// tampilkan hasilnya dan hitung histogramnya edit1.Text := inttostr(total);

gb3.Repaint; histogram; end;

Praktikum Pengolahan Citra Digital 48 Contoh hasil eksekusi coding tersebut terdapat pada gambar 12.3.

Praktikum Pengolahan Citra Digital 49

PRAKTIKUM 13

Region Growing

Tujuan :

Mahasiswa mengetahui cara membuat program Region growing pada

citra berwarna maupun citra gray scale.

Keterangan:

Praktikum ini akan membuat sebuah aplikasi yang dapat menelusuri pixel-pixel dengan nilai keabuan yang hampir sama dan bertetangga, contoh aplikasinya adalah untuk mengetahui apakah suatu area berhubungan dengan area yang lain misal pada foto satelit suatu sungai apakah berhubungan dengan sungai yang lain .

Langkah Praktikum pengurangan gambar :

13) Buatlah komponen seperti yang terdapat pada form1 di gambar 13.1

Praktikum Pengolahan Citra Digital 50 14) Pilih additional double klik image sebanyak tiga kali untuk membuat

image1, image2 dan image3 kemudian ubahlah propertinya

Pada image 1

Autosize diset true

Center diset true

Name diubah gb1 (singkatan gambar 1)

Proportional diset true

Pada image 2

Autosize diset true

Center diset true

Name diubah gb2 (singkatan gambar 2) dan Proportional diset true

Pada image 3

Autosize diset true

Center diset true

Name diubah gb3 (singkatan gambar 3) dan Proportional diset true

15) Buatlah button pada form1 dan captionnya diubah menjadi Ambil gambar,

lakukan langkah seperti langkah pada praktikum 2 untuk menampilkan

gambar pada gb1, gb2 dan gb3

16) Kemudian buatlah beberapa edit dengan menekan standard an klik edit

yaitu edit1, edit2, edit3, edit4, edit5 dan edit6

Edit1 untuk menunjukkan posisi x dari mouse pada gambar

Edit2 untuk menunjukkan posisi y dari mouse pada gambar

Praktikum Pengolahan Citra Digital 51 Edit4 untuk menunjukkan nilai keabuan setelah di klik pada koordinat

yang ditunjuk oleh mouse.

Edit5 untuk menunjukkan berapa nilai ambang yang akan dipakai sebagai

acuan apakah pixel tetangga bisa dianggap sebagai anggota.

4. klik gb1 dan pilih events on mousemove kemudian ketik coding yang

terdapat pada gambar 13.2

Gambar 13.2 Code untuk mendeteksi posisi mouse di gambar dan nilai

keabuannya

procedure TForm1.gb1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var dbaris : pbytearray; begin if gb_ok = 1 then begin edit1.Text := inttostr(x) ; edit2.Text := inttostr(y) ; dbaris := gb1.Picture.Bitmap.ScanLine[y]; edit3.Text := inttostr(dbaris[x]); end; end;

Praktikum Pengolahan Citra Digital 52 5. Double Klik form1 dan ketik code berikut

Gambar 13.3 Code untuk inisialisasi

6. Klik gb1 dan pilih events onclik dan letakkan code pada gambar 13.4

Gambar 13.4 Code proses region growing

// buat deklarasi variabel global disini var Form1: TForm1; nama : string ; h : integer; gb_ok : integer; implementation {$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject); begin

gb_ok := 0;

edit5.Text := '10'; end;

procedure TForm1.gb1Click(Sender: TObject); var

x , y , i,j,k ,l , pixel : integer; a1,a2, thr , ada2 : integer;

dbaris1 , dbaris2 , dbaris3 : pbytearray; begin

h := 0 ;

l5.Caption := 'proses'; edit4.Text := edit3.Text ; thr := strtoint( edit5.Text) ;

// letakkan disini code inisialisasi gambar2 dan gambar3 // letakkan disini code untuk mencatat posisi awal region // dan dimapping digb3

Praktikum Pengolahan Citra Digital 53 Gambar 13.5 Code inisialisasi gambar2 dan gambar3

Gambar 13.6 Code untuk menandai awal region growing

X dan y merupakan posisi yang ditunjuk mouse, ada2 adalah variabel yang menunjukkan bahwa masih ada area yang tetangganya belum diuji apa termasuk region atau bukan. a1 dan a2 merupakan batas bawah dan batas atas untuk menguji apakah sebuah pixel merupakan anggota. Sedang kan 50 artinya pixel tersebut adalah anggota dan tetangganya masih belum diuji. Berikut ini adalah angka dan artinya yang diletakkan pada gambar 3 atau gambar mapping.

// pada gb3

// 0 = belum dilihat

// 25 = dilihat bukan anggota

// 50 = dilihat termasuk anggota dan tetangga belum dilihat

for i := 0 to gb2.Height-1 do begin for j := 0 to gb2.Width-1 do begin dbaris2 := gb2.Picture.Bitmap.ScanLine[i]; dbaris3 := gb3.Picture.Bitmap.ScanLine[i]; dbaris2[j] := 255; dbaris3[j] := 0; end; end; gb2.Repaint ;

x := strtoint(edit1.Text); // posisi awal x region y := strtoint(edit2.Text); // posisi awal y region dbaris3 := gb3.Picture.Bitmap.ScanLine[y];

dbaris3[x] := 50;// mapping posisi awal di gambar 3 ada2 := 1;

a1 := strtoint(edit4.Text) - thr; a2 := strtoint(edit4.Text) + thr;

Praktikum Pengolahan Citra Digital 54 // 200= dilihat termasuk anggota dan tetangga sudah dilihat

// jika pada gb3 masih ada yang bernilai 50 lakukan proses region growing

Gambar 13.7 Code untuk proses region growing 1

while ada2 = 1 do begin

ada2 := 0 ;

// cari pada gb3 apa ada yang bernilai 50 for i := 1 to gb3.Height-2 do

begin

for j := 1 to gb3.Width-2 do begin

// ambl pixel pada posisi i,j

dbaris3 := gb3.Picture.Bitmap.ScanLine[i]; if ( i = 0 ) then dbaris3[j] := 1;

if ( i = gb3.Height-1 ) then dbaris3[j] := 1;

pixel := dbaris3[j]; // nilai pixel pada posisi i,j // uji apa pixel bernilai 2

if pixel = 50 then begin ada2 := 1 ; edit1.Text := inttostr(i); edit2.Text := inttostr(j); dbaris1 := gb1.Picture.Bitmap.ScanLine[i]; dbaris3 := gb3.Picture.Bitmap.ScanLine[i];

if ((dbaris1[j-1] >= a1) and (dbaris1[j-1] <= a2) and (dbaris3[j-1]<> 200))

then begin

dbaris3[j-1] := 50 ; end;

if ((dbaris1[j+1] >= a1) and (dbaris1[j+1] <= a2) and (dbaris3[j+1]<> 200)) then begin dbaris3[j+1] := 50 ; end; dbaris1 := gb1.Picture.Bitmap.ScanLine[i-1]; dbaris3 := gb3.Picture.Bitmap.ScanLine[i-1]; if ((dbaris1[j] >= a1) and (dbaris1[j] <= a2) and (dbaris3[j]<> 200))

then begin

dbaris3[j] := 50 ; end;

if ((dbaris1[j+1] >= a1) and (dbaris1[j+1] <= a2) and (dbaris3[j +1]<> 200))

then begin

dbaris3[j+1] := 50 ; end;

Praktikum Pengolahan Citra Digital 55 Gambar 13.8 Code untuk proses region growing 2

Penjelasan dari code 13.6 dan 13.7 akan dilakukan saat praktikum.

if ((dbaris1[j-1] >= a1) and (dbaris1[j-1] <= a2) and (dbaris3[j-1]<> 200)) then begin dbaris3[j-1] := 50 ; end; dbaris1 := gb1.Picture.Bitmap.ScanLine[i+1]; dbaris3 := gb3.Picture.Bitmap.ScanLine[i+1]; if ((dbaris1[j] >= a1) and (dbaris1[j] <= a2) and (dbaris3[j]<> 200))

then begin

dbaris3[j] := 50 ; end;

if ((dbaris1[j+1] >= a1) and (dbaris1[j+1] <= a2) and (dbaris3[j+1]<> 200))

then begin

dbaris3[j+1] := 50 ; end;

if ((dbaris1[j-1] >= a1) and (dbaris1[j-1] <= a2) and (dbaris3[j-1]<> 200))

then begin

dbaris3[j-1] := 50 ; end;

// copy kan data posisi i,j di gb1 ke posis i,j //di gb2 dan set 200 pada gb3

dbaris1 := gb1.Picture.Bitmap.ScanLine[i]; dbaris2 := gb2.Picture.Bitmap.ScanLine[i]; dbaris3 := gb3.Picture.Bitmap.ScanLine[i]; dbaris2[j] := dbaris1[j]; dbaris3[j] := 200;

end; // end if pixel = 50 end;

end;// end while gb2.Repaint; gb3.Repaint;

edit6.Text := inttostr (k); end; // end prosedure

Praktikum Pengolahan Citra Digital 56 Gambar 13.8 Hasil eksekusi proses region growing

Praktikum Pengolahan Citra Digital 57

PRAKTIKUM 14

Tugas atau quis

1. Buatlah program negasi untuk citra berwarna

2. Buatlah program image blending untuk citra berwarna

3. Buatlah program motion detection untuk citra berwarna

4. Buatlah program region growing untuk citra berwarna

Untuk praktikum 15 dan seterusnya akan dilakukan berupa tugas

membuat program pengolahan citra diantaranya template matching,

Dalam dokumen Modul Praktikum Pengolahan Citra Digital (Halaman 37-57)

Dokumen terkait