You are on page 1of 57

S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 1 Pengenalan, Pengertian dan Contoh Aplikasi Pengolahan Citra

Tujuan : Mahasiswa mengerti tentang pengolahan citra dan diberikan sebagian contoh-contoh pengolahan citra yang terdapat pada Photoshop misal brightness, Contras, blur, filtering sedangkan contoh yang lain terdapat pada perangkat lunak OCR (untuk mengenali karakter misal huruf), untuk selanjutnya proses tersebut dapat diimplementasikan menggunakan bahasa pemrograman Delphi. Dasar Teori : Gambar atau Citra merupakan fungsi intensitas cahaya dua dimensi yang dapat dinyatakan berupa f(x,y) dengan x dan y terletak pada sistem koordinat spasial sedangkan nilai f pada koordinat x dan y tersebut sebanding dengan tingkat kecerahan dan biasanya dinyatakan dengan tingkat keabuan. Setiap titik f(x,y) di dunia komputer disebut Pixel ( picture element). Pengolahan citra digital bertujuan untuk melakukan proses terhadap sebuah gambar atau citra yang akan menghasilkan keluaran citra yang baru dan lebih sesuai dengan keinginan misalnya jika gambar terlalu terang (kelebihan sinar) maka kecerahannya bisa dikurangi sebaliknya jika gambar terlalu gelap ( kurang sinar) kecerahannya bisa ditambah. Keluaran pengolahan citra digital yang lain adalah dihasilkan sebuah keputusan misalnya dalam proses pengenalan huruf atau pengenalan sebuah obyek. Langkah – langkah Praktikum : 1. Aktifkan program PhotoShop Yaitu : Start AllProgram PhotoShop

Maka akan muncul Gambar 1.1

Praktikum Pengolahan Citra Digital

1

S1 Informatika STMIK Bumigora Mataram

Gambar 1.1 Tampilan Pertama Adobe Photoshop 2. Ambil sebuah gambar File Open Klik Gambar yang akan di ambil

3. Kemudian untuk melakukan perbaikan gambar misal brightness maupun contrast nya dapat dilakukan dengan cara : 4. Image Adjustment brightness/contrast

Kemudian ubah-ubahlah posisi penunjuk brightness maupun contrast

Gambar 1.2 Pemilihan Brightness/contrast pada Adobe Photoshop

Praktikum Pengolahan Citra Digital

2

S1 Informatika STMIK Bumigora Mataram

Gambar 1.3 Setting Brightness/contrast pada Adobe Photoshop

Cobalah pemrosesan citra yang lain misal : invert, equalize, threshold dan posterize. Untuk melihat aplikasi pengenalan karakter dapat menggunakan program OCR.

Praktikum Pengolahan Citra Digital

3

S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 2 Format citra, skala keabuan dan akses matrik/frame citra melalui bahasa pemrograman delphi

Tujuan : Mahasiswa mengerti tentang representasi sebuah citra / gambar, Pixel dan mengerti cara mengakses pixel citra menggunakan bahasa delphi. Dasar Teori : Gambar / Citra Gambar adalah kumpulan dari titik-titik dengan gradasi warna tertentu yang membentuk pola tertentu, di komputer titik-titik tersebut berbentuk kotak bujur sangkar dan disebut pixel (picture element) dan disebut juga dot. Titik-titik tersebut terletak pada bidang dua dimensi yang dapat dinyatakan berupa f(x,y) dengan x dan y terletak pada sistem koordinat spasial sedangkan nilai f pada koordinat x dan y tersebut sebanding dengan tingkat kecerahan. Citra yang tampak Citra yang terdapat di memori

0 1 0 4 3 1 0 1 2 0 4 3 2 0 2 0 5 0 4 0 5 0 5 0 4
Gambar 2.1 Ilustrasi citra dan data yang disimpan di memori

Pada gambar 2.1 warna hitam diilustrasikan dengan angka 0, biru angka 1 dan kuning angka 3, jumlah warna yang mungkin dapat dimiliki oleh sebuah gambar disebut Bit Depth (Kedalaman Warna), pixel depth atau color depth dan dinyatakan dalam bit. contoh untuk jumlah warna 16 disebut memiliki kedalaman 4 bit atau

Praktikum Pengolahan Citra Digital

4

S1 Informatika STMIK Bumigora Mataram 24 = 16, untuk gambar dengan 256 warna disebut memiliki kedalaman 8 bit atau 28= 256. Pada gambar 2.1 citra memiliki baris 5 dan kolom 5 sehingga berjumlah 25 pixel, citra ini disebut juga memiliki resolusi 5x5, jadi resolusi sebuah gambar / citra adalah jumlah pixel yang terdapat dalam satu gambar dan bisa dinyatakan dengan satu angka untuk contoh pada gambar 2.1 memilki resolusi 25 pixel atau berupa pasangan angka resolusinya 5x5 pixel. Format File Citra Format file citra adalah bagaimana citra itu direpresentasikan dalam sebuah file kondisinya bisa dalam keadaan terkompres atau pada posisi terenkripsi. Antara satu format dengan format yang lain memiliki kelebihan dan kelemahan. Setiap format file dapat di bedakan dari extensi filenya yaitu diakhiri titik dengan tiga huruf tambahan. Macam-macamnya : • Format file Bitmap/bmp adalah standar file bitmap / raster biasanya mempunyai ukuran file yang relatif besar tidak terkompres dan tidak mendukung gambar transparansi maupun animasi. • Format file GIF (Graphics Interchange Format) menggunakan maksimal 8 bit warna (28 = 256 warna) gambar ini menggunakan kompresi dengan LZW compression yang merupakan kompresi loseless yang berarti tidak ada data yang dibuang. Format ini juga mendukung gambar transparansi dan animasi. • Format file JPEG/JPG (Joint Photographic Experts Group) menggunakan 24 bit warna (224 = 16 juta warna) dan melakukan kompresi dengan cara membuang data yang dianggap tidak penting pada gambar (bersifat lossy compression). Semakin kecil file yang diinginkan semakin banyak data yang akan dibuang sehingga kualitasnya akan semakin menurun. Format ini tidak mendukung transparansi dan animasi. • Format file PNG-8 terdiri 8 bit warna, mempunyai hasil kompresi yang lebih kecil dari format GIF. • Format file PNG-24 menggunakan 24 bit warna, mempunyai ukuran yang lebih besar dan warna yang lebih banyak dari pada PNG-8.

Praktikum Pengolahan Citra Digital

5

