Implementasi High-Boost Filtering Untuk Memperbaiki Kualitas Citra Digital

(1)

Listing Program

Kode Program Menu Home:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace High_Boost_Filtering {

public partial class Form1 : Form {

public Form1() {

InitializeComponent(); }

private void pengujianToolStripMenuItem_Click(object sender, EventArgs e) {

this.Dispose();

Form2 frm2 = new Form2(); frm2.ShowDialog();

}

private void exitToolStripMenuItem_Click(object sender, EventArgs e) {

Application.Exit(); }

private void helpToolStripMenuItem_Click(object sender, EventArgs e) {

Form3 frm3 = new Form3(); this.Dispose();

frm3.ShowDialog(); }

private void hasilToolStripMenuItem_Click(object sender, EventArgs e) {

Form4 frm4 = new Form4(); this.Dispose();

frm4.ShowDialog(); }

} }


(2)

Kode Program Menu Pengujian: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Diagnostics; using System.IO; namespace High_Boost_Filtering {

public partial class Form2 : Form {

BitmapData bmpData = null; private bool bitdeviasi; private double Deviasi; IntPtr point = IntPtr.Zero; Bitmap imageAwal;

int[,] pixelImage; double A = 2.6; double w;

string JenisNoise = ""; byte[] Pixels; double[,] tapisHighBoost; public Form2() { InitializeComponent(); }

private void homeToolStripMenuItem_Click(object sender, EventArgs e) {

this.Dispose();

Form1 frm1 = new Form1(); frm1.ShowDialog();

}

private void exitToolStripMenuItem_Click(object sender, EventArgs e) {

if (MessageBox.Show("Keluar Aplilkasi?", "Keluar", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

Application.Exit(); }

private void Form2_Load(object sender, EventArgs e) {

w = (9 * A) - 1;

tapisHighBoost = new double[3, 3] { {-1,-1,-1}, {-1,w,-1},


(3)

{-1,-1,-1}}; for (int i = 0; i < 3; i++)

{

for (int j = 0; j < 3; j++) {

tapisHighBoost[i, j] = (1 / 9) * tapisHighBoost[i, j]; }

} }

private Bitmap getSaltAndPepper(Bitmap image) {

int x = image.Width; int y = image.Height; int pixelx, pixely, val; double prob;

prob = Convert.ToDouble(textBox1.Text); prob = Convert.ToInt32((prob/200) * x * y); Random rnd = new Random();

for (int i = 0; i < prob; i++) {

pixelx = rnd.Next(0, x - 1); pixely = rnd.Next(0, y - 1); val = rnd.Next(0, 10); if (val <= 5)

{

image.SetPixel(pixelx, pixely, Color.FromArgb(255, 0, 0, 0)); }

else {

image.SetPixel(pixelx, pixely, Color.FromArgb(255, 255, 255, 255)); }

JenisNoise = "Salt & Pepper Noise"; }

return image;

}

private double getGaussianNumber() {

Random rnd = new Random(); double v1, v2, persegi; if (bitdeviasi)

{

bitdeviasi = false; return Deviasi * 1; }

do {

v1 = 2 * rnd.NextDouble() - 1; v2 = 2 * rnd.NextDouble() - 1; persegi = v1 * v1 + v2 * v2;

}


(4)

var kutup = Math.Sqrt(-2 * Math.Log(persegi) / persegi);

Deviasi = v2 * kutup; bitdeviasi = true;

return v1 * kutup; }

private Bitmap getGaussianNoise(Bitmap image) {

int x = image.Width; int y = image.Height; double gaussnumber = 0.0; double prob;

prob = Convert.ToInt32(textBox1.Text); int step, newpixel, PixelSize = x * y; BitmapData bmpData = null;

byte[] Pixels;

Random rnd = new Random();

Rectangle box = new Rectangle(0, 0, x, y);

int Depth = System.Drawing.Bitmap.GetPixelFormatSize(image.PixelFormat); step = Depth / 8;

bmpData = image.LockBits(box, ImageLockMode.ReadWrite, image.PixelFormat); Pixels = new byte[PixelSize * step];

point = bmpData.Scan0;

Marshal.Copy(point, Pixels, 0, Pixels.Length); for (int i = 0; i < Pixels.Length; i += step) {

if (i < Pixels.Length - step) {

for (int j = 0; j < step; j++) {

gaussnumber = getGaussianNumber();

newpixel = Convert.ToInt32(gaussnumber * prob) + Convert.ToInt32(Pixels[i + j]);

if (newpixel < 0) newpixel = 0; if (newpixel > 255) newpixel = 255; Pixels[i + j] = Convert.ToByte(newpixel); }

}

JenisNoise = "Gaussian Noise"; }

Marshal.Copy(Pixels, 0, point, Pixels.Length); image.UnlockBits(bmpData);

return image;

}

bool isGrayscale(params int[] ints) {

for (int i = 0; i < ints.Length - 1; i++) {

if (ints[i] != ints[i + 1]) return false;


(5)

}

return true; }

private void btnImport_Click(object sender, EventArgs e) {

OpenFileDialog open = new OpenFileDialog();

open.Filter = "bmp Files|*.bmp|png Files|*.png|All Files(*.*)|*.*"; open.FileName = "*.bmp";

bool grayscale = true;

if (open.ShowDialog() == DialogResult.OK) {

imageAwal = new Bitmap(open.FileName); for (int i = 0; i < imageAwal.Height; i++) {

for (int j = 0; j < imageAwal.Width; j++) {

if (! isGrayscale(imageAwal.GetPixel(j, i).R, imageAwal.GetPixel(j, i).G, imageAwal.GetPixel(j, i).B))

{

MessageBox.Show("Image harus Grayscale", "High-Boost Filtering", MessageBoxButtons.OK, MessageBoxIcon.Warning);

grayscale = false; break; } } if (!grayscale) break; } if (grayscale)

imgAwal.Image = imageAwal; }

}

private void rbtSalt_CheckedChanged(object sender, EventArgs e) {

if (rbtSalt.Checked) {

if (textBox1.Text != "") {

imgNoise.Image = null;

imgNoise.Image = getSaltAndPepper(imageAwal);

MessageBox.Show("Salt & Pepper Noise telah ditambahkan ke Image", "High-Boost Filtering", MessageBoxButtons.OK, MessageBoxIcon.Information);

} else {

MessageBox.Show("Masukkan probabilitas Noise terlebih dahulu", "High-Boost Filtering", MessageBoxButtons.OK, MessageBoxIcon.Warning);

textBox1.Focus();

rbtSalt.Checked = false; }

} }

private void rbtGaussian_CheckedChanged(object sender, EventArgs e) {


(6)

if (rbtGaussian.Checked) {

if (textBox1.Text != "") {

imgNoise.Image = null;

imgNoise.Image = getGaussianNoise(imageAwal);

MessageBox.Show("Gaussian Noise telah ditambahkan ke Image", "High-Boost Filtering", MessageBoxButtons.OK, MessageBoxIcon.Information);

} else {

MessageBox.Show("Masukkan probabilitas Noise terlebih dahulu", "High-Boost Filtering", MessageBoxButtons.OK, MessageBoxIcon.Warning);

textBox1.Focus();

rbtGaussian.Checked = false; }

} }

private void btnReset_Click(object sender, EventArgs e) {

imgAwal.Image = null; imgHasil.Image = null; imgNoise.Image = null; textBox1.Text = "";

rbtGaussian.Checked = false; rbtSalt.Checked = false; txtMSE.Text = "";

txtPSNR.Text = ""; }

private void btnSimpan_Click(object sender, EventArgs e) {

if (imgHasil.Image != null) {

SaveFileDialog simpan = new SaveFileDialog();

simpan.Filter = "Image Files|*.bmp|Image Files|*.png"; simpan.FileName = "*.bmp";

if (simpan.ShowDialog() == DialogResult.OK) {

imgHasil.Image.Save(simpan.FileName, System.Drawing.Imaging.ImageFormat.Bmp);

string filename = simpan.FileName.Substring(0, simpan.FileName.Length - 4) + ".txt";

FileStream fstream = new FileStream(filename, FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter(fstream);

SeekOrigin seekorigin = new SeekOrigin(); sw.BaseStream.Seek(0, seekorigin);

sw.WriteLine(txtMSE.Text + "/" + txtPSNR.Text); sw.Flush();

sw.Close();

MessageBox.Show("Image Hasil Telah Disimpan", "Simpan", MessageBoxButtons.OK, MessageBoxIcon.Information);

} } else {


(7)

MessageBox.Show("Image Noise Tidak Ada"); }

}

private void btnFilter_Click(object sender, EventArgs e) {

Bitmap image = new Bitmap(imgNoise.Image);

Bitmap output = new Bitmap(image.Width, image.Height); int pixel;

pixelImage = new int[image.Height, image.Width]; for (int i = 0; i < image.Height; i++)

{

for (int j = 0; j < image.Width; j++) {

pixelImage[i, j] = image.GetPixel(j, i).R; }

}

for (int i = 0; i < image.Height - 2; i++) {

for (int j = 0; j < image.Width - 2; j++) {

pixel = Convert.ToInt32(HighBoost(i, j)); if (pixel < 0)

pixel *= -1; if (pixel > 255) pixel = 255;

output.SetPixel(j + 1, i + 1, Color.FromArgb(255, pixel, pixel, pixel));

} }

imgHasil.Image = output; }

private double HighBoost(int x, int y) {

double Hasil = 0; int row = x; int col = y;

for (int i = 0; i < 3; i++) {

col = y;

for (int j = 0; j < 3; j++) {

Hasil += pixelImage[row, col] * tapisHighBoost[i, j]; col++;

} row++; }

double HighBoost = ((A - 1) * pixelImage[x, y]) + Hasil; return HighBoost;

}

private double hitungMSE(Bitmap imageAsli, Bitmap imageHasil) {


(8)

double pxAsli, pxHasil, MSE;

for (int i = 0; i < imageAsli.Height; i++) {

for (int j = 0; j < imageAsli.Width; j++) {

pxAsli = imageAsli.GetPixel(j, i).R; pxHasil = imageHasil.GetPixel(j, i).R; sum += Math.Pow(pxAsli - pxHasil, 2); }

}

MSE = sum / (imageAsli.Height * imageAsli.Width); return MSE;

}

private double hitungPSNR(double MSE) {

double PSNR = Math.Log10(Math.Pow(255, 2) / MSE); return PSNR;

}

private void btnHitung_Click(object sender, EventArgs e) {

double MSE = hitungMSE((Bitmap)imgAwal.Image, (Bitmap)imgHasil.Image); double PSNR = hitungPSNR(MSE);

txtMSE.Text = Math.Round(Convert.ToDecimal(MSE.ToString()), 4).ToString(); txtPSNR.Text = Math.Round(Convert.ToDecimal(PSNR.ToString()), 4).ToString(); }

private void helpToolStripMenuItem_Click(object sender, EventArgs e) {

Form3 frm3 = new Form3(); this.Dispose();

frm3.ShowDialog(); }

private void hasilToolStripMenuItem_Click(object sender, EventArgs e) {

Form4 frm4 = new Form4(); this.Dispose();

frm4.ShowDialog(); }

private void textBox1_TextChanged(object sender, EventArgs e) {

}

private void button1_Click(object sender, EventArgs e) {

if (imgNoise.Image != null) {

SaveFileDialog simpan = new SaveFileDialog();

simpan.Filter = "Image Files|*.bmp|Image Files|*.png"; simpan.FileName = "*.bmp";

if (simpan.ShowDialog() == DialogResult.OK) {


(9)

imgNoise.Image.Save(simpan.FileName, System.Drawing.Imaging.ImageFormat.Bmp);

string filename = simpan.FileName.Substring(0, simpan.FileName.Length - 4) + ".txt";

FileStream fstream = new FileStream(filename, FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter(fstream);

SeekOrigin seekorigin = new SeekOrigin(); sw.BaseStream.Seek(0, seekorigin);

sw.WriteLine(textBox1.Text + "/" + JenisNoise); sw.Flush();

sw.Close();

MessageBox.Show("Image Noise Telah Disimpan", "Simpan", MessageBoxButtons.OK, MessageBoxIcon.Information);

} } else {

MessageBox.Show("Image Noise Tidak Ada"); }

}

private void imgNoise_Click(object sender, EventArgs e) {

} } }

Kode Program Menu Hasil:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.IO; using System.Windows.Forms; namespace High_Boost_Filtering {

public partial class Form4 : Form {

public Form4() {

InitializeComponent(); }

private void homeToolStripMenuItem_Click(object sender, EventArgs e) {

this.Dispose();

Form1 frm1 = new Form1(); frm1.ShowDialog();


(10)

private void pengujianToolStripMenuItem_Click(object sender, EventArgs e) {

this.Dispose();

Form2 frm2 = new Form2(); frm2.ShowDialog();

}

private void helpToolStripMenuItem_Click(object sender, EventArgs e) {

Form3 frm3 = new Form3(); this.Dispose();

frm3.ShowDialog(); }

private void exitToolStripMenuItem_Click(object sender, EventArgs e) {

if (MessageBox.Show("Keluar Aplilkasi?", "Keluar", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

Application.Exit(); }

private void button1_Click(object sender, EventArgs e) {

try {

OpenFileDialog open = new OpenFileDialog();

open.Filter = "Image Files(*.bmp)|*.bmp|Image Files(*.jpg)|*.jpg|All Files(*.*)|*.*";

if (open.ShowDialog() == DialogResult.OK) {

Bitmap bit = new Bitmap(open.FileName); imgAwal.Image = bit;

long fileSize = new System.IO.FileInfo(open.FileName).Length; if (fileSize / 1000 < 1)

{

size.Text = fileSize.ToString(); labelsize.Text = "Byte";

} else {

size.Text = (fileSize / 1000).ToString(); labelsize.Text = "Kb";

}

string pixel = "";

for (int i = 0; i < 5; i++) {

for (int j = 0; j < 5; j++) {

pixel += bit.GetPixel(j, i).R + " "; }

pixel += "\r\n"; }

txtAwal.Text = pixel;

// location.Text = Path.GetFullPath(open.FileName); filename.Text = Path.GetFileName(open.FileName); // height.Text = bit.Height.ToString();


(11)

} }

catch (Exception) {

throw new ApplicationException("Failed loading image"); }

}

private void groupBox1_Enter(object sender, EventArgs e) {

}

private void button3_Click(object sender, EventArgs e) {

try {

OpenFileDialog open = new OpenFileDialog();

open.Filter = "Image Files(*.bmp)|*.bmp|Image Files(*.jpg)|*.jpg|All Files(*.*)|*.*";

if (open.ShowDialog() == DialogResult.OK) {

Bitmap bit = new Bitmap(open.FileName); imgNoise.Image = bit;

string nama = open.FileName.Substring(0, open.FileName.Length - 4) + ".txt";

FileStream fstream = new FileStream(nama, FileMode.Open, FileAccess.ReadWrite);

StreamReader sreader = new StreamReader(fstream); sreader.BaseStream.Seek(0, SeekOrigin.Begin); string Keterangan = sreader.ReadToEnd(); sreader.Close();

string[] info = new string[2]; info = Keterangan.Split('/'); textBox1.Text = info[0]; textBox2.Text = info[1]; string pixel = "";

for (int i = 0; i < 5; i++) {

for (int j = 0; j < 5; j++) {

pixel += bit.GetPixel(j, i).R + " "; }

pixel += "\r\n"; }

txtNoise.Text = pixel; }

}

catch (Exception) {

throw new ApplicationException("Failed loading image"); }

}

private void button2_Click(object sender, EventArgs e) {


(12)

{

OpenFileDialog open = new OpenFileDialog();

open.Filter = "Image Files(*.bmp)|*.bmp|Image Files(*.jpg)|*.jpg|All Files(*.*)|*.*";

if (open.ShowDialog() == DialogResult.OK) {

Bitmap bit = new Bitmap(open.FileName); imgHasil.Image = bit;

string nama = open.FileName.Substring(0, open.FileName.Length - 4) + ".txt";

FileStream fstream = new FileStream(nama, FileMode.Open, FileAccess.ReadWrite);

StreamReader sreader = new StreamReader(fstream); sreader.BaseStream.Seek(0, SeekOrigin.Begin); string Keterangan = sreader.ReadToEnd(); sreader.Close();

string[] info = new string[2]; info = Keterangan.Split('/'); textBox3.Text = info[0]; textBox4.Text = info[1]; string pixel = "";

for (int i = 0; i < 5; i++) {

for (int j = 0; j < 5; j++) {

pixel += bit.GetPixel(j, i).R + " "; }

pixel += "\r\n"; }

txtHasil.Text = pixel; }

}

catch (Exception) {

throw new ApplicationException("Failed loading image"); }

}

private void reset_Click(object sender, EventArgs e) {

imgAwal.Image = null; imgHasil.Image = null; imgNoise.Image = null; textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; filename.Text = ""; size.Text = ""; txtAwal.Text = ""; txtHasil.Text = ""; txtNoise.Text = "";

}

private void helpToolStripMenuItem1_Click(object sender, EventArgs e) {


(13)

this.Dispose();

Form3 frm3 = new Form3(); frm3.ShowDialog();

}

} }

Kode Program Menu Help:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace High_Boost_Filtering {

public partial class Form3 : Form {

public Form3() {

InitializeComponent(); }

private void homeToolStripMenuItem_Click(object sender, EventArgs e) {

this.Dispose();

Form1 frm1 = new Form1(); frm1.ShowDialog();

}

private void pengujianToolStripMenuItem_Click(object sender, EventArgs e) {

this.Dispose();

Form2 frm2 = new Form2(); frm2.ShowDialog();

}

private void exitToolStripMenuItem_Click(object sender, EventArgs e) {

if (MessageBox.Show("Keluar Aplilkasi?", "Keluar", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

Application.Exit(); }

private void hasilToolStripMenuItem_Click(object sender, EventArgs e) {

Form4 frm4 = new Form4(); this.Dispose();

frm4.ShowDialog(); }


(14)

DAFTAR RIWAYAT HIDUP

DATA PRIBADI

Nama Lengkap : Azhar Indra Rifangi Jenis Kelamin : Laki-laki

Tempat, Tanggal Lahir : Medan,21 Januari 1992

Alamat : Jl.Jangka no.28

Agama : Islam

E-mail : azharrifangi@gmail.com

Pendidikan Terakhir : Universitas Sumatera Utara Medan, Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan S1 Ilmu Komputer

PENDIDIKAN FORMAL

2009 – 2014 : S1 Ilmu Komputer Universitas Sumatera Utara, Medan 2006 – 2009 : SMA Negeri 2 Medan

2003 – 2006 : SMP Harapan 1 Medan 1997 – 2003 : SD Harapan 1 Medan

PENGALAMAN ORGANISASI DAN KEGIATAN ILMIAH

 Anggota Departemen Hubungan Masyarakat Ikatan Mahasiswa S1 Ilmu Komputer (IMILKOM), 2010-2012

 Ketua Pemerintahan Mahasiswa/ Badan Eksekutif Mahasiswa Fakultas Ilmu Komputer dan Teknologi Informasi ,2012-2014


(15)

DAFTAR PUSTAKA

Acharya, T. & Ajoy, K. R. 2005. Image Processing Principles and

Applications. New Jersey: John Wiley & Sons, Inc.

Hermawati, F.A. 2013. Pengolahan Citra Digital Konsep dan Teori. Yogyakarta: ANDI.

Pannirselvam, S. & Raajan, P.2012. An Efficient Finger Print Enchancement Filtering Technique with High Boost Gaussian Filter. International Journal of Advanced Research in Computer

Science and Software Engineering.2(11):370-378.

Prasetyo, E. 2011. Pengolahan Citra Digital dan Aplikasinya

Menggunakan Matlab. Yogyakarta : ANDI.

Prihatini, T.A. 2011. Analisis Dan Implementasi Low Pass Filter Untuk

Mereduksi Noise Pada Citra Digital. Skripsi. Medan. Universitas

Sumatera Utara.

Putra, D. 2010. Pengolahan Citra Digital. Yogyakarta:ANDI.

Roopashree, S., Sachin, S. & Rohan, R. S.2012. Enchancement and Pre-Processing of Images Using Filtering.International Journal of

Engineering and Advanced Technology (IJEAT).1(5):111-113.

Sihotang, Juni Santo. 2013. Implementasi Order-Statistic Filter Untuk

Mereduksi Noise Pada Citra Digitral.Skripsi.Medan.Universitas

Sumatera Utara.

Siregar, M.A. 2009. Perancangan Perangkat Lunak untuk Perbaikan

Citra Digital dengan Menggunakan Lima (5) Teknik Penyaringan (Filtering). Skripsi. Medan. Universitas Sumatera

Utara.


(16)

Tampubolon, Efrienni. 2013. Implementasi Low Pass Filtering dengan

High Pass Filtering Untuk Perbaikan Kualitas Citra Digital.

Skripsi .Medan. Universitas Sumatera Utara

Wiliyana. 2013. Perbandingan Algoritma Arithmetic Dengan Geometric

Mean Filter Untuk Reduksi Noise Pada Citra.Skripsi. Medan.


(17)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Analisis sistem merupakan suatu tahapan awal yang harus dilakukan untuk membantu dalam memahami suatu masalah yang menjadi kebutuhan dalam sebuah sistem. Tahapan ini dilakukan agar sistem yang dibuat dapat diketahui permasalahannya sehingga dapat membantu dalam proses pembuatan perancangan model suatu sistem yang akan dibangun sehingga sistem tersebut berguna.

3.1.1 Analisis Masalah

Masalah yang akan diselesaikan pada penelitian ini adalah menghilangkan noise yang ada pada sebuah citra. Noise yang akan dihilangkan adalah Gaussian Noise dan Salt & Pepper Noise. Noise-noise tersebut akan dihilangkan melalui sebuah proses filtering yang dilakukan pada sebuah citra berformat .bmp atau .png dengan intensitas noise sebesar 10 % ,20 %,30% dan 40% . Metode filtering yang akan digunakan pada penelitian ini ialah High-Boost Filtering.


(18)

User

Sistem Material

Metode

Memperbaiki Kualitas Citra

Digital Filtering

Tambah noise High-Boost Filtering Penajaman Citra

Citra dengan format .bmp dan .png Gaussian noise dan Salt &

Pepper noise

Gambar 3.1 Diagram Ishikawa

3.1.2 Analisis Persyaratan

Analisis persyaratan dibutuhkan untuk mengidentifikasi dan menyatakan persyaratan-persyaratan yang dibutuhkan dalam membangun suatu sistem. Analisis persyaratan terbagi dua bagian yaitu persyaratan fungsional (functional

requirement) dan persyaratan non-fungsional (nonfunctional requierementi).

3.1.2.1 Persyaratan Fungsional

Persyaratan fungsional adalah deskripsi mengenai aktivitas dan layanan yang harus disediakan oleh sebuah sistem. Pada sistem High-Boost Filtering yang akan dibangun ini persyaratan fungsional yang harus dipenuhi antara lain:

1. Citra digital yang akan diperbaiki kualitas citra adalah citra grayscale dengan format BMP dan PNG .

2. Ukuran citra yang akan diperbaiki adalah 500 x 500 pixel .

3. Noise yang akan digunakan adalah Gaussian Noise dan Salt & Pepper Noise.

4. Persentase probabilitas noise yang akan digunakan adalah 10 % ,20 %,30% dan 40%.

5. Metode yang akan digunakan untuk memperbaiki kualitas citra digital adalah


(19)

6. Parameter yang digunakan untuk membandingkan kualitas citra sebelum dan sesudah diperbaiki adalah Mean Square Error (MSE) dan Peak Signal to

Noise Ratio (PSNR) .

3.1.2.2 Persyaratan Nonfungsional

Persyaratan Nonfungsional yang harus dipenuhi adalah : 1. Performa

Sistem atau perangkat lunak yang akan dibangun harus dapat menunjukkan hasil dari perbaikan kualitas citra digital yang telah di proses.

2. Mudah digunakan (user friendly)

Sistem yang akan dibangun haruslah dapat dengan mudah dioperasikan, baik dari segi tampilan( interface) maupun kecepatan proses.

3. Hemat Biaya

Sistem yang dibangun tidak memerlukan perangkat tambahan sehingga tidak mengeluarkan biaya tambahan.

4. Dokumentasi

Sistem yang akan dibangun harus dapat menyimpan citra digital yang sebelum maupun setelah dilakukan proses.

5. Manajemen kualitas

Sistem yang dibangun harus memiliki kualitas yang baik yaitu dapat melakukan proses perbaikan kualitas citra dan dapat menghitung nilai MSE dan PSNR secara tepat dan akurat.

6. Kontrol

Sistem yang akan dibangun harus dapat memunculkan pesan error ketika gambar yang akan dimasukkan tidak tampil.

3.1.3 Analisis Proses

Dalam sistem ini akan dilakukan proses filtering dengan metode High-Boost


(20)

mempertahankan (mempertajam) komponen frekuensi dan menghilangkan (mengurangi) komponen frekuensi rendah. Citra Grayscale yang akan diproses, terlebih dahulu akan ditambah dengan Gaussian Noise atau Salt & Pepper Noise dengan pilihan nilai probabilitas 10 %, 15% dan 20 %.Setelah itu maka dilakukanlah proses filtering.

3.1.3.1 Use Case Diagram

Use case berfungsi untuk menggambarkan interaksi tipikal antara pengguna

sistem dengan sistem itu sendiri, dengan anggota sebuah narasi tentang bagaimana sistem tersebut digunakan. Berikut ini merupakan use case diagram dari sistem yang telah dibangun( Juni)

Pengujian Import Citra Awal USER

SYSTEM

Hasil

Gambar 3.2 Use case diagram

Diagram pada gambar 3.2 menjelaskan aksi yang dapat dilakukan oleh

user, user melakukan import citra awal, kemudian citra awal yang telah diimport


(21)

sudah bernoise akan dilakukan filtering dengan menggunakan metode

High-Boost Filtering setelah dilakukan filtering maka akan muncul citra hasil.

Berikut ini merupakan spesifikasi use case untuk import citra awal Tabel 3.1 Spesifikasi Use Case Import Citra Awal

Name Import Citra Awal

Actors User

Trigger User menginputkan citra grayscale aawal. Preconditions User mengakses menu import citra awal

Post Conditions User dapat melihat citra grayscale yang telah diimportkan Success Scenario 1. User mengakses tombol import.

2. Sistem akan menampilkan pop-up window open untuk menampilkan lokasi penyimpanan gambar.

3. User akan memilih citra grayscale yang akan diimportkan berformat .bmp atau .png.

4. System akan menampilkan citra grayscale yang telah dipilih oleh user.

5. User melihat gambar yang telah diimport. Alternative Flows -

Berikut ini merupakan spesifikasi use case untuk pengujian Tabel 3.2 Spesifikasi Use Case Pengujian

Name Pengujian

Actors User

Trigger User menginputkan probabilitas noise, memilih noise yang akan digunakan, dan melakukan proses filtering.

Preconditions User mengakses menu pengujian

Post Conditions User mendapatkan hasil dari pengujian yang dilakukan berupa citra grayscale yang telah difiltering.


(22)

Success Scenario 1. User menginputkan presentase noise.

2. User memilih jenis noise, Gaussian noise atau Salt and Pepper noise.

3. System akan menampilkan citra grayscale yang bernoise dengan probabilitas yang telah ditentukan.

4. User akan mengeksekusi tombol High-Boost Filtering untuk proses filtering pada citra grayscale bernoise.

5. System akan menampilkan citra grayscale telah melalui proses filtering.

6. User melihat gambar yang telah di proses Alternative Flows -

Berikut ini merupakan spesifikasi use case untuk hasil Tabel 3.3 Spesifikasi Use Case Hasil

Name Hasil

Actors User

Trigger User menginputkan citra grayscale awal, citra grayscale bernoise dan citra grayscale yang telah dilakukan proses filtering.

Preconditions User mengakses menu hasil.

Post Conditions User membandingkan tampilan citra grayscale awal, citra grayscale bernoise dan citra grayscale yang telah dilakukan proses filtering. Success Scenario 1. User membuka citra grayscale awal.

2. System menampilkan citra grayscale awal. 3. User membuka citra grayscale bernoise.

4. System menampilkan citra grayscale bernoise dengan probabilitas dan jenis noise.

5. User membuka citra grayscale hasil filtering.

6. System menampilkan citra grayscale hasil filtering dengan nilai MSE dan PSNR .

7. User melihat hasil dari citra grayscale yang telah di proses. Alternative Flows -


(23)

3.1.3.2 Sequence Diagram

Squence diagram adalah diagram yang menampilkan sejumlah objek contoh dan

pesan-pesan yang melalui objek-objek tersebut didalam use case. Berikut ini merupakan sequence diagram dari sistem yang telah dibangun.

Input

Input Citra Grayscale

Tambah Noise

Tambahkan Noise Tampilkan Citra Grayscale Bernoise

HighBoost Filtering

Perbaikan Kualitas Citra Digital

Tampilan Hasil Perbaikan Kualitas Citra Digital

Hitung MSE & PSNR

Htiung Nilai MSE &PSNR

Tampilan Nilai MSE &PSNR Top Package: User

Hasil Pengujian

Tampilkan Hasil Pengujian

Tampilan Hasil Pengujian

Gambar 3.3 Sequence Diagram

3.1.3.3 Activity Diagram

Activity Diagram adalah sebuah diagram yang bertujuan untuk mendeskripsikan

aturan-aturan dasar yang harus diikuti untuk menjalankan sistem. Activity

Diagram memiliki fungsi yang mirip dengan sebuah diagram alir. Berikut ini


(24)

USER SYSTEM Buka Citra Grayscale Menampilkan Citra Grayscale Pilih Probabilitas Noise Menampilkan Nilai Probabilitas Noise

Pilin Noise

Menampilkan Citra Grayscale Bernoise

Filtering dengan High-Boost Filtering Menampilkan Citra Hasil Filtering Hitung Nilai MSE& PSNR Menampilkan Nilai MSE & PSNR Simpan Citra Hasil Filtering Menyimpan Citra Hasil Filtering Pilih Menu Gaussian Noise

Salt and Pepper Noise

Pengujian !=Pengujian Hasil Pengujian Buka Citra Grayscale Menampilkan Citra Grayscale

Buka Citra Hasil Buka Citra Bernoise

Menampilkan Citra Bernoise

Menampilkan Citra Hasil

!=Hasil Pengujian


(25)

3.1.3.4 Analisis Proses Filtering dengan High-Boost Filtering

Berikut merupakan contoh penggunaan metode High-Boost Filtering dengan menggunakan suatu matriks citra input 5x5:

[ ]

Selanjutnya Matriks tersebut dikalikan dengan kernel:

[−− − −−

− − − ]

Nilai w pada matrik tersebut dihasilkan dengan melakukan perkalian 9A-1, dimana nilai A adalah 2.6 sehingg nilai w menjadi 2,5.

Untuk menghitung matriks tersebut kita menggunakan proses konvolusi,dimana nilai dari setiap piksel citra input dikalikan dengan dengan kernel. Nilai piksel baru dihitung dengan mengalikan setiap nilai piksel tetangga dengan bobot yang berhubungan pada kernel dan kemudian menjumlah hasil perkalian tersebut. Contoh perkalian konvolusi dapat dilihat sebagai berikut:

[ ]

f(1,1) = [

9).236]+ [ − 9).238]+ [ − 9).201]+ [ − 9).234]+[2,5.238]+ [ −

9).198]+ [ − 9).255]+ [ − 9).255]+ [ − 9).238] = 51

f(1,2) = [

9).238]+ [ − 9).201]+ [ − 9).120]+ [ − 9).238]+[2,5.198]+ [ −

9).109]+ [ − 9).255]+ [ − 9).238]+ [ − 9).144] = 86

