Implementasi High-Boost Filtering Untuk Memperbaiki Kualitas Citra Digital
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