Langkah Praktikum : Bukalah Program Delphi dengan cara 1) Start AllProgram Borland Delphi6 delphi 6 Gambar 2.S1 Informatika STMIK Bumigora Mataram • Format file PDF (Portable Document Format) digunakan untuk keperluan dokumen lintas sistem dan lintas program aplikasi dan mempunya ukuran file relatif kecil. Ada 2 jenis yaitu Photoshop PDF dan Generic PDF .2 Form Delphi 2) Pilih Additional 3) Pilih Standard Double klik Image double Klik Edit berturut-turut 3 kali sehingga muncul berturut-turut 3 kali sehingga edit1. Label2 dan Label3 Atur semua posisi Simbol sesuai selera Praktikum Pengolahan Citra Digital 6 . edit2 dan edit3 double Klik Label muncul Label1.

Picture. kolom dan nilai warna.Button1Click(Sender: TObject). end.S1 Informatika STMIK Bumigora Mataram Gambar 2. begin // tambahkan code berikut if(opd.Execute)then gb1. 5) Pilih Dialog klik OpenPictureDialog terdapat pada form1. 6) Pilih Standard klik Button yang terdapat pada form1 kemudian 7) Klik satu kali simbol ini ubahlah caption pada propertinya menjadi “ambil gambar” dan akan menjadi Kemudian lakukan double klik pada simbol ”ambil gambar”. Gambar 2. sehingga keluar Source codenya seperti berikut.3 Object Inspector. Code Untuk mengambil gambar dengan open picture dialog 8) Klik gb1 pada form1 pada object inspector klik Events Double klik events OnMouseMove sehingga keluar code sebagai berikut: Praktikum Pengolahan Citra Digital 7 . properties dan events 4) Klik simbol image yang terdapat pada form dan ubah propertynya Autosize diset true Center diset true Name diubah gb1 (singkatan gambar 1) Proportional diset true Dengan cara yang sama ubahlah property caption label1. procedure TForm1. label2 dan label 3 menjadi baris.FileName).4. klik simbol tersebut dan Sehingga Simbol ini ubahlah name pada propertinya menjadi opd.LoadFromFile(opd.

Picture. adalah code untuk menampilkan posisi mouse x pada edit2 dbaris := gb1.Text := inttostr(dbaris[x]).Text := inttostr(x). Y: Integer). begin // tambahkan code berikut edit1.Bitmap. // Mengambil nilai warna pada posisi x.Text := inttostr(y).ScanLine[y].ScanLine[y].Text := inttostr(y).y dan ditampilkan di edit3 dbaris := gb1. var dbaris : pbytearray. X.Text := inttostr(x).5.5 informasi posisi dari penunjuk mouse pada gambar terdapat pada x dan y code : edit1. adalah code untuk menampilkan posisi mouse y pada edit1 edit2.S1 Informatika STMIK Bumigora Mataram procedure TForm1.Bitmap.y Pada Gambar 2. Shift: TShiftState.Code untuk menampilkan nilai warna pada posisi x. adalah code untuk menampilkan nilai warna atau keabuan pixel pada koordinat x. edit3. edit3. end.Picture.Text := inttostr(dbaris[x]). dan cari Praktikum Pengolahan Citra Digital 8 . Gambar 2. edit2.gb1MouseMove(Sender: TObject.y 9) Jalankan Program dengan menekan F9 lalu klik lokasi gambar grayscale yang ingin ditampilkan.

y Pada gambar 2.y sedangkan nilai warna akan berubah ubah sesuai dengan warna gambar yang ditunjuk.6. saat warnanya antara hitam dan putih (abu-abu) nilainya akan beruba-ubah antara 0 dan 255. saat program dijalankan dan saat mouse digerakkan di area gb1 maka nilai baris.S1 Informatika STMIK Bumigora Mataram Gambar 2. nilai kolom dan nilai warna akan berubah-ubah sesuai dengan posisi penunjuk mouse pada koordinat x. Praktikum Pengolahan Citra Digital 9 .6. Hasil program untuk menampilkan nilai warna pada posisi x. Untuk menampilkan nilai warna untuk gambar berwarna akan dijelaskan saat praktikum. saat warna hitam bernilai 0. saat warna putih bernilai 255.

implementasi konversi RGB to Gray Scale dan implementasi konversi Gray to Biner Tujuan : Mahasiswa mengerti cara memprogram untuk melakukan teknik kuantisasi pada konversi model citra Dasar Teori : gray-scale atau skala keabuan seperti yang terdapat pada contoh gambar 2. hal tersebut dilakukan agar model citranya menjadi lebih sederhana. Konversi dapat dilakukan dengan cara mengambil nilai rata-rata dari nilai r. Citra berwarna memiliki tiga lapisan/layer yaitu lapisan merah (R-Layer). Sehingga jika ingin melakukan proses pengolahan citra terhadap citra berwarna harus melibatkan tiga lapisan warna tersebut dan tentunya perhitungan yang dilakukan tiga kali lebih banyak dari pada citra gray-scale untuk itu konversi citra berwarna kecitra gray-scale perlu dilakukan dengan cara mengubah jumlah layer yang tadinya 3 layer menjadi 1 layer. Pada citra gray-scale tidak ada lagi warna yang ada hanyalah skala keabuan. pada image processing proses awal yang dilakukan terhadap citra berwarna adalah mengubah menjadi citra gray-scale. 2) Double klik lagi button lalu ubah captionnya menjadi Konversi Color ke Gray Praktikum Pengolahan Citra Digital 10 .1 memiliki satu lapisan/layer dengan nilai 0 sampai 255. Lapisan Hijau ( G-Layer) dan Lapisan biru (B-Layer).S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 3 Kuantisasi. g dan b yaitu : s r  g b 3 Langkah Praktikum : 1) Aktifkan program delphi pada form1 pilih standard double klik button Kemudan pada button yang muncul ubah propertinya caption di ubah menjadi ambil gambar.

2. gb2. Gambar 3.FileName).Picture. 3) Pilih additional double klik image kemudian ubah propertinya : Autosize diset true Center diset true Name diisi gb1 (singkatan gambar 1) Proportional diset true 4) Ulangi langkah 3 khusus untuk name diisi gb2 kemudia atur semua posisi object sesuai selera. if (opd. Gambar 3.FileName). 5) Pilih Dialog Double klik open picture dialog kemudian name pada propertinya Diubah menjadi OPD (Agar tidak terlalu panjang).1.LoadFromFile(opd.2 Code Untuk menampilkan gambar 1 dan gambar 2 7) Pada form1 double klik button konversi Color ke gray Scale kemudian tambahkan code pada gambar 3. end.Execute) then begin gb1.Picture.3 pada posisi paling atas dari code setelah 11 Praktikum Pengolahan Citra Digital .S1 Informatika STMIK Bumigora Mataram Scale.LoadFromFile(opd.Tampilan form konversi Color ke GrayScale 6) double klik button ambil gambar sehingga keluar source codenya dan tambahan code pada gambar 3.