f(1,3) = [

9).201]+ [ − 9).120]+ [ − 9).108]+ [ − 9).198]+[2,5.109]+ [ −


(26)

f(2,1) = [

9).234]+ [ − 9).238]+ [ − 9).198]+ [ − 9).255]+[2,5.255]+ [ −

9).238]+ [ − 9).255]+ [ − 9).255]+ [ − 9).239] = 45

f(2,2) = [

9).238]+ [ − 9).198]+ [ − 9).109]+ [ − 9).255]+[2,5.238]+ [ −

9).144]+ [ − 9).255]+ [ − 9).239]+ [ − 9).147] = 81

f(2,3) = [

9).198]+ [ − 9).109]+ [ − 9).88]+ [ − 9).238]+[2,5.144]+ [ −

9).122]+ [ − 9).239]+ [ − 9).147]+ [ − 9).124] = 116

f(3,1) = [

9).255]+ [ − 9).255]+ [ − 9).238]+ [ − 9).255]+[2,5.255]+ [ −

9).239]+ [ − 9).253]+ [ − 9).237]+ [ − 9).219] = 40

f(3,2) = [

9).255]+ [ − 9).238]+ [ − 9).144]+ [ − 9).255]+[2,5.239]+ [ −

9).147]+ [ − 9).237]+ [ − 9).219]+ [ − 9).116] = 78