Picture. for i := 0 to 255 do begin Palet.Picture.PixelFormat := pf8bit. Palet. Gambar 3.ScanLine[i]. Form1.palNumEntries := 256. var i.Picture..gb2.gb2. Form1. for i:= 0 to Form1. d_G := Form1.lpal).BitMap.Repaint.Picture. Code Konversi citra bewarna ke citra Gray Scale Praktikum Pengolahan Citra Digital 12 .Palette := CreatePalette(Palet.lPal.gb1. Gambar 3.gb1.3 Deklarasi tipe data baru berisi array sebanyak 256 8) pada form1 double klik button konversi Color ke gray Scale sekali lagi Tambahkan code pada gambar 3. end.Width-1 do d_G[j] := Round((d_w[3*j]+d_w[3*j+1]+d_w[3*j+2])/3). j: integer.Picture. end.Picture.S1 Informatika STMIK Bumigora Mataram implementation {$R *. end.entry[i]. procedure TForm1.4.255] of TPaletteEntry.Bitmap.lPal.palVersion := $300. for j:= 0 to Form1.peBlue := i. begin Palet. var Palet: LogPal.4. d_G: PByteArray.Button2Click(Sender: TObject). Palet. end.BitMap.entry[i].gb1.peRed := i.gb2.ScanLine[i].peGreen := i. d_w. Palet.Bitmap.dfm} type LogPal = record lpal: TLogPalette. gb2. entry: array [0.entry[i].Height-1 do begin d_w := Form1.

Gambar 3. Contoh Konversi citra bewarna ke citra Gray Scale Praktikum Pengolahan Citra Digital 13 .S1 Informatika STMIK Bumigora Mataram 9) jalankan program dan lakukan proses konversi setelah gambar berwarna di ambil 10) Penjelasan Code akan dilakukan saat praktikum.5.

total kemunculan adalah 25 kali atau sebanyak jumlah pixel.S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 4 Histogram. Praktikum Pengolahan Citra Digital 14 . Histogram ini digunakan Untuk menyatakan distribusi data dari nilai derajat keabuan. angka 2 muncul 3 kali. angka 4 muncul 4 kali dan angka 5 muncul 2 kali. Misal terdapat gambar dengan code warna sebagai berikut : 0 1 0 4 3 1 0 1 2 0 4 3 2 0 2 0 5 0 4 0 5 0 5 0 4 Maka Histogramnya adalah : X = 10 3 3 2 4 3 Artinya angka 0 muncul 10 kali. angka 1 muncul 3 kali. implementasi Histogram pada gray level Dan implementasi Histogram pada citra berwarna Tujuan : Mahasiswa mengetahui cara membuat program histogram dan mengimplementasikan pada citra berwarna maupun citra gray scale Histogram Histogram merupakan sebuah fungsi yang menjelaskan berapa kali sebuah nilai keabuan muncul dalam sebuah gambar. angka 3 muncul 2 kali.

. Code Procedure histogram 6) Isikan Code berikut untuk memastikan variabel penampung histogram bernilai 0 for lop := 0 to 255 do begin h[lop] := 0. histogram. hb[lop] := 0. button dan open picture dialog.FileName). y2: integer.2. image.S1 Informatika STMIK Bumigora Mataram Langkah Praktikum : 1) Lakukan langkah-langkah seperti pada praktikum pertemuan 2.2 procedure histogram. 4) Double klik button ambil gambar dan tulis code berikut if (opd. Gambar 4.Execute) then gb1.kl. lop.Picture. y1 . begin // Letakkan code Hapus nilai histogram disini // Letakkan code untuk mengakses semua pixel pada gambar disini // sekaligus hitung nilai histogramnya dan nilai tertingginya // Letakkan code Tampilkan nilai histogram pada form2 dan memo end. dbaris : pbytearray. end. hg[lop] := 0. mak . hr[lop] := 0. 2) Pilih Standard Double klik memo yang terdapat di kiri sehingga 3) Buat form baru dengan meng klik muncul form2.LoadFromFile(opd. br. h : array[0.255] of integer. Code ambil gambar dan pemanggil prosedure histogram 5) Buatlah sebuah prosedure seperti gambar 4. data. 5) Buatlah prosedure histogram sebagai berikut tinggi : integer. var hasil : string. atur juga propertinya.1. Praktikum Pengolahan Citra Digital 15 . Gambar 4.

layer R. hr[data] := hr[data] + 1. Code Hapus nilai histogram Code pada Gambar 4.kl) letakkan di data dbaris := form1. // hitung histogram layer blue data := dbaris[3*kl].3. hb[data] := hb[data] + 1.//kl end.gb1.kl) dbaris := form1.Bitmap.4. // hitung histogram layer red data := dbaris[3*kl+2].Bitmap. if (hb[data]>makb) then makb := hb[data]. for br := 0 to form1. untuk memastikan nilai histogram untuk gray scale.gb1.3.ScanLine[br]. makb := 0. Code menghitung histogram pada citra gray scale if (form1. if (form1. 7) Untuk mengakses semua pixel dan menghitung nilai histogramnya pada gray scale dapat dilakukan menggunakan code pada gambar 4.gb1.Picture. // hitung histogram layer green data := dbaris[3*kl+1]. h[data] := h[data] + 1.PixelFormat = pf24bit) then begin makr := 0.ScanLine[br]. if (hg[data]>makg) then makg := hg[data]. layer G dan layer B bernilai 0 sebelum proses perhitungan yang sebenarnya dilakukan.//kl end.Bitmap.gb1. makg := 0.Picture. Gambar 4.gb1. end. Praktikum Pengolahan Citra Digital 16 . data := dbaris[kl].Picture. if (hr[data]>makr) then makr := hr[data].S1 Informatika STMIK Bumigora Mataram Gambar 4.gb1.4 sedangkan untuk citra color dilakukan menggunakan code pada gambar 4. end.PixelFormat = pf8bit) then begin mak := 0.height-1 do begin for kl := 0 to form1.Height-1 do begin //ambil data (br.5. //br end.gb1. for br := 0 to form1.gb1.Picture. hg[data] := hg[data] + 1. // hitung histogram if (h[data]>mak) then mak := h[data].Bitmap.Width-1 do begin for kl := 0 to form1.width-1 do begin //ambil data (br. //br end.

form1. gambar 4. // gambar histogram dibalik y2 := tinggi.gb1.LineTo(1+lop. Gambar 4.y1 .5.gb1.Bitmap.Pen. end.memo1. end./ / agar tidak keluar area y1 := tinggi. menampilkan histogram citra berwarna. // di skala tinggi/mak y2 := Round(h[lop+1]/mak*tinggi).PixelFormat = pf8bit) then begin for lop := 0 to 255 do begin form2. // gambar histogram dibalik form2.Picture.6 untuk menampilkan di memo. form2. if (form1.7 menampilkan histogram citra gray scale di form2 Praktikum Pengolahan Citra Digital 17 .Picture.PixelFormat = pf8bit) then begin for lop := 0 to 255 do begin hasil := inttostr(lop) + ' = ' + inttostr(h[lop]).Canvas.Color := clBlack.8.Canvas.Lines.MoveTo(0+lop. end. menampilkan histogram citra gray scale di memo if (form1.S1 Informatika STMIK Bumigora Mataram Gambar 4. Gambar 4.6.Bitmap.7 menampilkan histogram citra gray scale pada sebuah form dan gambar 4.Add(hasil). Code menghitung histogram pada citra Color 8) Dari hasil yang diperoleh langkah 7 agar histogram kelihatan dilayar maka dapat ditambahkan beberapa code pada gambar 4. end. y1 := Round(h[lop]/mak*tinggi). y2).Canvas. y1).y2.

Canvas.y1 .Canvas.Picture. end.y2.Pen. // histogram G Layer form2.Bitmap.Canvas. end. // histogram di skala tinggi/mak y2 := Round(hb[lop+1]/makb*tinggi). // histogram di skala tinggi/mak y2 := Round(hg[lop+1]/makg*tinggi).y1 .y2. // gambar histogram dibalik y2 := tinggi.MoveTo(0+lop. // gambar histogram dibalik form2. y1 := Round(hg[lop]/makg*tinggi). // gambar histogram dibalik y2 := tinggi. y1).LineTo(1+lop. form2.Pen.Canvas. //skala di buat agar tidak keluar area y1 := tinggi. // histogram di skala tinggi/mak y2 := Round(hr[lop+1]/makr*tinggi).MoveTo(0+lop. y1).LineTo(1+lop. y2).Canvas. // gambar histogram dibalik form2. y1 := Round(hr[lop]/makr*tinggi).Color := clGreen. // gambar histogram dibalik form2.Pen.Canvas.Canvas.LineTo(1+lop. y1). Gambar 4. //dibuat agar tidak keluar area y1 := tinggi.S1 Informatika STMIK Bumigora Mataram if (form1.8 menampilkan histogram citra Color di form2 Praktikum Pengolahan Citra Digital 18 .PixelFormat = pf24bit) then begin for lop := 0 to 255 do begin // histogram R Layer form2.y1 .Color := clBlue. // gambar histogram dibalik y2 := tinggi.y2. y2).gb1.Canvas.MoveTo(0+lop.Color := clRed. form2. form2. y1 := Round(hb[lop]/makb*tinggi). y2). // histogram B Layer form2. //dibuat agar tidak keluar area y1 := tinggi.Canvas.

9 Gambar 4.9 Hasil program penampil histogram dalam angka dan grafis Praktikum Pengolahan Citra Digital 19 .S1 Informatika STMIK Bumigora Mataram Jika program yang dibuat dijalankan dengan benar maka akan diperoleh tampilan seperti gambar 4.

4) Soal untuk kuis diberikan saat kuis. 2) Kembangkan akses pixel pada praktikum 2 untuk menampilkan nilai baris. kolom dan nilai warna pada citra berwarna untuk semua layer (Red. Praktikum Pengolahan Citra Digital 20 .S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 5 Praktikum 5 Tugas atau kuis Tugas : 1) Berilah Contoh macam-macam pengolahan citra yang terdapat pada photoshop maupun paint brush. 3) Tunjukkan ukuran citra baik baris maupun kolom pada sebuah tampilan edit. Green dan Blue).

Brightness dan implementasi Pergeseran histogram Dasar Teori : Pencerahan gambar ( Image Brightness) merupakan suatu cara agar sebuah citra menjadi tambah terang atau menjadi tambah gelap. Brightness dan implementasi Pergeseran histogram Tujuan : Mahasiswa mengetahui cara membuat program Operasi titik. citra hasil dapat diperoleh dengan menambah sebuah bilangan/konsanta pada citra asli. Proses image brightness ini akan menyebabkan histogram citra hasil berbeda dengan histogram citra Asal. Praktikum Pengolahan Citra Digital 21 . CH = CA + B Dengan : CH : Citra Hasil CA : Citra Asal B : Bilangan bulat Untuk Bilangan negative akan dihasilkan citra yang lebih gelap. sedangkan untuk bilangan positip akan dihasilkan citra yang lebih terang.S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 6 Operasi titik. Setelah proses penjumlahan dilakukan ada kemungkinan data bernilai lebih besar dari 255 atau lebih kecil dari 0 untuk itu perlu dilakukan clipping kenilai keabuan terdekat misal 0 untuk yang bernilai negatif atau 255 untuk yang bernilai diatas 255.

lakukan langkah seperti langkah pada praktikum 2 untuk menampilkan gambar pada gb1 dan gb2 tambahkan satu baris code sehingga hasilnya seperti yang terdapat pada gambar 6. Praktikum Pengolahan Citra Digital 22 .1.S1 Informatika STMIK Bumigora Mataram Langkah Praktikum : 1) Aktifkan program delphi dan buatlah form2 dan form3 dengan cara mengklik tombol new form 2) Pilih additional disebelah kiri tombol run sebanyak dua kali untuk membuat double klik image image1 dan image2 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 3) Buatlah button pada form1 dan captionnya diubah menjadi Ambil gambar.