f(3,3) = [

9).238]+ [ − 9).144]+ [ − 9).122]+ [ − 9).239]+[2,5.147]+ [ −

9).124]+ [ − 9).219]+ [ − 9).116]+ [ − 9).114] = 94 Setelah dilakukan operasi pengalian konvolusi maka didapat hasil:

[ ]

[ ]

Karena proses konvolusi diluar batas ukuran citra maka dilakukan penambahan nilai piksel untuk piksel yang berada diluar batas citra yang umumnya digunakan atau ditambahkan nilai 0 (zero padding). Setelah dilakukan proses konvolusi maka selanjutnya hasil dari perkalian konvolusi akan dilakukan proses berikutnya dengan menggunakan metode High-Boost Filtering. Contoh penggunaan rumus metode High-Boost Filtering dapat dilihat sebagai berikut:

(A-1).

[ ]

+


(27)

Nilai A pada rumus tersebut adalah 2.6, maka nilai A – 1 adalah 1,6. Maka hasil perkalian A dengan citra inputan awal adalah

[ ]

Setelah inputan awal dikali dengan A maka citra tersebut ditambahkan dengan hasil dari proses konvolusi

[ ]

+

[ ]

=

[ ]

Setelah perhitungan maka nilai piksel citra yang telah melalui proses perhitungan dengan matriks 5x5 maka didapat hasil citra output sebagai berikut.


(28)

3.2 Pseudocode Program

3.2.1 Pseudocode proses Tambah Gaussian Noise for (int i = 0; i < Pixels.Length; i += step) if (i < Pixels.Length - step)

for (int j = 0; j < step; j++) gaussnumber = getGaussianNumber();

newpixel = Convert.ToInt32(gaussnumber * prob) + Convert.ToInt32(Pixels[i + j]);

if (newpixel < 0) newpixel = 0; if (newpixel > 255) newpixel = 255; Pixels[i + j] = Convert.ToByte(newpixel);

3.2.2 Pseudocode proses Tambah Salt and Pepper Noise for (int i = 0; i < prob; i++)

pixelx = rnd.Next(0, x - 1); pixely = rnd.Next(0, y - 1); val = rnd.Next(0, 10); if (val < 5)

image.SetPixel(pixelx, pixely, Color.FromArgb(255, 255, 255, 255)); else

image.SetPixel(pixelx, pixely, Color.FromArgb(255, 0, 0, 0));

3.2.3 Pseudocode proses High-Boost Filtering int row = x;

int col = y;

for (int i = 0; i < 3; i++) col = y;

for (int j = 0; j < 3; j++)

Hasil += pixelImage[row, col] * tapisHighBoost[i, j]; col++;

row++;

double HighBoost = ((A - 1) * pixelImage[x, y]) + Hasil; return HighBoost;


(29)

3.3 Perancangan Sistem

3.3.1 Perancangan Flowchart Sistem

Mulai Input Citra Grayscale Input Nilai Probabilitas Noise Gaussian Noise Citra Bernoise High-Boost FIltering Hitung Nilai MSE & PSNR

Nilai MSE & PSNR Simpan Selesai Tidak Ya

Salt & Pepper Noise Pengujian Halaman Pengujian Help Halaman Help Exit Tidak Ya Ya Tidak Tidak Ya Hasil Halaman Hasil Ya Tidak


(30)

3.3.2 Perancangan Antarmuka Sistem ( Interface)

Sistem ini dirancang dalam 3 form, yaitu form utama, form pengujian dan form

help.

a. Halaman Menu Utama

Form Utama adalah form yang akan muncul pertama kalinya ketika program

dieksekusi. Pada form ini terdapat beberapa pilihan menu bar untuk menjalankan aplikasi yaitu Menu Home, Menu pengujian, Menu About dan Exit . Menu Home merupakan tampilan awal aplikasi yang berisi kan judul, logo fakultas, nama, nim dan jurusan. Rancangan menu home dapat dilihat pada Gambar 3.6.

HOME Pengujian Help Exit

Judul Skripsi

Logo Fakultas

Nama dan Nim Program Studi

1 2 3 4

6

7

8 9

Hasil

5

Gambar 3.6 Rancangan Antarmuka halaman home

Keterangan:

1. Merupakan Tool Strip Menu Item untuk membuka menu Home. 2. Merupakan Tool Strip Menu Item untuk membuka menu Pengujian. 3. Merupakan Tool Strip Menu Item untuk membuka menu Hasil


(31)

4. Merupakan Tool Strip Menu Item untuk membuka menu Help

5. Merupakan Tool Strip Menu Item untuk keluar dari program atau Exit. 6. Merupakan Label untuk keterangan judul skripsi.

7. Merupakan Label untuk keterangan logo fakultas. 8. Merupakan Label untuk keterangan nama dan nim. 9. Merupakan Label untuk keterangan program studi.

b. Halaman Menu Pengujian

Halaman menu Pengujian merupakan halaman yang berfungsi untuk melakukan proses filtering menggunakan metode High-Boost Filtering. Berikut tampilan rancangan halaman Pengujian pada Gambar 3.7.

Citra Grayscale Awal

Import

Probabilitas Noise Gaussian Noise Salt & Pepper Noise

Citra Bernoise

High-Boost Filtering

Citra Hasil Filtering Hitung

Simpan MSE PSNR 1 2 3 4 5 6 7 8 9 10 12 11 13 14 15 16 17 18 19 20 21 Simpan Reset

Gambar 3.7 Rancangan Antarmuka halaman Pengujian

Keterangan:

1. Merupakan Label untuk keterangan Citra Grayscale awal.

2. Merupakan Picture Box untuk menampilkan Citra Grayscale awal. 3. Merupakan Button untuk membuka gambar Citra Grayscale awal.


(32)

4. Merupakan Label untuk keterangan Probabilitas Noise. 5. Merupakan Textbox untuk menampilkan Probabilitas Noise. 6. Merupakan Radio Button untuk memilih Gaussian Noise. 7. Merupakan Radio Button untuk memilih Salt & Pepper Noise. 8. Merupakan Label untuk keterangan Citra Bernoise.

9. Merupakan Picture Box untuk menampilkan Citra Bernoise. 10.Merupakan Button untuk melakukan proses Simpan Citra Bernoise 11.Merupakan Button untuk melakukan proses High-Boost Filtering. 12.Merupakan Label untuk keterangan Citra Hasil Filtering.

13.Merupakan Picture Box untuk menampilkan Citra Hasil Filtering. 14.Merupakan Button untuk melakukan proses Hitung.

15.Merupakan Group Box untuk MSE dan PSNR. 16.Merupakan Label untuk keterangan MSE. 17.Merupakan Label untuk keterangan PSNR.

18.Merupakan Text Box untuk keterangan hasil perhitungan MSE. 19.Merupakan Text Box untuk keterangan hasil perhitungan PSNR. 20.Merupakan Button untuk melakukan proses Simpan Citra Hasil 21.Merupakan Button untuk melakukan proses Reset.

c. Halaman menu Hasil

Halaman menu hasil merupakan halaman yang berfungsi untuk menampilkan hasil dari proses pengujian yang telah dilakukan di halaman pengujian. Berikut tampilan rancangan halaman hasil pada Gambar 3.8


(33)

HASIL PERCOBAAN

Citra Grayscale Awal Citra Grayscale Bernoise Citra Grayscale Hasil Filtering

Buka Gambar Buka Gambar Buka Gambar

Size Informasi Citra File Name Informasi Noise Probabilitas Noise Informasi Citra Jenis Noise kb PSNR MSE 1 2 3 4 5 6 7

8 9 10

11 12 13