if(opd. Gambar 6.LoadFromFile(opd. begin // Tambahkan code berikut if(opd.Execute)then gb2.FileName).LoadFromFile(opd.Picture. dan tambahkan beberapa code sehingga menjadi seperti gambar 6.2. klik events kemudian double klik OnChange sehingga keluar codenya. Praktikum Pengolahan Citra Digital 23 . end.Button1Click(Sender: TObject).S1 Informatika STMIK Bumigora Mataram procedure TForm1. 5) Pilih standard klik edit sehingga muncul edit1 Klik scrollbar ubahlah name nya menjadi sb (agar tidak 6) klik scrollbar yang telah berada di form1 dan pada object inspector (terdapat properti dan events).1 Code untuk mengambil dua gambar yang sama dengan open picture dialog 4) Pilih standard terlalu panjang).Picture.FileName).Execute)then gb1.

dbaris2 : pbytearray. histogram. kl : integer.Text := inttostr(sb.S1 Informatika STMIK Bumigora Mataram procedure TForm1.Bitmap.Height-1 do begin for kl := 0 to gb1.Bitmap. Praktikum Pengolahan Citra Digital 24 .// if form1.Picture.gb1. dbaris2 := gb2. end. // end for kl end. begin edit1.Picture. // prosedure Gambar 6. //Geser nilai gb2 sebesar nilai posisi sb Untuk gray if (form1.Repaint.PixelFormat = pf8bit end.ScanLine[br].Picture.Position)<0) then dbaris2[kl] := 0 .Position > 255 ) then dbaris2[kl] := 255 else dbaris2[kl] := dbaris1[kl] + sb.PixelFormat = pf8bit) then begin if(dbaris1[kl] + sb. var br . Berfungsi untuk memastikan hasil brightness pada gambar 2 tidak nilai keabuannya tidak melebihi 255 dan tidak kurang dari 0.ScanLine[br].Bitmap. if ((dbaris1[kl]+sb. for br := 0 to gb1. Code berikut yang terdapat ada gambar 6.2 Code Events OnChange pada Scrollbar 7) Lakukan perbaikan pada prosedure Histogram untuk menampilkan histogram gambar2.Bitmap.gb1.Position .Position > 255 ) then dbaris2[kl] := 255 else dbaris2[kl] := dbaris1[kl] + sb.Position).2 if(dbaris1[kl] + sb.Picture.Position)<0) then dbaris2[kl] := 0 .Width-1 do begin dbaris1 := gb1. if ((dbaris1[kl]+sb.Position . // end for br //Tampilkan hasilnya dan hitung histogramnya gb2. end.sbChange(Sender: TObject). dbaris1 .

3 Form tampilan sebelum program dijalankan Praktikum Pengolahan Citra Digital 25 .S1 Informatika STMIK Bumigora Mataram Gambar 6.

S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 7 Operasi titik Kontras dan implementasi Pergeseran histogram Tujuan : Mahasiswa mengetahui cara membuat program Kontras dan histogram kemudian mengimplementasikan pada citra berwarna maupun citra gray scale Dasar Teori : Kontras atau disebut juga Contrast stretching adalah suatu teknik untuk membuat suatu citra baru memiliki kontras yang lebih baik dari citra asal. Untuk mengubah kontras dapat dilakukan dengan cara mengatur range interval dari dua buah nilai derajat keabuan dan dapat didefinisikan sebagai berikut : CH = CA x K Dimana : CH : Citra Hasil CA : Citra Asli K : Konstanta pengali Cara yang lain adalah : CH = (CA-P) * G + P Dimana: CH : Citra Hasil CA : Citra Asli G P : Konstanta pengali : konstanta pengurang Praktikum Pengolahan Citra Digital 26 .

1 . Klik edit dan beri label keterangan dengan Praktikum Pengolahan Citra Digital 27 .S1 Informatika STMIK Bumigora Mataram Langkah Praktikum : 1) Lakukan langkah praktikum seperti langkah praktikum 6 yaitu langkah 1. 2 dan 3 2) Tambahkan Spin Edit pada form1 dengan cara Pilih Samples double klik Spin Edit kemudian ubahlah isi properti name menjadi SE dan beri sebuah label keterangan dengan caption P 3) Pilih standard caption G. 4) Klik komponen spin edit dan double klik pada events on change dan isikan code seperti yang terdapat pada gambar 7.

Picture. if temp>255 then temp := 255. if temp<0 then temp := 0.Value . end. dbaris2[3*kl+2] := temp.gb1.ScanLine[br].gb1.Picture. if temp<0 then temp := 0.Picture. dbaris2[kl] := temp. dbaris2 : pbytearray.Height-1 do begin for kl := 0 to gb1. // layer R temp := round( (dbaris1[3*kl+2]-p)*g + p). // tampilkan hasilnya dan hitung histogramnya gb2.Picture.g : real.PixelFormat = pf24bit) then begin // layer B temp := round( (dbaris1[3*kl]-p)*g + p). g := strtofloat(edit1. p. if temp>255 then temp := 255.seChange(Sender: TObject).ScanLine[br]. begin p := se. // gambar gray scale if (form1. end.PixelFormat = pf8bit) then begin temp := round( (dbaris1[kl]-p)*g + p).Repaint. if temp>255 then temp := 255. if temp>255 then temp := 255. dbaris2[3*kl] := temp. end. if temp<0 then temp := 0. end. dbaris2 := gb2. end. var br . // gambar Color if (form1. kl . temp : integer. dbaris1 . if temp<0 then temp := 0. for br := 0 to gb1. histogram.Width-1 do begin dbaris1 := gb1.Bitmap. dbaris2[3*kl+1] := temp.Bitmap. // layer G temp := round( (dbaris1[3*kl+1]-p)*g + p).1 Code untuk proses contras Praktikum Pengolahan Citra Digital 28 . Gambar 7.Text).Bitmap.Bitmap.S1 Informatika STMIK Bumigora Mataram procedure TForm1.

edit1 berisi berapa besar gambar akan dikalikan sedangkan spin edit berisi nilai pengurangan yang akan dilakukan terhadap gambar tersebut sebelum dikalikan.2 Program sebelum dijalankan Button gambar adalah untuk mengambil gambar yang akan diproses dan diletakkan pada image1 atau gb1. Contoh hasil eksekusi program brightness terdapat pada gambar 7. image1. spin edit dan edit. image2.S1 Informatika STMIK Bumigora Mataram Form tampilan sebelum gambar dijalankan terdapat pada gambar 7. Praktikum Pengolahan Citra Digital 29 .3. Gambar 7.2 yang didalamnya berisi form1.

3 Contoh Program setelah dijalankan Praktikum Pengolahan Citra Digital 30 .S1 Informatika STMIK Bumigora Mataram Gambar 7.

Pengambangan Tujuan : Mahasiswa mengetahui cara membuat program pengambangan dan mengimplementasikan pada citra berwarna maupun citra gray scale Praktikum ini akan membuat sebuah citra yang tadinya memiliki variasi nilai keabuan dari 0 sampai dengan 255 atau sebanyak 256 variasi akan diubah menjadi 0 atau 255.1. Praktikum Pengolahan Citra Digital 31 . dengan syarat jika nilai pada gambar pertama lebih besar dari nilai ambang maka nilai piksel gambar kedua diset 255 jika tidak maka nilai pixel gambar 2 diset 0.S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 8 Operasi titik. Langkah Praktikum Pengambangan tunggal : 5) Lakukan langkah praktikum seperti langkah praktikum 6 yaitu langkah 1. 2 dan 3 6) Tambahkan Spin Edit pada form1 dengan cara Pilih Samples double klik Spin Edit kemudian ubahlah isi properti name menjadi SE dan beri sebuah label keterangan dengan caption P 7) Double klik events On Change pada komponen spin edit dan lakukan perubahan pada code nya seperti gambar 8.