14 15 16 17 18 19 20 21 22 23 24 25 26 28 27 Reset 29

Gambar 3.8 Rancangan Antarmuka menu Hasil

Keterangan:

1. Merupakan Label untuk keterangan Hasil Percobaan. 2. Merupakan Label untuk keterangan Citra Grayscale Awal.

3. Merupakan Picture Box untuk menampilkan Citra Grayscale Awal. 4. Merupakan Label untuk keterangan Citra Grayscale Bernoise .

5. Merupakan Picture Box untuk menampilkan Citra Grayscale Bernoise . 6. Merupakan Label untuk keterangan Citra Grayscale Hasil Filtering.

7. Merupakan Picture Box untuk menampilkan Citra Grayscale Hasil Filtering. 8. Merupakan Button untuk melakukan proses Buka Gambar.

9. Merupakan Button untuk melakukan proses Buka Gambar. 10.Merupakan Button untuk melakukan proses Buka Gambar.


(34)

11.Merupakan Text Box untuk keterangan nilai piksel Citra Awal.. 12.Merupakan Text Box untuk keterangan nilai piksel Citra Bernoise. 13.Merupakan Text Box untuk keterangan nilai piksel Citra Hasil. 14.Merupakan Group box untuk mendeskripsikan Informasi Citra. 15.Merupakan Label untuk keterangan File Name.

16.Merupakan Text Box untuk keterangan File Name. 17.Merupakan Label untuk keterangan Size.

18.Merupakan Text Box untuk keterangan Size.

19.Merupakan Group box untuk mendeskripsikan Informasi Noise. 20.Merupakan Label untuk keterangan Probabilitas Noise.

21.Merupakan Text Box untuk keterangan Probabilitas Noise. 22.Merupakan Label untuk keterangan Jenis Noise.

23.Merupakan Text Box untuk keterangan Jenis Noise.

24.Merupakan Group box untuk mendeskripsikan Informasi Hasil Filtering. 25.Merupakan Label untuk keterangan MSE.

26.Merupakan Text Box untuk keterangan MSE. 27.Merupakan Label untuk keterangan PSNR. 28.Merupakan Text Box untuk keterangan PSNR. 29.Merupakan Button untuk melakukan proses Reset

d. Halaman menu help

Halaman menu help merupakan halaman yang berfungsi untuk memberikan panduan kepada pengguna apabila mengalami kesulitan dalam menjalankan program.. Berikut tampilan rancangan halaman help pada Gambar 3.9


(35)

Panduan Penggunaan Program

Pengujian Hasil

1

2 3

Gambar 3.9 Rancangan Antarmuka menu help

Keterangan:

1. Merupakan Label untuk untuk keterangan Panduan Penggunaan Program 2. Merupakan Group box untuk mendeskripsikan langkah-langkah penggunaan

Pengujian.

3. Merupakan Group box untuk mendeskripsikan langkah-langkah penggunaan Hasil.


(36)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Implementasi sistem merupakan lanjutan dari tahap analisis dan perancangan sistem. Sistem ini dibangun dengan menggunakan bahasa pemrograman C# dan menggunakan Software Microsoft Visual Studio 2010. Pada sistem ini terdapat 4 (lima) tampilan halaman, yaitu Halaman Home, ,Halaman Pengujian ,Halaman Hasil dan Halaman Help.

4.1.1 Tampilan Halaman Menu Home

Halaman utama merupakan tampilan halaman yang muncul pertama sekali pada saat sistem dijalankan. Halaman utama memiliki 4 menu bar, yaitu menu home, menu pengujian, menu help, dan exit . Tampilan Halaman menu utama dapat dilihat pada gambar 4.1


(37)

Gambar 4.1 Tampilan Menu Home

4.1.2 Tampilan Halaman Menu Pengujian

Tampilan Halaman Menu Pengujian merupakan halaman utama dimana terjadinaya proses penambahan noise, filtering, dan proses perhitungan pada citra.. Gambar 4.2 dibawah ini menunjukkan tampilan halaman menu pengujian.


(38)

Gambar 4.2 Tampilan Halaman Menu Pengujian 4.1.3 Tampilan Halaman Menu Hasil

Tampilan halaman menu Hasil merupakan menu yang berfungsi untuk menunjukkan hasil dari pengujian yang telah dilakukan sebelumnya pada Menu Pengujian. Gambar 4.3 dibawah ini menunjukkan tampilan halaman menu hasil.


(39)

Gambar 4.3 Tampilan Halaman Menu Hasil

4.1.4 Tampilan Halaman Menu Help

Tampilan halaman menu help merupakan menu yang berfungsi untuk membantu pengguna dalam menggunakan program melalui langkah-langkah yang diurutkan. Gambar 4.4 dibawah ini menunjukkan tampilan halaman menu help.


(40)

Gambar 4.4 Tampilan Halaman Menu Help

4.2 Pengujian

Pengujian sistem merupakan tahapan berikutnya yang dilakukan setelah implementasi sistem. Tujuan pengujian sistem untuk membuktikan sistem yang dibangun telah berjalan dengan baik. Sistem ini diujikan pada citra grayscale tanpa noise berformat .bmp atau .png dengan ukuran 500 x 500 piksel.

4.2.1 Pengujian Proses Import Citra

Proses pengujian yang dilakukan pertama kali adalah dengan membuka file citrra

grayscale awal yang dilakukan oleh user. Citra yang akan dibuka berformat

.bmp atau .png. Tampilan buka gambar .bmp dapat dilihat pada Gambar 4.5. dan tampilan buka gambar .png dapat dilihat pada Gambar 4.6.


(41)

Gambar 4.5 Tampilan Pemilihan Citra berformat .bmp


(42)

User hanya dapat membuka file citra grayscale yang berformat .bmp atau .png,

apabila user mencoba membuka file citra yang bukan grayscale maka akan muncul peringatan seperti pada Gambar 4.7.

Gambar 4.7 Tampilan Dialog box

Setelah user membuka file citra grayscale awal maka sistem akan menampilkan file citra grayscale awal yang telah dipilih sebelumnya. Tampilan citra grayscale


(43)

Gambar 4.8 Tampilan Citra Grayscale awal

4.2.2 Pengujian proses Tambah Noise

Setelah citra grayscale awal dibuka maka proses selanjutnya adalah proses tambah noise.Sebelum kita menambahkan noise terlebih dahulu kita menentukan probabilitas noise yang akan kita ujikan pada citra grayscale awal. Probabilitas

noise yang akan diujikan ialah 10 % - 100 % .Tampilan probabilitas noise pada


(44)

Gambar 4.9 Tampilan Probabilitas Noise

Setelah kita menentukan probabilitas noise, maka selanjutnya kita menentukan jenis noise yang akan kita gunakan . Jenis noise yang akan dipilih ialah Gaussian

Noise atau Salt and Pepper Noise. Setelah kita memilih salah satu diantara 2

jenis noise tersebut maka citra grayscale awal menjadi citra grayscale yang mengalami Gaussian Noise atau Salt and Pepper Noise. Tampilan citra grayscle yang telah melalui proses tambah noise dengan probabilitas 20% yang berformat .bmp dapat dilihat pada Gambar 4.10 dan Gambar 4.11.


(45)

Gambar 4.10 Tampilan Citra Grayscale berformat BMP dengan Gaussian Noise 20 %

Gambar 4.11 Tampilan Citra Grayscale berformat BMP dengan Salt and Pepper Noise 20%


(46)

Tampilan citra grayscle yang telah melalui proses tambah noise dengan probabilitas 20% yang berformat .png dapat dilihat pada Gambar 4.12 dan Gambar 4.13.

Gambar 4.12 Tampilan Citra Grayscale berformat PNG dengan Gaussian Noise 20%


(47)

Gambar 4.13 Tampilan Citra Grayscale berformat PNG dengan Salt and Pepper Noise 20%

4.2.3 Pengujian proses High-Boost Filtering

Setelah citra grayscale mengalami Gaussian noise atau Salt and Pepper noise maka citra tersebut selanjutnya akan melalui proses filtering. Proses filtering menggunakan High-Boost Filtering yang akan menghasilkan citra grayscale yang baru setelah melalui proses filtering. Berikut tampilan hasil filtering pada citra grayscale yang mengalami Gaussian Noise dengan format .bmp dapat dilihat pada Gambar 4.14.


(48)

Gambar 4.14 Tampilan Hasil Citra Grayscale dengan Gaussian Noise dengan citra berformat .bmp setelah melalui proses filtering .

Berikut tampilan hasil filtering pada citra grayscale yang mengalami Gaussian


(49)

.

Gambar 4.15 Tampilan Hasil Citra Grayscale dengan Gaussian Noise dengan citra berformat .png setelah melalui proses filtering .

Berikut tampilan hasil filtering pada citra grayscale yang mengalami Salt and


(50)

Gambar 4.16 Tampilan Hasil Citra Grayscale dengan Salt and Pepper Noise dengan citra berformat .bmp setelah melalui proses filtering .

Berikut tampilan hasil filtering pada citra grayscale yang mengalami Salt and


(51)

Gambar 4.17 Tampilan Hasil Citra Grayscale dengan Salt and Pepper Noise dengan citra berformat .png setelah melalui proses filtering .

4.2.4 Hasil dari Proses yang Filtering yang telah dilakukan

Berikut tampilan hasil dari proses filtering yang telah dilakaukan dengan menampilkan nilai perubahan piksel yang terjadi dari sebelum proses filtering hingga setelah proses filtering.


(52)

Gambar 4.18. Hasil dari Proses yang Filtering yang telah dilakukan

4.2.5 Pengujian proses Filtering Gaussian Noise pada citra grayscale berformat BMP dan PNG dengan menggunakan High-Boost Filtering.

Pengujian proses Filtering Gaussian Noise pada citra grayscale berformat BMP dan PNG dengan menggunakan High-Boost Filtering dapat ditunjukkan pada tabel 4.1 dan 4.2 berikut ini.


(53)

Tabel 4.1 Perbandingan Nilai MSE dan PSNR pada Citra Grayscale dengan Gaussian Noise dan Citra Hasil Filtering dengan High-Boost Filtering

dengan Format BMP.

Probabilitas Noise

Citra Grayscale Awal Citra Grayscale ber-noise

Citra Grayscale Hasil Filtering

MSE PSNR

10 % 3276,7 1,297

20% 3914,9 1,220