Bitmap. end.seChange(Sender: TObject). // gambar gray scale if (form1. // gambar Color if (form1.1.2 Praktikum Pengolahan Citra Digital 32 . end.S1 Informatika STMIK Bumigora Mataram procedure TForm1.PixelFormat = pf8bit) then begin temp := dbaris1[kl] . // layer R if (dbaris1[3*kl+2]>p) then dbaris2[3*kl+2] := 255 else dbaris2[3*kl+2] := 0.Width-1 do begin dbaris1 := gb1. var br .Picture.Picture. end.gb1. for br := 0 to gb1. histogram. Gambar 8. begin p := se.ScanLine[br].ScanLine[br].Bitmap.gb1. end. dbaris2 : pbytearray. // layer G if (dbaris1[3*kl+1]>p) then dbaris2[3*kl+1] := 255 else dbaris2[3*kl+1] := 0.Picture. if (dbaris1[kl]>p) then dbaris2[kl] := 255 else dbaris2[kl] := 0.Height-1 do begin for kl := 0 to gb1. p.Repaint.PixelFormat = pf24bit) then begin // layer B if (dbaris1[3*kl]>p) then dbaris2[3*kl] := 255 else dbaris2[3*kl] := 0. dbaris2 := gb2. temp : integer.Value .Bitmap. // tampilkan hasilnya dan hitung histogramnya gb2.g : real.Picture. end. dbaris1 . kl . Code untuk proses pengambangan tunggal Contoh hasil pengambangan terdapat pada gambar 8.Bitmap.

2.S1 Informatika STMIK Bumigora Mataram Gambar 8. Contoh hasil running pengambangan dengan nilai ambang 128 Langkah Praktikum Pengambangan ganda : 1) Lakukan langkah praktikum seperti langkah praktikum 6 yaitu langkah 1. 2 dan 3 2) Tambahkan Spin Edit pada form1 dengan cara Pilih Samples double klik Spin Edit kemudian ubahlah isi properti name menjadi SEB dan beri sebuah label keterangan dengan caption B Bawah 3) Tambahkan Spin Edit pada form1 dengan cara Pilih Samples double klik Spin Edit kemudian ubahlah isi properti name menjadi SEA dan beri sebuah label keterangan dengan caption B Atas Praktikum Pengolahan Citra Digital 33 .

Repaint. // tampilkan hasilnya dan hitung histogramnya gb2. histogram.Bitmap.atas: real.ScanLine[br]. end.PixelFormat = pf8bit) then begin if ((dbaris1[kl]>bawah) and (dbaris1[kl]<atas)) then dbaris2[kl] := 255 else dbaris2[kl] := 0. end. Gambar 8.4 Code untuk proses pengambangan ganda pada SEB CHANGE Praktikum Pengolahan Citra Digital 34 . for br := 0 to gb1.gb1. // gambar gray scale if (form1. kl . dbaris1 .ScanLine[br]. begin bawah := seb. temp : integer.sebChange(Sender: TObject). procedure TForm1.Picture. dbaris2 := gb2.4.S1 Informatika STMIK Bumigora Mataram 4) Double klik events On Change pada komponen spin edit SEB dan lakukan perubahan pada code nya seperti gambar 8. bawah. var br . end. dbaris2 : pbytearray.Picture.Bitmap.Picture.Width-1 do begin dbaris1 := gb1.Bitmap. atas := sea.Value .Height-1 do begin for kl := 0 to gb1.Value . end.

Value := seb. procedure TForm1.5 Code untuk proses pengambangan ganda pada SEA CHANGE Code pada langkah 5 ini boleh dipakai boleh tidak dipakai. begin seb.5. Gambar 8. end.Value . seb. code yang terdapat di spin edit batas bawah tidak langsung dieksekusi sehingga perubahan pada gambar hasil tidak langsung kelihatan.6 Praktikum Pengolahan Citra Digital 35 .seaChange(Sender: TObject).S1 Informatika STMIK Bumigora Mataram 5) Double klik events On Change pada komponen spin edit SEA dan lakukan perubahan pada code nya seperti gambar 8. jika tidak dipakai maka jika terjadi perubahan nilai pada spin edit batas atas.Value := seb.1. Contoh hasil pengambangan ganda terdapat pada gambar 8.Value + 1.

6 Contoh hasil running pengambangan ganda Praktikum Pengolahan Citra Digital 36 .S1 Informatika STMIK Bumigora Mataram Gambar 8.

S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 9 Tugas atau uts 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 37 .

S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 10 Operasi titik. 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 5) Pilih additional disebelah kiri tombol run sebanyak dua kali untuk membuat double klik image image1 dan image2 kemudian ubahlah propertinya Pada image 1 Autosize diset true Center diset true Name diubah gb1 (singkatan gambar 1) Proportional diset true Pada image 2 Praktikum Pengolahan Citra Digital 38 . sehingga timbul efek gambar negatif . 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.