30% 4663,7 1,144

40%


(54)

Tabel 4.2 Perbandingan Nilai MSE dan PSNR pada Citra Grayscale dengan Gaussian Noise dan Citra Hasil Filtering dengan High-Boost Filtering

dengan Format PNG.

Probabilitas Noise

Citra Grayscale Awal Citra Grayscale ber-noise

Citra Grayscale Hasil Filtering

MSE PSNR

10 % 3168,8 1,3122

20% 3649,2 1,2509

30% 4120.9 1,1981

40%


(55)

Dari tabel 4.1 dan tabel 4.2 diatas kita dapat melihat bahwa nilai MSE yang didapat setelah dilakukan filtering pada citra grayscale berformat .bmp lebih besar dibandingkan nilai MSE pada citra grayscale berfotmat .png. Namun terjadi hal yang sebaliknya terhadap nilai PSNR, nilai PSNR pada citra grayscale berformat .bmp lebih kecil dari pada nilai PSNR pada citra grayscale berformat PNG.

4.2.6 Pengujian proses Filtering Salt and Pepper Noise pada citra grayscale berformat BMP dan PNG dengan menggunakan High-Boost Filtering.

Pengujian proses Filtering Salt and Pepper Noise pada citra grayscale berformat BMP dan PNG dengan menggunakan High-Boost Filtering dapat ditunjukkan pada tabel 4.3 dan 4.4 berikut ini.

Tabel 4.3 Perbandingan Nilai MSE dan PSNR pada Citra Grayscale dengan Salt and Pepper Noise dan Citra Hasil Filtering dengan High-Boost Filtering

dengan Format BMP.

Probabilitas Noise

Citra Grayscale Awal Citra Grayscale ber-noise

Citra Grayscale Hasil Filtering

MSE PSNR


(56)

20% 7050,2 0,9649

30% 8815,5 0,8678

40%

10417,06 0,7929

Tabel 4.4 Perbandingan Nilai MSE dan PSNR pada Citra Grayscale dengan Salt and Pepper Noise dan Citra Hasil Filtering dengan High-Boost Filtering

dengan Format PNG.

Probabilitas Noise

Citra Grayscale Awal Citra Grayscale ber-noise

Citra Grayscale Hasil Filtering

MSE PSNR


(57)

20% 7032,09 0,9660

30% 8836,8 0,8668

40%

10482,06 0,7926

Dari tabel 4.3 dan tabel 4.4 diatas kita dapat melihat bahwa nilai MSE dan PSNR yang didapat setelah dilakukan filtering pada citra grayscale yang mengalami Salt and Pepper noise berformat .bmp lebih kecil dibandingkan nilai MSE dan PSNR pada citra grayscale berfotmat .png.

4.2.7 Perbandingan Rata-rata Nilai MSE dan PSNR pada Citra Grayscale Hasil Filtering Noise dengan Gaussian Noise

Berikut nilai rata-rata yang didapat MSE dan PSNR pada citra hasil filtering

noise dengan Gaussian noise berformat .bmp dan .png dengan persentase noise


(58)

Tabel 4.5 Nilai Rata-rata MSE dan PSNR pada Citra Grayscale Hasil Filtering Noise dengan Gaussian Noise pada Citra Berformat BMP.

Persentase Noise

MSE PSNR

10% 3276,7 1,297

20% 3914,9 1,220

30% 4663,7 1,144

40% 5614,2 1,063

Nilai Rata-rata

4367,37 1,181

Tabel 4.6 Nilai Rata-rata MSE dan PSNR pada Citra Grayscale Hasil Filtering Noise dengan Gaussian Noise pada Citra Berformat PNG

Persentase Noise

MSE PSNR

10% 3168,8 1,312

20% 3649,2 1,250

30% 4120,9 1,198

40% 4635,6 1,147

Nilai Rata-rata

3893,6 1,226

Dari Tabel 4.5 dan Tabel 4.6 dapat dilihat bahwa nilai rata-rata MSE pada citra

grayscale berformat .bmp lebih besar dari pada citra berformat .png sedangkan

pada nilai rata-rata PSNR citra grayscale berformat .bmp lebih kecil dari pada citra grayscale berformat .png Maka disimpulkan bahwa Gaussian Noise pada


(59)

citra grayscale berformat .png lebih baik dibandingkan dengan Gaussian Noise berformat .bmp.

4.2.8 Perbandingan Rata-rata Nilai MSE dan PSNR pada Citra Grayscale Hasil Filtering Noise dengan Salt And Pepper Noise.

Berikut nilai rata-rata yang didapat MSE dan PSNR pada citra hasil filtering

noise dengan Salt and Pepper noise berformat .bmp dan .png dengan persentase

noise 10%, 15%, dan 20% dapat dilihat pada Tabel 4.7 dan Tabel 4.8 berikut.

Tabel 4.7 Nilai Rata-rata MSE dan PSNR pada Citra Grayscale Hasil Filtering Noise dengan Salt And Pepper Noise pada Citra Berformat BMP

Persentase Noise

MSE PSNR

10% 5116,1 1,1401

20% 7050,2 0,9649

30% 8815,5 0,8678

40% 10417,06 0,7929

Nilai Rata-rata


(60)

Tabel 4.8 Nilai Rata-rata MSE dan PSNR pada Citra Grayscale Hasil Filtering Noise dengan Salt And Pepper Noise pada Citra Berformat PNG

Persentase Noise

MSE PSNR

10% 5147,01 1,2105

20% 7032,09 0,9660

30% 8836,8 0,8668

40% 10482,06 0,7926

Nilai Rata-rata

7874,4 0,9589

Dari Tabel 4.7 dan Tabel 4.8 diatas dapat dilihat bahwa nilai rata-rata MSE pada citra grayscale berformat .bmp lebih kecil dari pada citra berformat .png sedangkan pada nilai rata-rata PSNR citra grayscale berformat .bmp lebih besar dari pada citra grayscale berformat .png Dapat disimpulkan bahwa Salt and

Pepper Noise pada citra grayscale berformat .bmp lebih baik dibandingkan

dengan Salt and Pepper Noise berformat .png.

Tabel 4.9 Perbandingan Nilai Rata-rata MSE dan PSNR, pada Citra Grayscale Hasil Filtering Noise dengan Gaussian Noise dan Salt and Pepper

Noise pada Citra Berformat BMP Gaussian

Noise

Salt and Pepper Noise

MSE 4367,37 7849,7


(61)

Tabel 4.10 Nilai Rata-rata MSE, PSNR, dan Running Time pada Citra Grayscale Hasil Filtering Noise dengan Gaussian Noise dan Salt and Pepper

Noise pada Citra Berformat PNG

Gaussian Noise

Salt and Pepper Noise

MSE 3893,6 7874,4

PSNR 1,226 0,9589

Berdasarkan Tabel 4.9 dan Tabel 4.10 dapat disimpulkan bahwa citra grayscale hasil filtering pada Gaussian noise menghasilkan nilai MSE dan PSNR lebih baik dari pada citra grayscale hasil filtering noise Salt and Pepper baik itu pada format .bmp maupun .png.


(62)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil studi literatur, analisis, perancangan, implementasi, dan pengujian sistem ini, maka kesimpulan yang didapat adalah sebagai berikut:

1. Pada citra grayscale hasil filtering dengan Gaussian Noise berformat .png menghasilkan nilai rata-rata MSE, dan PSNR lebih baik dari pada citra

grayscale dengan Gaussian Noise berformat .bmp.

2. Pada citra grayscale hasil filtering dengan Salt and Pepper Noise berformat .png menghasilkan nilai rata-rata MSE dan PSNR lebih baik dari pada citra dengan Salt and Pepper Noise berformat .bmp.

3. Berdasarkan nilai MSE dan PSNR yang didapat dari pengujian yang dilakukan High-Boost Filtering lebih baik digunakan pada citra grayscale dengan format .png dibandingkan dengan formbat.bmp, baik pada Gaussian

Noise dan Salt and Pepper Noise.

4. Berdasarkan nilai MSE dan PSNR yang didapat dari pengujian yang dilakukan High-Boost Filtering lebih baik digunakan pada citra grayscale dengan Gaussian Noise dibandingkan dengan citra grayscale dengan Salt


(63)

5.2 Saran

Adapun saran-saran yang diperlukan untuk penelitian maupun pengembangan berikutnya adalah:

1. Sistem ini sebaiknya dikembangkan dengan menggunakan citra berwarna. 2. Sistem ini dapat dikembangkan dengan menggunakan jenis format citra

digital yang lain yaitu TIFF,JPEG dan GIF..

3. Noise yang digunakan pada sistem ini terdiri atas 2 jenis yaitu Gaussian

Noise dan Salt and Pepper Noise. Untuk pengembangan berikutnya dapat

menambahkan jenis noise yang lainnya.

4. Sistem ini menggunakan metode High-Boost Filtering untuk perkembangan selanjutnya dapat dilakukan penelitian dengan menambahkan metode Low


(64)

BAB II

LANDASAN TEORI

2.1 Citra

Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra sebagai keluaran suatu system perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi , atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan. (Sutoyo , 2009)

Citra (image) atau istilah lain untuk gambar sebagai salah satu komponen multimedia yang memegang peranan sangat penting sebagai bentuk informasi visual. Meskipun sebuah citra kaya akan informasi, namun sering kali citra yang dimiliki mengalami penurunan mutu, misalnya mengandung cacat atau noise. Tentu saja citra semacam ini menjadi lebih sulit untuk diinterpretasikan karena informasi yang disampaikan oleh citra tersebut menjadi berkurang.(Wiliyana, 2013)

2.2 Citra Digital

Citra digital adalah pemrosesan gambar 2 dimensi yang mengacu pada pemrosesan setiap data 2 dimensi yang terdiri dari sebuah larik (array) yang berisi nilai-nilai real maupun komplek yang direpresentasikan dengan deretan bit tertentu.

Suatu citra dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial, dan amplitude f di titik koordinat

(x,y) dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila

nilai x,y, dan nilai amplitudo f secara keseluruhan berhingga (finite) dan bernilai diskrit maka dapat dikatakan bahwa citra tersebut adalah citra digital.Warna citra


(65)

sendiri dibentuk oleh kombinasi citra 2-D incividual . Misalnya dalam sistem warna

Red Green Blue ( RGB) , warna citra terdiri dari tiga komponen individu warna (

merah, hijau,biru).

Asumsikan bahwa citra dicoba sehingga menghasilkan citra yang mempunyai baris M dan kolom N, sehingga disebut citra berukuran M x N. Nilai dari koordinat (x.y) adalah kuantitas diskrit. Untuk kejelasan notasi dan kemudahan maka digunakan nilai integer untuk koordinat ini. Titik awal citra didefenisikan pada (x,y) =(0,0).NIlai koordinat berikutnya sepanjang baris pertama citra adalah (x,y)=(0,1). Jadi penting untuk diingat bahwa notasi (0,1) digunakan untuk menandai contoh kedua sepanjang baris pertama. (Prasetyo, 2011)

Gambar 2.1 Sistem koordinat citra

Sistem koordinat citra digital pada Gambar 2.1 tersbut dapat ditulis dalam bentuk matriks sebagai berikut:

, = [ , , … , − , , … , − . . . . . . − , − , . … − , − ] ……(1)

Nilai pada suatu irisan antara baris dan kolom (pada posisi x,y) disebut dengan picture

elements, image elements, pels ,atau pixels. Namun istilah yang sering digunakan

dalam citra digital adalah pixels.(Sutoyo , 2009)

0 0 1 1 2 2 3 3 . . . . . . . .

. . N - 1

M - 1

. .

.


(66)

2.3 Jenis - Jenis Citra

Ada beberapa jenis citra digital yang sering digunakan, diantaranya adalah citra biner, citra grayscale, dan citra warna.

2.3.1 Citra Biner

Citra biner adalah citra digital yang hanya memiliki dua kemungkinan nilai pixel yaitu hitam dan putih. Citra biner juga disebut sebagai citra B&W (black and white) atau citra monokrom. Hanya dibutuhkan 1 bit untuk mewakili nilai setiap pixel dari citra biner. Citra biner sering kali muncul sebagai hasil dari proses pengolahan seperti segmentasi ,pengambangan, morfologi, ataupun dithering. (Putra, 2010)

Gambar 2.2 Contoh Citra Biner

2.3.2 Citra Grayscale