1. procedure TForm1.1 Code untuk mengambil gambar yang sama dengan picture dialog 4.Top := button2.Picture.2 Praktikum Pengolahan Citra Digital 39 .Button1Click(Sender: TObject).Execute) then begin gb1. histogram.Height * 2 + 10 . Buatlah button pada form1 dan captionnya diubah menjadi negasi. gb2. 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. gb1.Top := end.Picture.FileName).FileName).LoadFromFile(opd. button1. gb1.Top := gb1. kemudian double klik button tersebut dan isikan code yang terdapat pada gambar 10. Gambar 10.Height + 5 . begin if (opd.LoadFromFile(opd.S1 Informatika STMIK Bumigora Mataram 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.Height * 2 + 10 . end. gb2.

2 Code proses negasi Contoh hasil eksekusi proses negasi terdapat pada gambar 10. begin for br := 0 to gb1.Bitmap.3 Gambar 10. end. kl : integer. dbaris1 .Bitmap.dbaris1[kl].3 Contoh hasil eksekusi proses negasi Praktikum Pengolahan Citra Digital 40 .ScanLine[br].Button2Click(Sender: TObject).Width-1 do begin dbaris1 := gb1. end. Gambar 10. var br .ScanLine[br].Picture. dbaris2[kl] := 255 . dbaris2 : pbytearray.Height-1 do begin for kl := 0 to gb1. // tampilkan hasilnya dan hitung histogramnya gb2.Picture.Repaint. dbaris2 := gb2.S1 Informatika STMIK Bumigora Mataram procedure TForm1. end. histogram.

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 8) Pilih additional disebelah kiri tombol run sebanyak tiga kali untuk membuat double klik image 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 41 .S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 11 Operasi titik. penggabungan gambar (image blending) dan mengimplementasikan pada citra berwarna maupun citra gray scale. Keterangan: Praktikum ini akan menggabung dua gambar sehingga diperoleh . penggabungan gambar(image blending) Tujuan : Mahasiswa mengetahui cara membuat program operasi titik.

button1. end.LoadFromFile(opd.FileName).Height + 5 . gb2.Height * 2 + 10 .Top := button2.Height * 2 + 10 . gambar 2 dan gambar3 open picture dialog Praktikum Pengolahan Citra Digital 42 . 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. histogram.Execute) then begin gb1.S1 Informatika STMIK Bumigora Mataram 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.FileName). procedure TForm1.Top := end.LoadFromFile(opd.Button1Click(Sender: TObject). gb3.Picture.Picture. gb2.Picture.1 Code untuk mengambil gambar 1.1.Top := gb1. Gambar 11.LoadFromFile(opd. gb1. begin if (opd. gb1.FileName).

2 Code proses blending Praktikum Pengolahan Citra Digital 43 . if (form1.Picture. end. Gambar 11.ScanLine[br].Picture. Berikut ini adalah coding untuk melakukan proses blending procedure TForm1.PixelFormat = pf8bit) then begin dbaris3[kl] := round ((sb.Width < gb2. if ( gb1. var br . dbaris2.sbChange(Sender: TObject). if ( gb1. sb.Min := 0.Width) then lebar := gb1.Bitmap.Width. // tampilkan hasilnya dan hitung histogramnya gb3. histogram.Bitmap.Height else tinggi := gb2. begin sb. dbaris1 . end.gb1. edit1.Position) / 100 )* dbaris2[kl]).sb.Height) then tinggi := gb1. dbaris3 : pbytearray.S1 Informatika STMIK Bumigora Mataram 4.Bitmap. lebar: integer.Height.Max := 100.Picture. end.Width else lebar := gb2.Position/100)*dbaris1[kl] + ((100 . kl . end. dbaris3 := gb3.ScanLine[br].Height < gb2.Repaint. dbaris2 := gb2.ScanLine[br].Picture.Bitmap. for br := 0 to tinggi-1 do begin for kl := 0 to lebar-1 do begin dbaris1 := gb1.Text := inttostr(sb.Position). tinggi .

Gambar 11.3.3 Contoh hasil eksekusi proses blending Praktikum Pengolahan Citra Digital 44 .S1 Informatika STMIK Bumigora Mataram Contoh hasil eksekusi coding tersebut terdapat pada gambar 11.

S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 12 Operasi titik. pengurangan gambar(Untuk aplikasi Motion detection) Tujuan : Mahasiswa mengetahui cara membuat program operasi titik. 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 11) Pilih additional disebelah kiri tombol run sebanyak tiga kali untuk membuat double klik image 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 Praktikum Pengolahan Citra Digital 45 . pengurangan gambar (Contoh untuk deteksi gerak) dan mengimplementasikan pada citra berwarna maupun citra gray scale.

Height * 2 + 10 . gb1.LoadFromFile(opd. 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. gb2.1 Code untuk mengambil gambar 1. gambar 2 dan gambar3 open picture dialog Praktikum Pengolahan Citra Digital 46 .Height * 2 + 10 . end.Top := end. button1. gb1.FileName).FileName).Picture.LoadFromFile(opd.Button1Click(Sender: TObject). gb3.Picture. histogram.S1 Informatika STMIK Bumigora Mataram 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.LoadFromFile(opd.Execute) then begin gb1.Height + 5 . Gambar 12. procedure TForm1.1.Picture.Top := button2.FileName). begin if (opd.Top := gb1. gb2.

Gambar 12.S1 Informatika STMIK Bumigora Mataram 4.Width) then lebar := gb1.Height <= gb2. total := 0.ScanLine[br].Bitmap.Height) then tinggi := gb1. dbaris1 .Text := inttostr(sb. Berikut ini adalah coding untuk melakukan proses pengurangan gambar procedure TForm1. end.Height else tinggi := gb2. end.dbaris2[kl] else total := total + dbaris2[kl].ScanLine[br]. for br := 0 to tinggi-1 do begin for kl := 0 to lebar-1 do begin dbaris1 := gb1. begin sb. if (form1. kl . dbaris3 : pbytearray.Text := inttostr(total). if ( gb1.Picture.Position). lebar .Picture. dbaris2 := gb2.Bitmap.sbChange(Sender: TObject).Max := 100.Height.ScanLine[br]. var br .Width <= gb2. dbaris3 := gb3. if ( gb1. sb. tinggi . gb3.Picture. total : integer.Bitmap.Picture. edit1.dbaris2[kl]+ 100. dbaris3[kl] := dbaris1[kl].gb1.dbaris1[kl]. end.Width.Bitmap.PixelFormat = pf8bit) then begin if (dbaris1[kl]> dbaris2[kl]) then total := total + dbaris1[kl]. dbaris2.Repaint.Width else lebar := gb2. histogram. // tampilkan hasilnya dan hitung histogramnya edit1.Min := 0.2 Code proses pengurangan gambar dan menghitung total perbedaannya Praktikum Pengolahan Citra Digital 47 . end.

3. Gambar 12.3 Contoh hasil eksekusi proses pengurangan gambar Praktikum Pengolahan Citra Digital 48 .S1 Informatika STMIK Bumigora Mataram Contoh hasil eksekusi coding tersebut terdapat pada gambar 12.

Keterangan: Praktikum ini akan membuat sebuah aplikasi yang dapat menelusuri pixelpixel dengan nilai keabuan yang hampir sama dan bertetangga.1 Tampilan form yang akan dibuat 49 Praktikum Pengolahan Citra Digital .1 Gambar 13. 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.S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 13 Region Growing Tujuan : Mahasiswa mengetahui cara membuat program Region growing pada citra berwarna maupun citra gray scale.

edit3.S1 Informatika STMIK Bumigora Mataram 14) Pilih additional double klik image sebanyak tiga kali untuk membuat image1. gb2 dan gb3 16) Kemudian buatlah beberapa edit dengan menekan standard an klik edit yaitu edit1. 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. edit4. edit5 dan edit6 Edit1 untuk menunjukkan posisi x dari mouse pada gambar Edit2 untuk menunjukkan posisi y dari mouse pada gambar Edit3 untuk menunjukkan nilai keabuan gambar pada posisi mouse Praktikum Pengolahan Citra Digital 50 . lakukan langkah seperti langkah pada praktikum 2 untuk menampilkan gambar pada gb1. edit2.

klik gb1 dan pilih events on mousemove kemudian ketik coding yang terdapat pada gambar 13. Gambar 13. Edit5 untuk menunjukkan berapa nilai ambang yang akan dipakai sebagai acuan apakah pixel tetangga bisa dianggap sebagai anggota. Shift: TShiftState.2 Code untuk mendeteksi posisi mouse di gambar dan nilai keabuannya Praktikum Pengolahan Citra Digital 51 .S1 Informatika STMIK Bumigora Mataram Edit4 untuk menunjukkan nilai keabuan setelah di klik pada koordinat yang ditunjuk oleh mouse.Picture.Text := inttostr(y) .gb1MouseMove(Sender: TObject. Y: Integer). begin if gb_ok = 1 then begin edit1. edit2. var dbaris : pbytearray.Text := inttostr(x) . end. dbaris := gb1.ScanLine[y].2 procedure TForm1.Text := inttostr(dbaris[x]). 4. X. edit3. end.Bitmap.

end. begin gb_ok := 0. Gambar 13. nama : string .4 procedure TForm1.S1 Informatika STMIK Bumigora Mataram 5. i.Text . dbaris3 : pbytearray.Text := edit3.Caption := 'proses'. implementation {$R *. thr .k . l5.Text := '10'. h : integer. thr := strtoint( edit5.4 Code proses region growing Praktikum Pengolahan Citra Digital 52 .3 Code untuk inisialisasi 6. gb_ok : integer. edit4. dbaris2 . y . Klik gb1 dan pilih events onclik dan letakkan code pada gambar 13. Double Klik form1 dan ketik code berikut // buat deklarasi variabel global disini var Form1: TForm1. ada2 : integer.j.dfm} procedure TForm1.a2. dbaris1 .FormCreate(Sender: TObject).gb1Click(Sender: TObject). edit5.l .Text) . a1. begin h := 0 . pixel : integer. var x . // letakkan disini code inisialisasi gambar2 dan gambar3 // letakkan disini code untuk mencatat posisi awal region // dan dimapping digb3 // letakkan disini code proses region growing Gambar 13.

Height-1 do begin for j := 0 to gb2. a2 := strtoint(edit4.ScanLine[i].Text) .// mapping posisi awal di gambar 3 ada2 := 1.6 Code untuk menandai awal region growing X dan y merupakan posisi yang ditunjuk mouse.Repaint .Bitmap.Picture. Gambar 13. gb2. dbaris3[x] := 50. dbaris2[j] := 255. // pada gb3 // 0 = belum dilihat // 25 = dilihat bukan anggota // 50 = dilihat termasuk anggota dan tetangga belum dilihat Praktikum Pengolahan Citra Digital 53 .Text).Text) + thr.Width-1 do begin dbaris2 := gb2.Bitmap.5 Code inisialisasi gambar2 dan gambar3 x := strtoint(edit1. end. a1 := strtoint(edit4. Sedang kan 50 artinya pixel tersebut adalah anggota dan tetangganya masih belum diuji.ScanLine[i]. dbaris3[j] := 0.Picture. a1 dan a2 merupakan batas bawah dan batas atas untuk menguji apakah sebuah pixel merupakan anggota. ada2 adalah variabel yang menunjukkan bahwa masih ada area yang tetangganya belum diuji apa termasuk region atau bukan. Berikut ini adalah angka dan artinya yang diletakkan pada gambar 3 atau gambar mapping. // posisi awal x region y := strtoint(edit2. dbaris3 := gb3. // posisi awal y region dbaris3 := gb3.Picture.ScanLine[y]. end. Gambar 13.Text).Bitmap.S1 Informatika STMIK Bumigora Mataram for i := 0 to gb2.thr.

Picture.Width-2 do begin // ambl pixel pada posisi i.Bitmap.ScanLine[i]. end.Picture.Bitmap.S1 Informatika STMIK Bumigora Mataram // 200= dilihat termasuk anggota dan tetangga sudah dilihat // jika pada gb3 masih ada yang bernilai 50 lakukan proses region growing while ada2 = 1 do begin ada2 := 0 .Picture. if ((dbaris1[j] >= a1) and (dbaris1[j] <= a2) and (dbaris3[j]<> 200)) then begin dbaris3[j] := 50 .Text := inttostr(i).Height-2 do begin for j := 1 to gb3.Bitmap. dbaris1 := gb1. end.ScanLine[i].Text := inttostr(j). dbaris3 := gb3.Bitmap. dbaris1 := gb1. edit2. if ((dbaris1[j-1] >= a1) and (dbaris1[j-1] <= a2) and (dbaris3[j-1]<> 200)) then begin dbaris3[j-1] := 50 . if ( i = gb3.Picture. // nilai pixel pada posisi i. dbaris3 := gb3.ScanLine[i-1]. if ((dbaris1[j+1] >= a1) and (dbaris1[j+1] <= a2) and (dbaris3[j+1]<> 200)) then begin dbaris3[j+1] := 50 .Picture. // Letakkan disini code region growing 2 Gambar 13.ScanLine[i].Bitmap. // cari pada gb3 apa ada yang bernilai 50 for i := 1 to gb3.Height-1 ) then dbaris3[j] := 1.j dbaris3 := gb3.j // uji apa pixel bernilai 2 if pixel = 50 then begin ada2 := 1 .ScanLine[i-1]. edit1. if ((dbaris1[j+1] >= a1) and (dbaris1[j+1] <= a2) and (dbaris3[j +1]<> 200)) then begin dbaris3[j+1] := 50 . end.7 Code untuk proses region growing 1 Praktikum Pengolahan Citra Digital 54 . end. pixel := dbaris3[j]. if ( i = 0 ) then dbaris3[j] := 1.

end.Bitmap.Picture.Picture. dbaris3 := gb3. dbaris2 := gb2. Praktikum Pengolahan Citra Digital 55 .ScanLine[i]. dbaris2[j] := dbaris1[j].ScanLine[i].Text := inttostr (k).Repaint. if ((dbaris1[j+1] >= a1) and (dbaris1[j+1] <= a2) and (dbaris3[j+1]<> 200)) then begin dbaris3[j+1] := 50 .Picture. end. end. // end prosedure Gambar 13. dbaris3 := gb3.ScanLine[i+1].j //di gb2 dan set 200 pada gb3 dbaris1 := gb1.Bitmap. gb3. if ((dbaris1[j-1] >= a1) and (dbaris1[j-1] <= a2) and (dbaris3[j-1]<> 200)) then begin dbaris3[j-1] := 50 .8 Code untuk proses region growing 2 Penjelasan dari code 13. end. dbaris3[j] := 200. end.Picture.Repaint.ScanLine[i+1]. end.7 akan dilakukan saat praktikum. edit6.6 dan 13. dbaris1 := gb1.Bitmap.// end while gb2.Picture.ScanLine[i].j di gb1 ke posis i. // copy kan data posisi i.Bitmap.Bitmap. // end if pixel = 50 end.S1 Informatika STMIK Bumigora Mataram 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] >= a1) and (dbaris1[j] <= a2) and (dbaris3[j]<> 200)) then begin dbaris3[j] := 50 .

S1 Informatika STMIK Bumigora Mataram Gambar 13.8 Hasil eksekusi proses region growing Praktikum Pengolahan Citra Digital 56 .

Praktikum Pengolahan Citra Digital 57 . high pass filter dan lain-lain. Buatlah program motion detection untuk citra berwarna 4. Buatlah program image blending untuk citra berwarna 3. low pass filter. pencerminan. Buatlah program negasi untuk citra berwarna 2.S1 Informatika STMIK Bumigora Mataram PRAKTIKUM 14 Tugas atau quis 1. Buatlah program region growing untuk citra berwarna Untuk praktikum 15 dan seterusnya akan dilakukan berupa tugas membuat program pengolahan citra diantaranya template matching.