Citra) grayscale merupakan citra digital yang hanya memiliki satu nilai kanal pada setiap pixelnya, dengan kata lain nilai bagian RED = GREEN = BLUE. Nilai tersebut digunakan untuk menunjukkan tingkat intensitas. Warna yang dimiliki adalah warna dari hitam, keabuan, dan putih. Tingkatan keabuan disini merupakan warna abu dengan berbagai tingkatan dari hitam hingga mendekati putih. (Putra, 2010


(67)

Gambar 2.3 Contoh Citra Grayscale

2.3.3 Citra Warna

Setiap pixel pada citra warna yang merupakan kombinasi dari tiga warna dasar (RGB = Red Green Blue). Setiap warna dasar menggunakan penyimpanan 8 bit = 1 byte, yang berarti setiap warna mempunyai gradasi sebanyak 255 warna.Format ini dinamakan true color karena mempunyai jumlah warna yang cukup besar sehingga bisa dikatakan hampir mencakup semua warna di alam. (Sutoyo , 2009)

Gambar 2.4 Contoh Citra Warna

2.4 Format File Citra

Format file citra standar yang digunakan saat ini terdiri dari beberapa jenis. Format-format ini sering digunakan dalam menyimpan citra pada sebuah file. Setiap Format-format file citra memiliki karakteristik masing-masing .


(68)

2.4.1 Format File Bitmap (.bmp)

Bitmap sering disebut juga dengan citra raster. Bitmap menyimpan data kode citra

secara digital dan lengkap (cara penyimpanannya adalah per pixel). Bitmap dipresentasikan dalam bentuk matriks atau dipetakan dengan menggunakan bilangan biner atau sistem bilangan lain. Citra ini memiliki kelebihan untuk memanipulasi warna, tetapi untuk mengubah objek sulit. Tampilan bitmap mampu menunjukan kehalusan gradasi bayangan dan warna dari sebuah gambar. Oleh karena itu, bitmap merupakan media elektronik yang paling tepat untuk gambar-gambar dengan perpaduan gradasi warna yang rumit, seperti foto dan lukisan digital. Bitmap biasanya diperoleh dengan cara Scanner, Camera Digital, Video Capture, dan lain-lain. (Sutoyo , 2009)

Gambar 2.5 Citra Bitmap (.bmp)

2.4.2 Format File Citra Portable Networks Graphic(.png)

PNG merupakan singkatan dari Portable Network Graphics. Format ini tersedia untuk umum dan versi ini dikembangkan dari Format GIFF. Format ini dapat menangani kedalaman warna hingga 48 bit (3saluran warna masing-masing 16 bit). Format PNG


(69)

jauh lebih baik untuk transparansi daripada GIF, yang memungkinkan untuk memiliki berbagai tingkat transparansi untuk setiap pixel (alpha channel). Dukungan untuk format ini dimulai sejak tahun 1995, dan saat ini penggunaannya sudah cukup luas.

Secara keseluruhan, PNG adalah format yang lebih baik daripada GIF, yang menawarkan kompresi yang lebih baik, dapat menyimpan banyak warna, memiliki dukungan transparansi yang lebih baik, dan sebagainya. Satu-satunya kelemahan dari PNG dibandingkan GIFF adalah tidak bisa menyimpan gambar animasi. Karena kedalaman warna yang besar, kompatibilitas browser, dan kompresi yang kecil, format ini disarankan untuk digital fotografi. Dibandingkan dengan JPG, PNG mempunyai kualitas gambar yang lebih baik dengan ukuran file yang lebih besar.(Tampubolon,2013)

Gambar 2.5 Citra Png (.png)

2.5 Noise

Noise adalah sebuah gangguan yang terjadi akibat dari kurang sempurnanya proses capture yang dilakukan sehingga mengakibatkan terjadinya pencahayaan yang tidak

merata. Akibat tidak meratanya pencahayaan mengakibatkan intensitas tidak seragam, kontras citra terlalu rendah sehingga objek sulit untuk dipisahkan dari latar belakangnya, atau gangguan yang disebabkan oleh kotoran-kotoran yang menempel pada citra. Berikut adalah beberapa jenis noise yang sering terjadi pada sebuah citra.


(70)

2.5.1 Gaussian Noise

Gaussian noise adalah model noise yang mengikuti distribusi normal standar dengan

rata-rata nol dan standar deviasi 1. Noise ini merupakan mathemathical tractability dalam domain spasial dan domain frekuensi, model noise Gaussian yang paling sering digunakan dalam prakteknya. Faktanya, tractability ini tepat dan sering menghasilkan model Gaussian yang digunakan dalam situasi dimana secara garis besar dapat diaplikasikan dengan baik.

Fungsi kepadatan probabilitas (probabilty density function) adalah suatu fungsi yang menyatakan nilai kemungkinan terjadinya kejadian tertentu. Probability Density

Function ( PDF) variabel random Gaussian adalah :

� = √ �� − �−� / � ...(2)

Dimana z merepresentasikan gray-level, adalah nilai tengah (mean), dan � adalah standart deviasi. (Hermawati, 2013)

2.5.2 Salt and Pepper Noise ( Impulse Noise)

Salt and Pepper Noise adalah jenis noise yang biasanya terlihat titik-titik hitam atau

putih yang terjadi pada citra seperti tebaran garam atau merica dikarenakan adanya variabel acak yang terjadi karena karakteristik Fungsi Probabilitas Kepadatan (Probability Density Function).

Probability Density Function (PDF) Salt and Pepper Noise :

� = {

� ...(3)

Jika b > a, intensitas b akan tampak sebagai titik terang pada citra. Sebaliknya, level a akan tampak seperti titik gelap. Jika selain Pa atau Pb nol, impulse noise disebut

juga unipolar . Jika probability selain nol, dan khususnya diperkirakan sama,nilai


(71)

citra. Karena alasan ini noise bipolar impulse disebut juga noise salt and pepper. (Prasetyo , 2011)

2.6 Perbaikan Citra

Perbaikian citra bertujuan meningkatkan tampilan citra untuk pandangan manusia atau untuk mengkonversi suatu citra agar memiliki format yang lebih baik sehingga citra tersebut menjadi lebih mudah diolah dengan mesin (komputer). Perbaikan terhadap suatu citra dapat dilakukan dengan operasi titik (point operation) , operasi spasial (spasial operation) , operasi geometri (geometric operation) , dan operasi aritmatic (aritmatic operation).

2.6.1 Operasi Spasial (Filtering)

Pentapisan pada pengolahan citra biasa disebut dengan pentapisan spasial( spasial

filtering).Pada proses pentapisan, nilai piksel baru umumnya dihitung berdasarkan

piksel tetangga. Cara perhitungan nilai piksel baru dapat dikelompokkan menjai 2, yaitu pertama piksel baru diperoleh melalui kombinasi linier tetangga dan kedua piksel diperoleh langsung dari salah satu piksel tetangga. Proses pentapisan spasial tidak dapat dilepaskan dari teori kernel (mask) dan konvolusi.

2.6.1.1 Kernel (mask)

Kernel adalah matrik yang pada umumnya berukuran kecil dengan elemen-elemennya

adalah berupa bilangan. Kernel digunakan pada proses konvolusi. Oleh karena itu

kernel juga disebut dengan convolution window (jendela konvolusi ).Ukuran kernel

dapat berbeda-beda seperti 2x2, 3x3, 5x5, dan sebagainya.

Gambar 2.6 menyajikan contoh kernel 3x3, warna abu-abu pada gambar menunjukkan pusat koordinat {0,0}, yang pada proses konvolusi menunjukkan koordinat piksel dari citra yang diproses.(Putra D, 2010)


(72)

[

]

Gambar 2.6 Contoh kernel berukuran 3x3 (sel dengan warna abu-abu menyatakan pusat koordinat {0,0}

2.6.1.2 Konvolusi (Convolution)

Konvolusi merupakan operator sentral pengolah citra dan telah digunakan secara luas pada berbagai piranti lunak pengolah citra. Proses konvolusi terjadi dengan cara

kernel diletakkan pada setiap piksel dari citra input dan menghasilkan piksel baru.

Nilai piksel baru dihitung dengan mengalikan setiap nilai piksel tetangga dengan bobot yang berhubungan pada kernel dan kemudian menjumlah hasil perkalian tersebut. Berikut ini di disajikan citra input 4x5 yang dikonvolusikan dengan kernel 2x2 dan dihasilkan citra input 3x4.

*

=

Dengan 0 menyatakan bukan nilai. Nilai 5 pada pikesl pada hasil konvolusi diatas diperoleh dari:

(1 x 1) + (0 x 3) + (0 x 1) + (1 x 4)

Nilai 0 pada hasil keluaran diatas dinyatakan sebagai bukan nilai karena untuk melakukan proses konvolusi pada piksel tersebut, sebagian kernel berada diluar batas ukuran citra sementara tidak ada nilai pikesl diluar batas ukuran citra .( Putra D, 2010)

2.6.2 High-Boost Filtering

High-Boost merupakan salah satu bagian dari operasi yang dapat dilakukan untuk


(1)

vii

IMPLEMENTATION OF HIGH-BOOST FILTERING TO IMPROVE THE QUALITY OF DIGITAL IMAGE

ABSTRACT

Image as one of the output from a recording system, can be an optical data such as an image, analogous, or video signals such as images on a television monitor or one of digital media that we can save in a digital storage. The result of the image is depends on the pixel resolution from the image. However, not all images will be produced in accordance with the image object, this is due to the presence of noise that cause didn’t get the best result of the image. It can be occur cause of too high the brightness levels,too contrast image,or lack of sharpness from the image. Gaussian Noise or Salt and Pepper Noise can be occurs in an image, to fix that we can use High-Boost Filtering method to fix the image.In High-Boost Filtering image will be processed while maintaining the high frequency components and eliminating (reducing) the low-frequency component. The testing process will be tested with a probability value of noise between 10%, 15% and 20%,it tested with an image in .bmp mode or in .png mode that generate value of MSE and PSNR. Based on the test, High-Boost Filtering is better used on a grayscale image in .bmp mode or .png mode which affected by Gaussian Noise than Salt and Pepper noise. Because the value of MSE and PSR are relatively small compared to Salt and Pepper Noise.

Keywords : High-Boost Filtering, Gaussian Noise, Salt and Pepper Noise,


(2)

viii

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Daftar Lampiran xii

Bab 1 Pendahuluan

1.1 Latar Belakang 1

1.2 Perumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodelogi Penelitian 3

1.7 Sistematika Penulisan 4

Bab 2 Landasan Teori 2.1 Citra 6

2.2 Citra Digital 6

2.3 Jenis-Jenis Citra 8

2.3.1 Citra Biner 8

2.3.2 Citra Grayscale 8

2.3.3 Citra Warna 9

2.4 Format File Citra 9

2.4.1 Format File Bitmap (.bmp) 10

2.4.2 Format File Citra Portable Networks Graphic(.png) 10

2.5 Noise 11

2.5.1 Gaussian Noise 12

2.5.2 Salt and Pepper Noise 12

2.6 Perbaikan Citra 13

2.6.1 Operasi Spasial (Filtering) 13

2.6.1.1 Kernel (mask) 13

2.6.1.2 Konvolusi (Convolution) 14

2.6.2 High-Boost Filtering 14

2.7 Parameter Perbandingan Kualitas Citra 15

2.7.1 Mean Square Error (MSE) 15

2.7.2 Peak Signal to Noise Ratio (PSNR) 16


(3)

ix

Bab 3 Analisis dan Perancangan Sistem

3.1 Analisis Sistem 17

3.1.1 Analisis Masalah 17

3.1.2 Analisis Persyaratan 18

3.1.2.1 Persyaratan Fungsional 18

3.1.2.2 Persyaratan Non-fungsional 19

3.1.3 Analisis Proses 19

3.1.3.1 Use Case Diagram 20

3.1.3.2 Sequence Diagram 23

3.1.3.3 Activity Diagram 23

3.1.3.4 Analisis Proses Filtering dengan High-Boost Filtering 25

3.2 Pseudocode Program 28

3.2.1 Pseudocode Proses Tambah Generate Noise 28 3.2.2 Pseudocode Proses Tambah Salt and Pepper Noise 28 3.2.3 Pseudocode Proses High-Boost Filtering 28

3.3 Perancangan Sistem 29

3.3.1 Perancangan Flowchart Sistem 30

3.3.2 Perancangan Antarmuka Sistem (Interface) 30

a. Halaman Menu Utama 30

b. Halaman Menu Pengujian 31

c. Halaman Menu Hasil 32

d. Halaman Menu Help 34

Bab 4 Implementasi dan Pengujian

4.1 Implementasi 35

4.1.1 Tampilan Halaman Menu Home 35

4.1.2 Tampilan Halaman Menu Pengujian 37

4.1.3 Tampilan Halaman Menu Hasil 37 4.1.4 Tampilan Halaman Menu Help 38

4.2 Pengujian 38

4.2.1 Pengujian Proses Import Citra Grayscale 39 4.2.2 Pengujian Proses Tambah Noise 32 4.2.3 Pengujian Proses High-Boost Filtering 46 4.2.4 Hasil dari Proses yang Filtering yang telah dilakukan 50 4.2.5 Pengujian proses Filtering Gaussian Noise pada citra

grayscale berformat BMP dan PNG dengan menggunakan

High-Boost Filtering 51 4.2.6 Pengujian proses Filtering Salt and Pepper Noise pada citra

grayscale berformat BMP dan PNG dengan menggunakan

High-BoostFiltering. 54 4.2.7 Perbandingan Rata-rata Nilai MSE dan PSNR pada Citra

Grayscale Hasil Filtering dengan Gaussian Noise 56 4.2.8 Perbandingan Rata-rata Nilai MSE dan PSNR pada Citra

Grayscale Hasil Filtering dengan Salt and Pepper Noise 58 Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 62

5.2. Saran 63


(4)

x

DAFTAR TABEL

Nomor

Tabel Nama Tabel Halaman

3.1

3.2

3.3

4.1

4.2

4.3

4.4

4.5

4.6

4.7

4.8

4.9

4.10

Spesifikasi Use Case Import Citra Awal

Spesifikasi Use Case Pengujian

Spesifikasi Use Case Hasil

Perbandingan Nilai MSE dan PSNR pada Citra Grayscale dengan Gaussian Noise dan Citra Hasil Filtering dengan High-Boost Filtering dengan Format BMP .

Perbandingan Nilai MSE dan PSNR pada Citra Grayscale dengan Gaussian Noise dan Citra Hasil Filtering dengan High-Boost Filtering dengan Format PNG.

Perbandingan Nilai MSE dan PSNR pada Citra Grayscale dengan Salt and Pepper Noise dan Citra Hasil Filtering dengan High-Boost Filtering dengan Format BMP.

Perbandingan Nilai MSE dan PSNR pada Citra Grayscale dengan Salt and Pepper Noise dan Citra Hasil Filtering dengan High-Boost Filtering dengan Format PNG.

Nilai Rata-rata MSE dan PSNR pada Citra Grayscale Hasil Filtering Noise dengan Salt And Pepper Noise Berformat BMP Nilai Rata-rata MSE dan PSNR pada Citra Grayscale Hasil Filtering Noise dengan Salt And Pepper Noise Berformat PNG Nilai Rata-rata MSE dan PSNR pada Citra Grayscale Hasil Filtering Noise dengan Gaussian Noise dan Salt and Pepper Noise pada Citra Berformat BMP .

Nilai Rata-rata MSE dan PSNR pada Citra Grayscale Hasil Filtering Noise dengan Gaussian Noise dan Salt and Pepper Noise pada Citra Berformat PNG .

Perbandingan Nilai Rata-rata MSE dan PSNR, pada Citra Grayscale Hasil Filtering Noise dengan Gaussian Noise dan Salt and Pepper Noise pada Citra Berformat BMP.

Nilai Rata-rata MSE, PSNR, dan Running Time pada Citra Grayscale Hasil Filtering Noise dengan Gaussian Noise dan Salt and Pepper Noise pada Citra Berformat PNG.

21

21

22

53

54

55

56

58

58

59

60

60


(5)

DAFTAR GAMBAR Nomor

Gambar Nama Gambar Halaman

2.1 2.2 2.3 2.4 2.5 2.6 2.7 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18

Sistem koordinat citra Contoh Citra Biner Contoh Citra Grayscale Contoh Citra Warna Citra Bitmap (.bmp) Citra Png(.png)

Contoh kernel berukuran 3x3 (sel dengan warna abu-abu menyatakan pusat koordinat {0,0}

Diagram Ishikawa Use Case Diagram Sequence Diagram Activity Diagram

Flowchart Perancangan Sistem Rancangan Antarmuka halaman home Rancangan Antarmuka halaman Pengujian Rancangan Antarmuka menu hasil

Rancangan Antarmuka menu help Tampilan Menu Home

Tampilan Halaman Menu Pengujian Tampilan Halaman Menu Hasil Tampilan Halaman Menu Help

Tampilan Pemilihan Citra berformat .bmp Tampilan Pemilihan Citra berformat .png Tampilan Dialog box

Tampilan Citra Grayscale awal Tampilan Probabilitas Noise

Tampilan Citra Grayscale berformat BMP dengan Gaussian Noise 20% Tampilan Citra Grayscale berformat BMP dengan Salt and Pepper Noise 20%

Tampilan Citra Grayscale berformat PNG dengan Gaussian Noise 20%

Tampilan Citra Grayscale berformat PNG dengan Salt and Pepper 20%

Tampilan Hasil Citra Grayscale dengan Gaussian Noise dengan citra berformat .bmp setelah melalui proses filtering.

Tampilan Hasil Citra Grayscale dengan Gaussian Noise dengan citra berformat .png setelah melalui proses filtering .

Tampilan Hasil Citra Grayscale dengan Salt and Pepper Noise dengan citra berformat .bmp setelah melalui proses filtering .

Tampilan Hasil Citra Grayscale dengan Salt and Pepper Noise dengan citra berformat .png setelah melalui proses filtering .

Tampilan Hasil dari Proses Filtering yang telah dilakukan.

7 8 9 9 10 11 14 18 20 23 24 29 30 31 33 35 37 38 39 40 40 41 42 43 44 44 45 46 47 48 49 50 51 52


(6)

xii

DAFTAR LAMPIRAN

Halaman

A. Listing Program A-1