Anda di halaman 1dari 101

PERBANDINGAN INTERPOLASI LINEAR, BILINEAR DAN NEARST

NEIGHBOR UNTUK PERBESARAN CITRA

SKRIPSI

MUTIARA
111401013

PROGRAM STUDI S1 ILMU KOMPUTER


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2017

Universitas Sumatera Utara


PERBANDINGAN INTERPOLASI LINEAR, BILINEAR, DAN
NEARST NEIGHBOR UNTUK PERBESARAN CITRA

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah sarjana
Komputer

MUTIARA
111401013

PROGRAM STUDI S-1 ILMU KOMPUTER


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2017

Universitas Sumatera Utara


ii

PERSETUJUAN

Judul : PERBANDINGAN INTERPOLASI LINEAR,


BILINEAR, DAN NEARST NEIGHBOR UNTUK
PERBESARAN CITRA
Kategori : Pengolahan Citra
Nama : Mutiara
Nomor Induk Mahasiswa : 111401013
Program Studi : Ilmu Komputer
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Handrizal, S.Si, M.Comp.Sc Dr. Syahril Efendi, S.Si, M.IT


NIP. 19761110 199602 1 001

Diketahui/disetujui oleh
Ilmu Komputer
Ketua,

Dr. Poltak Sihombing, M.Kom.


NIP. 196203171991031001

Universitas Sumatera Utara


iii

PERNYATAAN

PERBANDINGAN INTERPOLASI LINIER, BILINIEAR DAN NEARST NEIGHBOR


UNTUK PERBESARAN CITRA

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebut sumbernya.

Medan,

Mutiara
111401013

Universitas Sumatera Utara


iv

UCAPAN TERIMAKASIH

Puji dan syukur penulis panjatkan kehadirat Allah Subhanallahu wa Ta’ala yang telah
memberikan rahmat-Nya kepada penulis sehingga penulis dapat menyelesaikan skripsi
ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi
S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas
Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada semua pihak yang mendukung
dan memotivasi penulis, baik secara langsung maupun tidak langsung. Pada
kesempatan ini, penulis mengucapkan terima kasih kepada:

1. Bapak Prof. Dr. Runtung Sitepu, S.H, M.Hum. selaku Rektor Universitas
Sumatera Utara.
2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc. selaku Dekan Fakultas Ilmu
Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom. selaku Ketua Program Studi S-1 Ilmu
Komputer Universitas Sumatera Utara.
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc. selaku Sekretaris Program Studi S-1 Ilmu
Komputer Universitas Sumatera Utara.
5. Bapak Dr. Syahril Efendi, S.Si, M.IT selaku Dosen Pembimbing I yang
memberikan ilmu, kritik dan saran yang membangun dalam penulisan skripsi
ini.
6. Bapak Handrizal, S.Si, M.Comp.Sc selaku Dosen Pembimbing II yang
memberikan ilmu, kritik dan saran yang membangun dalam penulisan skripsi
ini.
7. Bapak Drs. Marihat Situmorang, M.Kom. selaku Pembanding I yang telah
memberikan kritik dan saran yang bermanfaat dalam penulisan skripsi ini.
8. Ibu Amalia, S.T, M.T. selaku pembanding II yang telah memberikan kritik dan
saran yang bermanfaat dalam penulisan skripsi ini.
9. Seluruh dosen dan pegawai Program studi S1 Ilmu Komputer Fasilkom-TI
USU yang telah membantu penulis dalam proses penulisan skripsi.

Universitas Sumatera Utara


v

10. Orang tua dan seluruh keluarga penulis yang selalu memberikan semangat
tiada hentinya mendo’akan dan memberikan dukungan kepada penulis.
11. Gusra Algeri, S.kom, Murni Kurniati, S.kom, Mawaddah, S.kom, Muhammad
Harun daulay, S.kom, Surya Ismail S.kom, Muhammad Irfan, Mulia Rambe,
Rina Windayani, S.T, Renida Hikmana S.T yang telah memberikan banyak
waktu dan nasehat untuk penulis dalam menyelesaikan skripsi ini.
Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah
memberikan bantuan serta dukungan kepada penulis dalam menyelesaikan
skripsi ini.

Penulis

Mutiara

Universitas Sumatera Utara


vi

ABSTRAK

Interpolasi citra merupakan salah satu masalah yang cukup penting dalam berbagai
bidang yang diantaranya adalah untuk perbesaran citra. Interpolasi adalah suatu proses
untuk menentukan harga suatu fungsi pada titik-titik posisi antara suatu sampel
dengan sampel tetangganya, hal ini dilakukan dengan menyusun fungsi kontinu
melalui sampel-sampel masukan diskrit. Dengan demikian metode interpolasi
merupakan sasaran disain, analisis, dan evaluasi suatu algoritma interpolasi, yang
membutuhkan pertimbangan antara sasaran ketelitian dan efisiensi. Pada penelitian ini
penulis melakukan percobaan untuk mendapatkan hasil perbandingan perbesaran citra
dengan menggunakan algoritma Interpolasi Linear, Bilinear dan Nearst Neighbor.
Adapun Parameter perbandingan hasil interpolasi yang digunakan adalah Mean
Squared Error (MSE) dan Peak Signal Noise Ratio (PSNR). Sampel citra yang
digunakan pada penelitian ini adalah citra berformat Bmp dan Jpg. Pada penelitian ini
digunakan sebelas buah sampel citra dengan format JPG dan BMP kemudian
dibandingkan nilai MSE dan PSNR dari setiap metode tersebut. sehingga dapat
disimpulkan metode bilinear lebih unggul dari pada metode lainnya, dimana untuk
metode bilinear memperoleh MSE rata-rata 33,21 dan PSNR rata-rata -20,43
sementara metode linear menghasilkan MSE rata-rata 36,67 dan PSNS rata-rata -20,83
kemudian untuk nearst neighbor memperoleh nilai MSE rata-rata 38,57 dan PSNR
rata-rata -20,99.

Kata Kunci : Pengolahan Citra, Citra Digital, Resize Citra, Algoritma Interpolasi
Linear, Bilinear dan Nearst Neighbor.

Universitas Sumatera Utara


vii

Comparative Linear Interpolation Nearest Neighbor Bilinear and Image for


Enlargement

ABSTRACT

The interpolation image is one important issue in a variety of magnification images.


Interpolation is a process for determining the values of points between the position of
a sample to neighbor sample by compiling a continuous function through discrete
input samples. the interpolation method used to design, analysis, and evaluation of an
interpolation algorithm, which requires consideration of the goals of accuracy and
efficiency. In this study the authors conducted an experiment to get the magnification
ratio of the image using interpolation algorithms Linear, Bilinear and nearst Neighbor.
The comparison of the interpolation parameters used are Mean Squared Error (MSE)
and Peak Signal to Noise Ratio (PSNR). imagery used .bmp and .jpg image format. In
this experiment, used eleven pieces of sample images in JPG and BMP format. then
compared the MSE and PSNR of each of these methods. It can be concluded the
bilinear method is better than other methods, which for the bilinear method of
obtaining the average MSE and PSNR 33.21 -20.43 average while MSE linear method
produces an average of 36.67 and an average PSNR - 20.83 nearst neighbor then to
obtain an average value of MSE and PSNR 38.57 -20.99 average.

Keywords: Image Processing, Digital Image, Resize image, Linear Interpolation


Algorithm, Bilinear and Nearst Neighbor.

Universitas Sumatera Utara


viii

DAFTAR ISI

PERSETUJUAN ................................................................................................. ii
PERNYATAAN ................................................................................................ iii
UCAPAN TERIMAKASIH ............................................................................... iv
ABSTRAK ......................................................................................................... vi
ABSTRACT ...................................................................................................... vii
DAFTAR ISI .................................................................................................... viii
DAFTAR TABEL .............................................................................................. xi
DAFTAR GAMBAR ........................................................................................ xii
BAB 1 PENDAHULUAN .................................................................................. 1
1.1 Latar belakang ................................................................................... 1
1.2 Rumusan Masalah ............................................................................. 2
1.3 Batasan Masalah ............................................................................... 2
1.4 Tujuan Penelitian .............................................................................. 3
1.5 Manfaat Penelitian ............................................................................ 3
1.6 Metodologi Penelitian ....................................................................... 3
1.7 Sistematika Penulisan ....................................................................... 4

BAB 2 TINJAUAN PUSTAKA ......................................................................... 5


2.1 Citra Digital ...................................................................................... 5
2.1.1 Elemen-Elemen citra digital .................................................... 8
2.1.2 Elemen Sistem Pemrosesan Citra Digital ................................ 9
2.1.3 Jenis-Jenis Citra .................................................................... 10
2.1.3.1 Citra Biner .................................................................... 10
2.1.3.2 Citra Grayscale ............................................................. 11
2.1.3.2 Citra RGB (Red, Green, Blue) atau citra warna ........... 12

Universitas Sumatera Utara


ix

2.2 Menghitung Nilai RGB Citra .......................................................... 12


2.3 Perbesaran Citra .............................................................................. 13
2.3.1 Interpolasi Dalam Perbesaran Citra ....................................... 14
2.3.2 Algoritma Interpolasi ............................................................. 14
2.3.3 Algoritma Interpolasi Liniear ................................................ 15
2.3.4 Algoritma Interpolasi Biliniear .............................................. 17
2.3.5 Algoritma Interpolasi Nearest Neighbor ................................ 19
2.3.6 Perhitungan MSE dan PSNR ................................................. 20
BAB 3 ANALISIS DAN PERANCANGAN SISTEM .................................... 22
3.1 Analisis Masalah ............................................................................. 22
3.1.1 Arsitektur Umum Perbesaran Citra ........................................ 22
3.1.2 Membaca Nilai Piksel Citra ................................................... 23
3.1.3 Melakukan Proyeksi Citra Asli .............................................. 25
3.1.4 Algoritma Interpolasi Liniear ................................................ 28
3.1.5 Algoritma Interpolasi Biliniear .............................................. 29
3.1.6 Algoritma Interpolasi Nearest Neighbor ................................ 29
3.2 Perancangan .................................................................................... 30
3.2.1 Rancangan flowchat umum .................................................... 30
3.2.2 Rancangan Antarmuka ........................................................... 30
3.2.2.1 Rancangan Menu Utama ............................................. 32
3.2.2.2 Rancangan Resizeimage ............................................. 33
3.2.2.3 Rancangan Help .......................................................... 35
3.2.2.4 Rancangan About ........................................................ 36
3.2.3 Rancangan Pengujian ............................................................. 37
3.2.3.1 Pengujian Viewer Citra ............................................... 37
3.2.3.2 Pengujian Nilai MSE dan PNSR............................................. 39
BAB 4 IMPLEMENTASI DAN PENGUJIAN ................................................ 40
4.1 Implementasi ........................................................................ 40
4.1.1 Tampilan Menu Utama ................................................ 40

Universitas Sumatera Utara


x

4.1.2 Resize Image ................................................................ 41


4.1.3 Tampilan Help.............................................................. 41
4.1.4 Tampilan About ........................................................... 41
4.2 Pengujian Sistem .................................................................. 42
4.2.1 Tampilan Pengujian Viewer Citra............................... 42
4.2.2 Tampilan Pengujian MSE dan PNSR ......................... 53
4.3 Perhitungan Interpolasi ........................................................ 55
BAB 5 KESIMPULAN DAN SARAN ................................................ 57
5.1 Kesimpulan .......................................................................... 57
5.2 Saran .................................................................................... 58
DAFTAR PUSTAKA ........................................................................... 59
Lampiran Listing Program .................................................................. A-1
Lampiran Curiculum Vitae ................................................................. B-1

Universitas Sumatera Utara


xi

DAFTAR TABEL

Tabel 2.1. Warna dan Nilai Penyusun Warna ................................................... 12


Tabel 3.1 Matriks Nilai RGB Citra Warna ....................................................... 12
Tabel 3.2 Hasil Pengujian Perbesaran Citra Format BMP dan JPG ................. 13
Tabel 4.1. Hasil Perbesaran Citra Lingkar BMP .............................................. 42
Tabel 4.2. Hasil Perbesaran Citra Mata-Mata BMP ......................................... 43
Tabel 4.3. Hasil Perbesaran Citra Traffic1 BMP .............................................. 44
Tabel 4.4. Hasil Perbesaran Citra Traffic2 BMP .............................................. 45
Tabel 4.5. Hasil Perbesaran Citra Traffic3 BMP ............................................. 46
Tabel 4.6. Hasil Perbesaran Citra Traffic4 BMP .............................................. 47
Tabel 4.7. Hasil Perbesaran Citra Traffic5 BMP .............................................. 48
Tabel 4.8. Hasil Perbesaran Citra Traffic6 BMP .............................................. 49
Tabel 4.9. Hasil Perbesaran Citra Traffic7 BMP .............................................. 50
Tabel 4.10. Hasil Perbesaran Citra Trafic8 BMP ............................................. 51
Tabel 4.11. Hasil Perbesaran Citra Traffic9 BMP ............................................ 52
Tabel 4.12. Tampilan Hasil Pengujian Citra Format BMP ............................... 53
Tabel 4.13. Tampilan Hasil Pengujian Citra Format JPG ................................ 54
Tabel 5.1.Hasil Pengujian Nilai MSE dan PNSR Format BMP ....................... 56
Tabel 5.2. Hasil Pengujian Nilai MSE dan PSNR Format JPG ........................ 56

Universitas Sumatera Utara


xii

DAFTAR GAMBAR

Gambar 2.1. Perbedaan letak titik koordinat........................................................ 6


Gambar 2.2. Hubungan antara koordinat ...... .......................................................6
Gambar 2.3. Citra dan nilai penyusunan piksel .... ...............................................7
Gambar 2.4. Notasi piksel dalam citra ...... ...........................................................7
Gambar 2.5. Elemen pemrosesan citra .................................................................9
Gambar 2.6. Citra biner ..................................................................................... 10
Gambar 2.7. Citra grayscale ............................................................................... 11
Gambar 2.8. Citra warna .................................................................................... 12
Gambar 2.9. Proses perbesaran citra .................................................................. 13
Gambar 2.10. Grafik fungsi persamaan linear ................................................... 15
Gambar 2.11. Grafik fungsi persamaan linear ................................................... 16
Gambar 2.12. Proses interpolasi pada dua titik data .......................................... 17
Gambar 2.13. Proses interpolasi bilinear pada citra digital ............................... 18
Gambar 2.14. Nilai keabuan citra asal pada operasi geometri ........................... 18
Gambar 2.15. Nilai keabuan citra asal pada operasi geometri ........................... 20
Gambar 3.1. Arsitektur umum perbandingan interpolasi perbesaran citra ........ 22
Gambar 3.2. Citra asli ........................................................................................ 23
Gambar 3.3. Contoh nilai piksel citra warna ..................................................... 24
Gambar 3.4. Proyeksi citra asli menjadi citra hasil............................................ 25
Gambar 3.5. Flowchart proses proyeksi citra asli .............................................. 26
Gambar 3.6. Flowchart proses resampling citra hasil ........................................ 27
Gambar 3.7. Flowchart proses resampling citra hasil ........................................ 28
Gambar 3.8. Flowchart umum perbesaran citra ................................................. 30
Gambar 3.9. Flowchart umum perbesaran citra ................................................. 31
Gambar 3.10. Rancangan menu utama .............................................................. 33
Gambar 3.11. Rancangan Resize Image ............................................................ 34
Gambar 3.12. Rancangan Help .......................................................................... 36
Gambar 3.13. Rancangan About ........................................................................ 36
Gambar 3.14. Rancangan Viewer citra interpolasi linear .................................. 37

Universitas Sumatera Utara


xiii

Gambar 3.15. Rancangan Viewer citra interpolasi bilinear ............................... 37


Gambar 3.16. Rancangan Viewer citra interpolasi next neighbor ..................... 38
Gambar 4.1. Tampilan menu utama ................................................................... 39
Gambar 4.2. Tampilan Resize image ................................................................. 40
Gambar 4.3. Tampilan Help............................................................................... 41
Gambar 4.4. Tampilan About ............................................................................ 41
Gambar 4.5. Tampilan Grafik Nilai MSE dan PSNR Rata-Rata Citra BMP .... 54
Gambar 4.6. Tampilan Grafik Nilai MSE dan PSNR Rata-Rata Citra JPG ...... 55

Universitas Sumatera Utara


BAB I
PENDAHULUAN

1.1 Latar Belakang

Dalam kehidupan sehari-hari manusia tidak pernah lepas dari teknologi informasi.
Seiring berjalannya waktu kebutuhan manusia akan teknologi informasi pun semakin
meningkat. Salah satu teknologi informasi yang masih perkembang pada saat ini
adalah teknologi pengolahan citra (image processing). Teknologi ini telah digunakan
seperti pada kamera digital, laptop, televisi, dan lain-lain.
Selain representasi warna yang terkandung dalam sebuah citra digital, ukuran
dari citra digital tersebut juga akan sangat berpengaruh pada proses pengolahan citra
digital. Pada beberapa kasus akuisisi citra yang dilakukan, terkadang dihasilkan
ukuran citra yang didapat tidak sesuai dengan yang diinginkan. Untuk keperluan yang
berkaitan dengan pengolahan citra digital, memerlukan citra dengan ukuran tertentu
sebagai masukan. Pada proses pattern recognition, seperti pengenalan tulisan tangan,
optical character recognition (OCR) atau pada pengenalan wajah, dapat menghasilkan
keluaran yang salah jika ukuran citra masukan yang diproses tidak sesuai. Proses-
proses dalam algoritma computer vision akan lebih mudah jika citra masukan yang
diolah adalah citra dengan ukuran tertentu. Berdasarkan hal-hal tersebut dapat
disimpulkan bahwa penentuan ukuran dari suatu citra digital sangat penting dalam
proses pengolahan citra lebih lanjut (Sutojo, 2009).
Terdapat beberapa algoritma pengubahan ukuran citra yang biasa dipakai,
yaitu replikasi pixel, interpolasi linear, bilinear, Nearst Neighbor dan bicubic.
Interpolasi disebut juga dengan istilah resampling adalah sebuah metode pencitraan
untuk meningkatkan atau mengurangi jumlah piksel dalam gambar digital. Beberapa
kamera digital menggunakan interpolasi untuk menghasilkan gambar yang lebih besar
daripada yang ditangkap sensor atau untuk membuat zoom digital. Hampir semua
perangkat lunak editing gambar mendukung satu atau lebih metode interpolasi.
Bagaimana gambar yang diperbesar bisa halus tanpa meninggalkan kesan pecah
sangat tergantung pada kecanggihan algoritma interpolasi tersebut.
Interpolasi citra merupakan salah satu masalah yang cukup penting dalam
berbagai bidang. Misalnya dalam bidang medis seperti pembesaran citra, citra yang

Universitas Sumatera Utara


2

mempunyai resolusi yang rendah dapat diambil oleh user dengan mudah pada saat
browsing dari pada citra yang mempunyai resolusi yang besar. Pada beberapa aplikasi,
untuk membuat browsing citra lebih mudah dan efektif, teknik interpolasi yang efektif
dibutuhkan untuk hal tersebut selain itu juga dibutuhkan kompleksitas perhitungan
yang rendah, dikarenakan interpolasi adalah suatu proses untuk menentukan harga
suatu fungsi pada titik-titik posisi antara suatu sampel dengan sampel tetangganya,
maka interpolasi dapat digunakan untuk proses pembesaran citra, hal ini dilakukan
dengan menyusun fungsi kontinu melalui sampel-sampel masukan diskrit. Dengan
demikian harga fungsi dapat diperoleh untuk setiap sembarang titik, tidak hanya harga
fungsi pada titik sampel. Ketelitian hasil perhitungan interpolasi atau lama waktu yang
diperlukan untuk perhitungan dari suatu algoritma interpolasi sangat tergantung pada
metode interpolasi yang digunakan. Dengan demikian metode interpolasi merupakan
sasaran disain, analisis, dan evaluasi suatu algoritma interpolasi, yang membutuhkan
pertimbangan antara sasaran ketelitian dan efisiensi.
Berdasarkan hal yang telah diuraikan diatas maka penulis berniat membuat
penelitian dengan judul Perbandingan Interpolasi Linear, Bilinear dan Nearst
Neighbor untuk Perbesaran Citra.

1.2 Rumusan Masalah

Yang menjadi rumusan masalah pada penelitian ini adalah bagaimana mendapatkan
hasil perbandingan perbesaran citra dengan menggunakan algoritma Interpolasi
Linear, Bilinear dan Nearst Neighbor.

1.3 Batasan Masalah

Adapun yang menjadi batasan masalah dalam penelitian ini adalah:


1. File citra yang diolah adalah citra warna (true color) yang berformat JPG dan
BMP.
2. Ukuran citra yang diolah maksimum 350 x 200 piksel.
3. Parameter perbandingan hasil interpolasi digunakan Mean Squared Error (MSE)
dan Peak Signal Noise Ratio (PSNR).
4. Tools pemrograman yang digunakan adalah VB .NET 2010.

Universitas Sumatera Utara


3

1.4 Tujuan Penelitian

Tujuan penelitian ini adalah untuk mendapatkan algoritma perbesaran citra yang
paling baik.

1.5 Manfaat Penelitian

Manfaat penelitian ini adalah menghasilkan aplikasi perangkat lunak untuk melakukan
perbesaran citra.

1.6 Metodologi Penelitian

Dalam penelitian ini ada beberapa tahapan yang dilakukan, yaitu :


1. Data Collection
Penelitian ini dimulai dengan melakukan pengumpulan data, yaitu proses
pengambilan data sebagai bahan referensi baik dari buku, artikel, jurnal, makalah,
situs internet yang berkaitan dengan perbuatan aplikasi perbesaran citra.
2. Data Preparation
Pada tahap ini dilakukan persiapan data yang sudah dikumpulkan untuk bahan
masukkan aplikasi komputer.
3. Analisis dan Perancangan Sistem
Proses dalam pembuatan rancangan ini meliputi pembuatan rancangan metode
perbesaran citra.
4. Implementasi Sistem
Pada tahap ini sistem yang dirancang kemudian diimplementasikan kedalam
bentuk program yang telah dipilih berdasarkan hasil analisa studi literatur yang
telah didapatkan.
5. Pengujian
Pada tahap ini dilakukan pengujian sistem yang telah dibuat apakah sitem tersebut
berjalan sesuai dengan apa yang diinginkan.
6. Dokumentasi
Data yang telah diperoleh dengan aplikasi tersebut disimpan dalam bentuk
dokumen atau laporan sebagai bahan referensi tugas akhir.

Universitas Sumatera Utara


4

1.7 Sistimatika Penulisan

BAB 1 : PENDAHULUAN
Pada bab ini merupakan bagian yang berisi mengenai latar belakang,
rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian,
metodologi penelitian, serta sistematika penulisan.

BAB 2 : LANDASAN TEORI


Bab ini akan membahas teori-teori yang berhubungan dengan pokok
pembahasan dalam penelitian ini. Pada bab ini akan dijelaskan tentang
landasan teori tentang citra digital, metode perbesaran citra, algoritma
Interpolasi Linear, Bilinear dan Nearst Neighbor serta penelitian terdahulu.

BAB 3 : ANALISIS DAN PERANCANGAN


Bab ini membahas mengenai perbesaran citra, pengenalan objek, algoritma
Interpolasi Linear, Bilinear dan Nearst Neighbor, flow chart sistem serta
perancangan antar muka aplikasi.

BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM


Pada bab ini berisi tentang Interpolasi Linear, Bilinear dan Nearst Neighbor
untuk perbesaran citra serta hasil pengujian terhadap parameter yang
digunakan.

BAB 5 : KESIMPULAN DAN SARAN


Bab ini berisi tentang kesimpulan hasil rancangan aplikasi yang telah dibuat
dan disertai dengan saran yang diberikan oleh penulis apabila aplikasi ini
ingin dikembangkan lebih lanjut.

Universitas Sumatera Utara


BAB 2
TINJAUAN PUSTAKA

2.1 Citra Digital

Secara umum, pengolahan citra digital menunjuk pada pemrosesan gambar 2D (dua
dimensi) menggunakan komputer. Ditinjau dari sudut pandang matematis, citra
merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dwimatra
(Putra, 2010). Secara matematis fungsi intensitas cahaya pada bidang dwimatra
disimbolkan dengan f(x, y), yang dalam hal ini:
(x, y) : koordinat pada bidang dwimatra
f(x, y) : intensitas cahaya (brightness) pada titik (x, y)
Suatu citra dapat didefenisikan sebagai fungsi (x,y) berukuran M baris dan N
kolom, dengan x dan y adalah koordinat spasial, dan amplitudo 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 citra tersebut adalah citra digital.
Citra digital tersusun atas sejumlah berhingga elemen, masing-masing
memiliki lokasi dan nilai/intensitas tertentu. Elemen-elemen ini disebut elemen
gambar, elemen citra, pels, dan juga piksel yang sering disebut adalah piksel (Ahmad,
2012).
Sebuah citra adalah kumpulan piksel-piksel yang disusun dalam larik dua-
dimensi. Indeks baris dan kolom (x,y) dari sebuah piksel dinyatakan dalam bilangan
bulat. Piksel (0,0) terletak pada sudut kiri atas pada citra, indeks x bergerak ke kanan
dan indeks y bergerak ke bawah. Konvensi ini dipakai merujuk pada cara penulisan
larik yang digunakan dalam pemrograman komputer (Basuki, 2005).
Hal yang berlawanan untuk arah vertikal berlaku pada kenyataan dan juga
pada sistem grafik dalam matematika yang sudah lebih dulu dikenal. Gambar 2.1
memperlihatkan perbedaan kedua sistem ini. Hubungan antara koordinat citra dan
indeks larik untuk citra yang bersangkutan dapat dilihat pada gambar 2.1 dibawah ini.
Pada contoh ini citra ditunjukkan dalam bentuk diagram berupa kumpulan segi-empat
dengan sisi-sisi yang sama. Ini disebut square tesselation, sebuah teknik yang umum
digunakan dalam menggambarkan bagaimana citra digital dibentuk.

Universitas Sumatera Utara


6

Titik origin (0,0)


y
y
Titik origin (0,0)

(a) (b)
Gambar 2.1 Perbedaan letak titik origin pada koordinat grafik dan pada citra; (a)
koordinat grafik pada matematika, (b) koordinat pada citra (Putra, 2010)

a (0,0) m kolom

(x,y)
(x,y)
 
x

y
n baris

Gambar 2.2 Hubungan antara koordinat pada citra dan indeks larik pada komputer
untuk menyimpan data citra (Putra, 2010)

Penggunaan koordinat pada sistem mempunyai sedikit perbedaan, misalnya di


MatLab, piksel pojok kanan-atas tidak mempunyai koordinat (0,0) melainkan (1,1)
dan koordinat piksel akan ditulis dengan (y,x). Citra digital yang berukuran N x M
lazim dinyatakan dengan matriks yang berukuran N baris dan M kolom sebagai
berikut:

Universitas Sumatera Utara


7

𝑓(0,0) 𝑓(0,1) ⋯ 𝑓(0, 𝑁 − 1)


𝑓(1,0) 𝑓(1,1) … 𝑓(1, 𝑁 − 1)
𝑓 𝑥, 𝑦 = ..… 1)
⋮ ⋮ ⋮ ⋮
𝑓(𝑀 − 1,0) 𝑓(𝑀 − 1,1) ⋯ 𝑓(𝑀 − 1, 𝑁 − 1)

Indeks baris (x) dan indeks kolom (y) menyatakan suatu koordinat titik pada citra,
sedangkan f(x,y) merupakan intensitas (derajat keabuan) pada titik (x,y). Gambar 3
menunjukkan ilustrasi digitalisasi citra grayscale dengan M = 12 baris dan N = 12
kolom.

6 6 6 6 6 6 6 89 237 237 237 237


6 6 89 237 237 237 6 6 89 237 237 237
6 6 89 237 237 237 237 6 6 89 237 237
6 6 89 237 237 237 237 6 6 89 237 237
6 6 89 237 237 237 237 6 6 89 237 237
6 6 89 237 237 237 6 6 89 237 237 237
6 6 6 6 6 6 6 89 237 237 237 237
6 6 6 6 6 6 89 237 237 237 237 237
6 6 89 237 237 6 6 89 237 237 237 237
6 6 89 237 237 237 6 6 89 237 237 237
6 6 89 237 237 237 237 6 6 89 237 237
6 6 89 237 237 237 237 237 6 6 89 237

(a) Citra berukuran 12 x 12 (b) Data penyusun citra 12 x 12

Gambar 2.3 Citra dan nilai penyusun piksel (Putra, 2010)

f(2,1) = 6

1 2 3 4 5 6 7 8 9 10 11 12
1 6 6 6 6 6 6 6 89 237 237 237 237
2 6 6 89 237 237 237 6 6 89 237 237 237
3 6 6 89 237 237 237 237 6 6 89 237 237
4 6 6 89 237 237 237 237 6 6 89 237 237
5 6 689 237 237 237 237 6 6 89 237 237
6 6 689 237 237 237 6 6 89 237 237 237
7 6 6 6 6 6 6 6 89 237 237 237 237
8 6 6 6 6 6 6 89 237 237 237 237 237
9 6 6 89 237 237 6 6 89 237 237 237 237
10 6 6 89 237 237 237 6 6 89 237 237 237
11 6 6 89 237 237 237 237 6 6 89 237 237
12 6 6 89 237 237 237 237 237 6 6 89 237

f(4,7) = 237

Gambar 2.4 Notasi piksel dalam citra (Putra, 2010)


Adapun Gambar 2.4 menunjukkan contoh penotasian f(y,x). Berdasarkan gambar
tersebut maka:
• f(2,1) bernilai 6
• f(4,7) bernilai 237

Universitas Sumatera Utara


8

Pada citra berskala keabuan, nilai seperti 6 atau 237 dinamakan sebagai intensitas
(Murni, 2002).

2.1.1 Elemen-Elemen Citra Digital

Citra digital mengandung sejumlah elemen-elemen dasar (Munir, 2004). Elemen-


elemen dasar yang penting diantaranya adalah:
1. Kecerahan (Brightness)
Kecerahan adalah kata lain untuk intensitas cahaya, kecerahan pada sebuah titik
(piksel) di dalam citra bukanlah intensitas yang riil, tetapi sebenarnya adalah
intensitas rata-rata dari suatu area yang melingkupinya. Sistem visual manusia
mampu menyesuaikan dirinya dengan tingkat kecerahan (brightness level) mulai
dari yang paling rendah sampai yang paling tinggi dengan jangkauan sebesar 1010.
2. Kontras (Contrast)
Kontras menyatakan sebaran terang (lightness) dan gelap (darkness) di dalam
sebuah gambar. Citra dengan kontras rendah dicirikan oleh sebagian besar
komposisi citranya adalah terang atau sebagian besar gelap. Pada citra dengan
kontras yang baik, komposisi gelap dan terang tersebar secara merata.
3. Kontur (Contour)
Kontur adalah keadaan yang ditimbulkan oleh perubahan intensitas pada pixel-pixel
yang bertetangga. Karena adanya perubahan intensitas inilah mata kita mampu
mendeteksi tepi-tepi (edge) objek di dalam citra.
4. Warna (Color)
Warna adalah persepsi yang dirasakan oleh sistem visual manusia terhadap panjang
gelombang cahaya yang dipantulkan oleh objek. Setiap warna mempunyai panjang
gelombang (λ) yang berbeda. Warna merah mempunyai panjang gelombang paling
tinggi, sedangkan warna ungu (violet) mempunyai panjang gelombang paling
rendah.
Warna-warna yang diterima oleh mata (sistem visual manusia) merupakan hasil
kombinasi cahaya dengan panjang gelombang berbeda. Penelitian memperlihatkan
bahwa kombinasi warna yang memberikan rentang warna yang paling lebar adalah
red (R), green (G), dan blue (B).

Universitas Sumatera Utara


9

5. Bentuk (Shape)
Shape adalah properti intrinsik dari objek tiga dimensi, dengan pengertian bahwa
shape merupakan properti intrinsik utama untuk sistem visual manusia. Manusia
lebih sering mengasosiasikan objek dengan bentuknya ketimbang elemen lainnya
(warna misalnya). Pada umumnya, citra yang dibentuk oleh mata merupakan citra
dwimatra (2 dimensi), sedangkan objek yang dilihat umumnya berbentuk trimatra
(3 dimensi).
6. Tekstur (texture)
Tekstur hubungan mutual antara nilai intensitas piksel-piksel yang bertetangga
yang berulang di suatu area yang luas daripada jarak hubungan tersebut.

2.1.2 Elemen Sistem Pemrosesan Citra Digital

Elemen yang terlibat dalam pemrosesan citra dapat dibagi menjadi empat komponen
(Munir, 2004):
a. Digitizer
b. Komputer digital
c. Piranti tampilan
d. Piranti penyimpanan

Media Penyimpanan

Citra Digitizer Komputer


Digital

Piranti
Tampilan

Gambar 2.5 Elemen pemrosesan citra (Munir, 2004):

Digitizer (digital image acquisition system) merupakan sistem penangkap citra


digital yang melakukan penjelajahan citra dan mengkonversinya ke representasi
numerik sebagai masukan bagi komputer digital. Hasil dari digitizer adalah matriks
yang elemen-elemennya menyatakan nilai intensitas cahaya pada suatu titik. Contoh
digitizer adalah kamera digital dan scanner.

Universitas Sumatera Utara


10

Digitizer terdiri dari tiga komponen dasar: sensor citra yang bekerja sebagai
pengukur intensitas cahaya, perangkat penjelajah yang berfungsi merekam hasil
pengukuran intensitas pada seluruh bagian citra, dan pengubah analog-ke-digital yang
berfungsi melakukan penerokan dan kuantisasi. Komputer digital yang digunakan
pada sistem pemroses citra dapat bervariasi dari komputer mikro sampai komputer
besar yang mampu melakukan bermacam-macam fungsi pada citra digital resolusi
tinggi. Piranti tampilan peraga berfungsi mengkonversi matriks intensitas yang
merepresentasikan citra ke tampilan yang dapat diinterpretasi oleh mata manusia.
Contoh piranti tampilan adalah monitor peraga dan pencetak (printer).

2.1.3 Jenis Jenis Citra

Nilai suatu pixel memiliki nilai dalam rentang tertentu, mulai dari nilai minimum
sampai nilai maksimum. Jangkauan yang digunakan berbeda-beda tergantung dari
jenis warnanya. Namun secara umum jangkauannya adalah 0 – 255, citra dengan
penggambaran seperti ini digolongkan ke dalam citra integer. Berikut adalah jenis-
jenis citra berdasarkan nilai pikselnya (Sutoyo, 2009).

2.1.3.1 Citra Biner

Citra biner merupakan citra digital yang hanya memiliki dua kemungkinan nilai piksel
yaitu hitam dan putih. Citra biner juga disebut citra B&W (black and white) atau citra
monokrom. Hanya dibutuhkan 1 bit untuk mewakili nilai setiap piksel dari citra biner.
Gradasi warna : Bit 0 = warna hitam Bit 1 = warna putih. Seperti diperlihatkan pada
gambar 2.6 dibawah ini.

Gambar 2.6 Citra Biner (Sutoyo, 2010)

Universitas Sumatera Utara


11

2.1.3.2 Citra Grayscale

Citra grayscale yaitu citra digital yang hanya memiliki satu nilai kanal pada setiap
pikselnya, 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-abu
dengan berbagai tingkatan dari hitam hingga mendekati putih. Citra grayscale berikut
memiliki kedalaman warna 8 bit ( 28 = 256 kombinasi warna keabuan) (Gonzales,
2003). Banyaknya warna tergantung pada jumlah bit yang disediakan di memori untuk
menampung kebutuhan warna ini.
Semakin besar jumlah bit warna yang disediakan di memori, semakin halus
gradasi warna citra yang ditampilkan di monitor. Seperti diperlihatkan pada gambar
2.7 dibawah ini.

Gambar 2.7 Citra Grayscale (Sutoyo, 2010)

2.1.3.3 Citra RGB (Red, Green, Blue) atau Citra Warna

Citra berwarna, atau biasa dinamakan citra RGB, merupakan jenis citra yang
menyajikan warna dalam bentuk komponen R (merah), G (hijau), dan B (biru). Setiap
komponen warna menggunakan 8 bit (nilainya berkisar antara 0 sampai dengan 255).
Dengan demikian, kemungkinan warna yang bisa disajikan mencapai 255 x 255 x 255
atau 16.581.375 warna. Tabel 2.1 dibelakang menunjukkan contoh warna dan nilai
R,G, dan B.

Universitas Sumatera Utara


12

Tabel 2.1 Warna dan nilai penyusun warna (Prasetyo, 2011)


Warna R G B
Merah 255 0 0
Hijau 0 255 0
Biru 0 0 255
Hitam 0 0 0
Putih 255 255 255

Penyimpanan citra warna di dalam memori berbeda dengan citra grayscale.


Setiap piksel dari citra grayscale 256 gradasi warna diwakili oleh 1 byte. Sedangkan 1
piksel citra warna diwakili oleh 3 byte, dimana masing – masing byte
merepresentasikan warna merah (red), hijau (green) dan biru (blue). Seperti dapat
dilihat pada gambar 2.8 dibawah ini.

Gambar 2.8 Citra Warna (Prasetyo, 2011)

2.2 Menghitung Nilai RGB Citra

Menghitung nilai RGB citra asli adalah sama dengan citra penyisip, dimana setiap
pikselnya mengandung 24-bit kandungan warna atau 8-bit untuk masing-masing
warna dasar (R, G, dan B), dengan kisaran nilai kandungan antara 0 (00000000)
sampai 255 (11111111) untuk tiap warna yang dapat ditulis sebagai berikut (Gonzales,
2003).
Red : RGB (255, 0, 0) ……….………….…………..……………....… (2.4)
Green : RGB (0, 255, 0) .…………………..………………….....……… (2.5)
Blue : RGB (0, 0, 255) …..……………….…………………....………. (2.6)

Universitas Sumatera Utara


13

Dari nilai triplet RGB persamaan (2.4) sampai (2.6) di atas dapat dikonversikan ke
dalam nilai desimal seperti dibawah ini:

Red : 255*2560 + 0*2561 + 0*2562 = 255 + 0 + 0 = 255 ……………......… (2.7)


Green : 0*2560 + 255*2561 + 0*2562 = 0 + 65,280 + 0 = 65,280 ……….….... (2.8)
Blue : 0*2560 + 0*2561 + 255*2562 = 0 + 0 + 16,711,680 = 16,711,680...... (2.9)
Rumus dasar mencari nilai RGB citra adalah:
R = COLOR And RGB(255, 0, 0) ….………………………………….….. (2.10)
G = (COLOR And RGB(0, 255, 0)) / 256 ...……..……………………...… (2.11)
B = ((COLOR And RGB(0, 0, 255)) / 256) / 256 ….……………………..…. (2.12)
Dari persamaan (2.7) sampai (2.9) diatas, rumus RGB pada persamaan (2.10) sampai
(2.12) menjadi:
Nilai R = c and 255 ………………………………….................................... (2.13)
Nilai G = (c and 65,280)/256 ..………………...………………………..…...... (2.14)
Nilai B = ((c and 16,711,680)/256)/256 …………………...……………......... (2.15)

2.3 Perbesaran Citra

Ketika sebuah citra diperbesar dengan cara memproyeksikan semua piksel dari citra
asal ke citra hasil, maka akan ada piksel-piksel kosong yang terdapat pada citra hasil.
Hal ini dikarenakan jumlah piksel yang terdapat pada citra hasil jelas akan lebih
banyak dari jumlah piksel citra asal, sehingga akan terdapat piksel-piksel pada citra
hasil yang tidak diketahui nilainya. Proses pengisian piksel-piksel yang kosong
(piksel-piksel yang tidak diketahui nilainya) menjadi bagian yang tidak terpisahkan
dari proses perbesaran citra. Tanpa proses ini, citra hasil akan menjadi tidak
sempurna. Proses pengisian ini sering disebut proses resampling.

Gambar 2.9 Proses Perbesaran citra (Zarcelonia, 2014)

Universitas Sumatera Utara


14

dimana :
Z’ adalah piksel citra hasil yang akan dicari nilainya
Z adalah titik perpotongan antara garis proyeksi Z’ ke bidang citra asal,
AX, Bx, Ay dan By adalah titik-titik referensi penentu nilai Z’
(x0, y0), (x0, y1), (x1, y0), (x1, y1) adalah titik-titik piksel citra asal di sekitar titik Z
dax adalah jarak antara titik Z ke Ax
dbx adalah jarak antara titik Z ke Bx
day adalah jarak antara titik Z ke Ay
dby adalah jarak antara titik Z ke By

2.3.1 Interpolasi dalam Perbesaran Citra

Interpolasi disebut juga dengan istilah resampling adalah sebuah metode pencitraan
untuk meningkatkan atau mengurangi jumlah piksel dalam gambar digital (Zarcelonia,
2014). Beberapa kamera digital menggunakan interpolasi untuk menghasilkan gambar
yang lebih besar daripada sensor ditangkap atau untuk membuat zoom digital. Hampir
semua perangkat lunak editing gambar mendukung satu atau lebih metode interpolasi.
Bagaimana gambar yang diperbesar bisa halus tanpa meninggalkan kesan pecah
sangat tergantung pada kecanggihan algoritma interpolasi tersebut.
Interpolasi citra bekerja dalam dua arah, dan mencoba untuk mencapai
pendekatan yang terbaik dari sebuah piksel yang warna dan intensitas yang didasarkan
pada nilai-nilai di sekitar piksel. Tidak seperti fluktuasi gradien yang ideal, nilai-nilai
piksel dapat berubah lebih jauh dari satu lokasi ke lokasi berikutnya. Jadi semakin
banyak yang diketahui tentang informasi di sekitar pixel, semakin baik dalm proses
interpolasi. Oleh karena itu semakin diperbesar, semakin banyak informasi yang harus
diketahui.

2.3.2 Algoritma Interpolasi

Algoritma non-adaptif, meliputi: tetangga terdekat, bilinear, bicubic, spline, sinc,


lanczos dan lain-lain. Tergantung pada kompleksitas, gunakan ini di antara 0 hingga
255 (atau lebih) yang berdekatan piksel ketika diinterpolasi. Semakin banyak piksel
yang berdekatan maka akan lebih akurat, tapi ini memerlukan waktu pemrosesan yang
lebih lama lagi. Algoritma ini dapat digunakan untuk mendistorsi dan merubah ukuran

Universitas Sumatera Utara


15

foto (Christanto, 2006). Algoritma adaptif, meliputi banyak algoritma yang dimiliki
oleh software berlisensi seperti Qimage, PhotoZoomPro, GenuineFractals dan lain-
lain. Banyak dari versi yang berbeda menerapkan algoritma mereka (pada basis
piksel) ketika mereka mendeteksi keberadaan tepi – bertujuan untuk meminimalkan
kesan interpolasi di daerah yang tajam. Algoritma ini terutama dirancang untuk
memaksimalkan artefak secara detail pada foto yang diperbesar.

2.3.3 Algoritma Interpolasi Liniar

Interpolasi linier merupakan metode yang digunakan untuk mengetahui nilai dari
sesuatu yang berada didalam sebuah interval atau diantara dua buah titik yang segaris.
sedangkan ekstrapolasi merupakan suatu metode menentukan sesuatu yang berada
diluar sebuah intervar atau titik titik yang segaris.
Misalkan kita mempunyai m buah data x, dan tiap-tiap x memiliki pasangan y,
yang merupakan fungsi x, dengan perkataan lain y = f(x). Untuk suatu harga, dengan
terletak diantara dua nilai x yang ada pada himpunan data, misalnya:
xk < x < xk +1
Interpolasi linear untuk meramalkan nilai y = f(x) dapat dilakukan dengan
menganggap bahwa y1 dan y2 dihubungkan oleh suatu garis lurus, seperti diperlihatkan
pada gambar 2.10 dibawah ini.

Menentukan titik-titik antara 2 buah titik dengan menggunakan pendekatan fungsi


garis lurus.

Gambar 2.10 Grafik fungsi persamaan linear (Christanto, 2006).

Universitas Sumatera Utara


16

Persamaan garis lurus yang melalui2 titik P1 (x1, y1) dan P2 (x2, y2)

Sehingga diperoleh persamaan dari interpolasi linier:

Algoritma Interpolasi linier adalah sebagai berikut:

Contoh penyelesaian Interpolasi Linear:


Cari nilai y untuk titik x (P3) = (2.1) yang berada diantara titik (1, 1.5) dan (3, 2.5)

Gambar 2.11 Grafik fungsi persamaan linear (Christanto, 2006).

Universitas Sumatera Utara


17

𝑦 −𝑦
y = 𝑥 2−𝑥 1 𝑥 − 𝑥1 + 𝑦1
2 1

2.5−1.5
y= 2.1 − 1 + 1.5
3−1

y = 2.05
Titik terbaru adalah P3 = (x,y)= (2.1, 2.05)

2.3.4 Algoritma Interpolasi Bilinear

Persamaan linear seperti diketahui, dapat diperoleh dari dua titik data. Dimana dua
data tersebut dihubungkan melalui suatu garis lurus (linear). Persamaan di atas
dimanfaatkan untuk memperkirakan suatu nilai data di antara dua titik data (Prasetyo,
2011). Memperkirakan nilai data baru di antara nilai-nilai data ini disebut interpolasi.

Gambar 2.12 Proses interpolasi pada dua titik data (Prasetyo, 2011)

Hal inilah yang selanjutnya akan dipakai dalam memperkirakan nilai-nilai


pixel baru dalam citra digital. Citra digital yang direpresentasikan dalam fungsi dua
dimensi membutuhkan proses interpolasi pada bagian vertikal dan horisontalnya.
Sehingga proses interpolasi linear yang digunakan selanjutnya disebut interpolasi
bilinear. Pada implementasi metode interpolasi bilinear pada citra digital, proses
interpolasi bilinear akan melakukan proses pada salah satu sisi dahulu (vertikal atau
horisontal) kemudian baru mengerjakan proses pada sisi yang lain (Christopher, &
Munir, 2013). Harga interpolasi yang diberikan pada suatu titik diperhitungkan
dengan memperhatikan distribusi 4 nilai pixel tetangga.

Universitas Sumatera Utara


18

Gambar 2.13 Proses interpolasi bilinear pada citra digital. (Christanto, 2006)

Keterangan:
= piksel hasil interpolasi
= piksel tetangga
X = piksel antara
Nilai pixel antara x dihitung terlebih dahulu dengan melakukan perhitungan numerik
pada pixel A(i,j) dan B(i,j+1), kemudian pixel antara y dihitung dengan melakukan
perhitungan numerik pada pixel C(i+1,j) dan D(i+1,j+1). Proses interpolasi bilinear
akan melakukan proses pada salah satu sisi dahulu (vertikal atau horisontal) kemudian
baru mengerjakan proses pada sisi yang lain. Untuk mengimplementasikan metode
interpolasi bilinear ini, berikut bagan alir yang menjelaskan proses peningkatan
resolusi citra digital dengan interpolasi bilinear.

Gambar 2.14 Nilai keabuan citra asal pada operasi geometri (Christanto, 2006)

Seperti contoh gambar 2.14 diatas, pada interpolasi bilinier, nilai keabuan dari
keempat titik yang saling bertetangga tadi memberi sumbangan terhadap nilai keabuan
hasil, dengan bobot masing-masing yang linier dengan jaraknya terhadap koordinat
yang dimaksud. Makin dekat titik tetangga tersebut, makin besar bobotnya, dan
sebaliknya makin jauh akan makin kecil bobotnya.
Keabuan output dihitung dengan penjumlahan berbobot dari keabuan input
titik-titik yang ikut menyumbang tersebut.

Universitas Sumatera Utara


19

K0   w * Ki
dari contoh diatas, bobot ke arah horisontal untuk koordinat x = 3 dan x = 4 masing-
masing adalah:
wx (3)  0.2 dan wx (4)  0.8
Perhatikan bahwa koordinat x = 3.8 lebih dekat ke x = 4 dibandingkan ke x =
3. sementara bobot ke arah vertikal untuk koordinat y = 9 dan y = 10 masing-masing
adalah:
w y (9)  0.6 dan wy (10)  0.4

Perhatikan pula bahwa jumlah bobot untuk tiap arah adalah 1. Kombinasi antara bobot
horisontal dan vertikal memberikan bobot untuk tiap titik:
w(3,9)  wx (3) * w y (9)  0.2 * 0.6  0.12
w(3,10)  wx (3) * w y (10)  0.2 * 0.4  0.08
w(4,9)  wx (4) * w y (9)  0.8 * 0.6  0.48
w(4,10)  wx (4) * w y (10)  0.8 * 0.4  0.32

Terlihat bahwa titik yang paling dekat dengan koordinat titik asal hasil
transformasi balik memiliki bobot yang paling besar (0,48), sedangkan titik terjauh
memiliki bobot yang paling kecil (0,08). Total bobot untuk keempat titik tersebut
adalah 1. Setelah semua bobot pada keempat titik bertetangga tersebut diperoleh, nilai
keabuan hasil dihitung sesuai dengan persamaan.
K 0   w * Ki  w(3,9) * K i (3,9)  w(3,10) * K i (3,10)
 w(4,9) * K i (4,9)  w(4,10) * K i (4,10)
 0.12 *100  0.08 *160  0.48 *120  0.32 * 200
 146.4  146
Karena nilai keabuan merupakan bilangan bulat, apabila hasil penjumlahan
berbobot tersebut berupa bilangan pecah, maka harus dilakukan pembulatan ke
bilangan terdekat.

2.3.5 Algoritma Interpolasi Nearest Neighbor

Algoritma Interpolasi Nearest Neighbor adalah algoritma yang implementasinya


paling mudah dan paling sederhana dalam operasi penskalaan (scalling). Nearest
Neighbor merupakan algoritma yang sering digunakan dalam melakukan zooming
image untuk editing atau untuk thumbnails preview. Algoritma ini digunakan apabila

Universitas Sumatera Utara


20

kecepatan dalam mengeksekusi adalah hal yang diutamakan. Algoritma Nearest


Neighbor memililki kelemahan pada penggunaannya, yaitu terkadang citra yang
dihasilkan menjadi bergerigi (Jaggy Image) (Budi et al, 209). Prinsip dasar algoritma
Nearest Neighbor adalah menunjuk sebuah citra digital asli sebagai dasar untuk
membangun citra digital skala baru. Citra digital skala baru yang dihasilkan bisa
berukuran lebih kecil, lebih besar atau sama dengan citra asli tergantung pada rasio
skala. Ketika melakukan operasi penskalaan, sebenarnya citra digital membuat ruang
– ruang kosong (empty pixels) pada citra digital asli yang digunakan. Pada teknik
Nearest Neighbor, titik – titik pada empty pixels akan diganti dengan pixel warna yang
sesuai dengan pixel warna pada tetangga terdekatnya, oleh karena itulah disebut
Nearest Neighbor.
Pada interpolasi nearest neighbour (tetangga terdekat), nilai keabuan titik hasil
diambil dari nilai keabuan pada titik asal yang paling dekat dengan koordinat hasil
perhitungan dari transformasi spasial. Untuk citra 2 dimensi, tetangga terdekat dipilih
di antara 4 titik asal yang saling berhubungan satu sama lain (Christanto, 2006).

Gambar 2.15 Nilai keabuan citra asal pada operasi geometri (Christanto, 2006)

Pada gambar 15 mengilustrasikan nilai keabuan sebuah citra, misalkan dari


transformasi balik sebuah titik hasil diperoleh koordinat titik asal (3.8, 9.4), maka titik
terdekatnya dipilih dari 4 buah titik yang mungkin yaitu: (3,9), (3,10), (4,9) atau
(4,10). Dengan fungsi pembulatan maka dapat ditentukan koordinat tetangga
terdekatnya adalah (4,9), sehingga nilai keabuan pada titik ini yang dipakai,
K 0 ( x' , y' )  K i (4,9)  120 .

Universitas Sumatera Utara


21

2.3.6 Perhitungan Mean Square Error (MSE) dan Peak Signal to Noise Ratio
(PSNR)
MSE didalam statistik merupakan kuadrat rata-rata dari error yaitu perbedaan
antara citra asli dengan citra hasil pengolahan. Semakin kecil nilai MSE maka citra
asli dengan citra hasil pengolahan mempunyai kesamaan. MSE digunakan untuk
mengukur rata-rata kesalahan yang berasal dari kuantitas yang akan diestimasi
(Kusumanto, 2011).
1 𝑛
MSE = 𝑁 𝑖=1(𝑆 − 𝑆𝑒 )2

Dimana MSE = Mean Square Error


N = dimensi citra
S = nilai piksel citra asli
Se = nilai piksel citra hasil pengolahan
Jika diketahui jumlah sampel (N) 10 (S-Se) (S-Se)2
S1 = 50 S1e = 50 S-Se = 0 0
S2 = 40 S2e = 55 S-Se = 15 225
S3 = 30 S3e = 30 S-Se = 0 0
S4 =0 S4e = 15 S-Se = 15 225
S5 = 80 S5e = 75 S-Se = 5 25
S6 = 110 S6e = 100 S-Se = 10 100
S7 = 30 S7e = 30 S-Se = 0 0
S8 = 20 S8e = 20 S-Se = 0 0
S9 = 10 S9e = 20 S-Se = 10 100
S10 = 10 S10e = 10 S-Se = 0 0
∑ (S-Se)2 675
MSE = 1/10 x (675) = 67.5
𝑁𝑚𝑎𝑥
PSNR = 10 x log10 ( 𝑀𝑆𝐸
)

Nmax = 110
110
PSNR = 10 x log ( 67.5
)
110
PSNR = 10 x log ( )
8.21

PSNR = 10 x log(13.39)
PSNR = 10 x 1.12
PSNR = 11,2

Universitas Sumatera Utara


BAB 3
ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis masalah

Bab ini membahas perbandingan perbesaran citra digital menggunakan Interpolasi


Linear, Bilinear dan Nearst Neighbor untuk serta tahap-tahap yang akan dilakukan
dalam perancangan sistem yang akan dibangun. File citra yang dibesarkan adalah citra
warna (true color) yang berformat JPG dan BMP yang berdimensi maksimum 32 x
32 piksel dan parameter perbandingan hasil interpolasi menggunakan Mean Squared
Error (MSE) dan Peak Signal Noise Ratio (PSNR).
Langkah-langkah proses perbesaran citra yang dilakukan adalah:
a. Membaca nilai piksel citra asli.
b. Menghitung nilai Red Green Blue (RGB) citra
c. Memproyeksikan semua piksel dari citra asli ke citra hasil
d. Melakukan proses resampling yaitu pengisian piksel-piksel yang kosong dari hasil
proyeksi dengan algoritma Interpolasi Linear, Bilinear dan Nearst Neighbor.
e. Menghitung nilai MSE dan PSNR citra hasil resampling.

3.1.1 Arsitektur Umum Perbesaran Citra

Arsitektur umum perbesaran citra pada penelitian ini dapat dilihat seperti pada
Gambar 3.1.

Citra Asli Menproyeksikan citra Pembacaan nilai piksel citra

Resampling Interpolasi
Hitung MSE & PSNR Linear, Bilinear dan
Nearst Neighbor

Kesimpulan

Gambar 3.1 Arsitektur Umum Perbandingan Interpolasi pada Perbesaran Citra

Universitas Sumatera Utara


23

Keterangan:
1. Input file citra adalah pemilihan file citra oleh user yang berformat JPG
maupun BMP.
2. Melakukan proyeksi citra asli ke citra hasil.
3. Baca nilai piksel citra adalah pembacaan nilai intensitas piksel citra.
4. Melakukan resampling menggunakan algoritma interpolasi Linear, Bilinear
dan Nearst Neighbor.
5. Membandingkan hasil resampling dengan ke tiga algoritma diatas.
6. Hitung nilai MSE dan PSNR.
7. Buat kesimpulan

3.1.2 Membaca Nilai Piksel Citra

Pada citra input pada umumnya adalah citra warna 24-bit (true color) nilai pikselnya
terdiri dari 3 byte yaitu nilai Red Green dan Blue (RGB) terdapat dalam data bitmap
berbentuk biner. Untuk membaca nilai RGB-nya, dilakukan dengan membaca data
bitmap yang panjangnya 3 byte, masing-masing byte menyatakan komponen R, G, dan
B. Setiap byte data merepresentasikan 8 bit jadi pada citra warna ada 3 byte x 8 bit =
24 bit kandungan warna. Citra warna 24 bit dapat dilihat seperti pada Gambar 3.2.

Gambar 3.2 Citra Asli

Pada citra asli pada Gambar 3.2 di atas, tiap pixel-nya mengandung 24-bit
kandungan warna atau 8-bit untuk masing-masing warna dasar (R, G, dan B), dengan
selang nilai warna antara 0 (00000000) sampai 255 (11111111) untuk tiap warna.
Sebagai contoh data bitmap citra warna di atas adalah seperti pada Gambar 3.3.

Universitas Sumatera Utara


24

<Header> Piksel 1 Piksel 2


<data bitmap>
1100001110100100111101001100001101011010010011011011
01101011010011110001100100001011111011111000
Piksel n
100101001111011111110001
1001000010010100100000011111000010110110111100011100
01001000010010110001

Gambar 3.3 Contoh Nilai Piksel Citra Warna

Pada contoh citra Gambar 3.3 di atas, data pertama adalah header yang berisi
informasi nama file, jenis format dan dimensi citra. Nilai piksel (0,0) adalah
110000111010010011110100. Nilai RGB dihitung dengan persamaan 2.2, 2.3 dan 2.4
sebagai berikut:
Nilai R = 110000111010010011110100 mod 100000000 = 1111 0100 = 244
Nilai G = (110000111010010011110100 and 1111111100000000)/100000000
= 1010 0100= 164 (desimal)
Nilai B= (110000111010010011110100 and
111111110000000000000000) / 10000000000000000
= 1100 0011 = 195 (desimal)
Sehingga diperoleh nilai piksel (0,0) 11110000 11110000 11111111:
R= 11110001 = 244 (desimal)
G= 10110100 = 164 (desimal)
B= 10010000 = 195 (desimal)
Dalam analisa ini jumlah piksel yang dihitung sebanyak 25 piksel saja dan
untuk mendapatkan nilai RGB piksel selanjutnya dilakukan sama seperti cara di atas
dan selanjutnya nilai RGB semua nilai piksel pada citra dimasukkan ke dalam matriks
seperti pada Tabel 3.1.
Tabel 3.1 Matriks Nilai RGB Citra Warna
R G B R G B R G B R G B R G B
244,164,195 200,162,12 210,180,200 200,100,28 20,100,110
120,180,10 271,100,200 210,177,220 200,100,200 114,105,100
150,180,200 120,180,200 77,150,200 240,200,200 100,100,100
110,190,100 200,180,200 200,100,200 200,170,200 80,150,200
144,160,100 140,170,245 192,100,200 200,200,200 10,130,120

Universitas Sumatera Utara


25

3.1.3 Melakukan Proyeksi Citra Asli

Pada penelitian ini dilakukan diperbesar citra dengan cara memproyeksikan semua
piksel dari citra asli ke citra hasil, maka akan ada piksel-piksel kosong yang terdapat
pada citra hasil. Hal ini dikarenakan jumlah piksel yang terdapat pada citra hasil jelas
akan lebih banyak dari jumlah piksel citra asli, sehingga akan terdapat piksel-piksel
pada citra hasil yang tidak diketahui nilainya. Proses pengisian piksel-piksel yang
kosong yang merupakan piksel-piksel yang tidak diketahui nilainya menjadi bagian
dari proses perbesaran citra yang disebut proses resampling. Proses proyeksi piksel
citra asli ke citra hasil ini dapat dijelaskan sebagai berikut:

Z’

Z day’

dby’
’ ’
dax dbx

Citra Asli Citra Hasil


Gambar 3.4 Proyeksi Citra Asli menjadi Citra hasil
Pada Gambar 3.4 diatas, piksel yang berwarna putih adalah piksel yang akan dicari
nilainya dengan cara resampling.
dimana:
Z’ adalah piksel citra hasil yang akan dicari nilainya
Z adalah titik perpotongan antara garis proyeksi Z’ ke bidang citra asal,
AX, Bx, Ay dan By adalah titik-titik referensi penentu nilai Z’
(x0, y0) , (x0, y1) , (x1, y0) , (x1, y1) adalah titik-titik piksel citra
asal di sekitar titik Z
dax adalah jarak antara titik Z ke Ax
dbx adalah jarak antara titik Z ke Bx
day adalah jarak antara titik Z ke Ay
dby adalah jarak antara titik Z ke By
Proses proyeksi piksel citra asli ke citra hasil ini dapat dijelaskan dalam diagram alur
(flowchart) seperti pada Gambar 3.5.

Universitas Sumatera Utara


26

Start

Input Citra Asli Baca & skala perbesaran

X=0

Y=0

Tidak

X mod skala=0
Y mod Skala =0

Ya

Nilai Piksel(x,y) Citra Hasil =


Piksel(x/skala,y/skala) citra asli

Y=Y+1

Tidak

Y=Tinggi citra asli x skala

Ya

X=X+1

Tidak

X=Lebar citra asli x skala

Ya

Citra Hasil Proyeksi

Stop

Gambar 3.5 Flowchart Proses Proyeksi Citra Asli

Universitas Sumatera Utara


27

Flowchart Proses pengisian piksel-piksel yang kosong (Resampling) dapat dilihat


seperti pada Gambar 3.6.

Start

Input Citra Asli & Baca skala perbesaran

X=0

Y=0

Tidak

X mod skala<> 0
Y mod Skala <> 0

Ya

dax= x / skala mod 1


day= y / skala mod 1
dbx= 1- dax, dby= 1- day
x0 = roundDown(x/skala)
x1 = roundUp(x/skala)
y0 = roundDown(y/skala)
y1 = roundUp(y/skala)

Nilai Piksel (x,y)=


dbx.dby.nilai piksel(x0,y0) citra asli +
dbx.day.nilai piksel(x0,y1) citra asli +
dax.dby.nilai piksel(x1,y0) citra asli +
dax.dby.nilai piksel(x1,y1) citra asli

Y=Y+1

A B C

Gambar 3.6 Flowchart Proses Resampling Citra Hasil

Universitas Sumatera Utara


28

A B C
Tidak

Y=Tinggi citra asli x skala

Ya

X=X+1

Tidak

X=Lebar citra asli x skala

Ya

Citra Hasil Resampling

Stop

Gambar 3.7 Flowchart Proses Resampling Citra Hasil (Lanjutan)

3.1.4 Algoritma Interpolasi Linear

Interpolasi linear untuk meramalkan nilai y = f(x) dapat dilakukan dengan


menganggap bahwa y1 dan y2 dihubungkan oleh suatu garis lurus. Langkah-langkah
algoritma Interpolasi Linear adalah sebagai berikut:
1. Tentukan dua titik P1 dan P2 dengan kordinat masing-masing (x1,y2) dan (x1,y2).
2. Tentukan nilai x dari titik yang akan dicari.
3. Hitung nilai y dengan rumus:
𝑦2−𝑦1
y= (x-x1) + y1 …………………………………………………….. (3.1)
𝑥2−𝑥1

4. Tampilkan nilai titik yang baru.


Misalkan sebuah gambar dengan pixel 3 x 3 dan dilakukan pembesaran 2 kali maka
proses dari metode interpolasi linier adalah sebagai berikut:
New height = tinggi pixel yang dicari
New width = lebar pixel yang dicari

Universitas Sumatera Utara


29

Old height = tinggi pixel sebelumnya


Old width = lebar pixel sebelumnya
Scale = pembesaran yang dilakukan
New height = Old height * Scale
=3*2
=6
New width = Old width * Scale
=3*2
=6
Maka matriks citra setelah perbesaran dapat dilihat seperti pada Gambar 3.8.

0 100 0 130 0 200


200 0 144 0 22 0
0 80 0 100 0 10
20 0 100 0 29 0
150 0 200 0 115 0
200 0 180 0 40 0

Gambar 3.8 Matriks Citra Sesudah Perbesaran

Untuk mencari nilai pixel f(0,0) yang bernilai 0 maka digunakan persamaan:
𝑓(𝑦1)−𝑓(𝑦0)
f(x) = f(x0) + 𝑥1−𝑥0
(x-x0) + y0

dimana:
f(x) = intensitas warna RGB titik yang dicari
f(x0) = intensitas warna RGB titik sebelah kiri
f(x1) = intensitas warna RGB sebelah kanan
x0 = posisi titik sebalah kiri
x1 = posisi titik sebelah kanan
x = titik yang dicari
200−0
f(0,0) = 0 + (0-0)
100−0

f(0,0) = 0
nilai pixel f(0,1)

Universitas Sumatera Utara


30

0−144
f(0,0) = 0 + 130−100 (0-100)

f(0,0) = 480 ~ > 255 = 255


Untuk piksel selanjutnya caranya sama dengan yang diatas.
Maka matriks citra setelah interpolasi dapat dilihat seperti pada Gambar 3.8.

3.1.5 Algoritma Interpolasi Bilinear

Proses interpolasi bilinear akan melakukan proses pada salah satu sisi dahulu (vertikal
atau horisontal) kemudian baru mengerjakan proses pada sisi yang lain. Harga
interpolasi yang diberikan pada suatu titik diperhitungkan dengan memperhatikan
distribusi 4 nilai pixel tetangga.

Gambar 3.9 Nilai keabuan citra asal pada operasi geometri

Pada gambar 3.9 mengilustrasikan nilai keabuan sebuah citra, misalkan dari
transformasi balik sebuah titik hasil diperoleh koordinat titik asal (3.8, 9.4), maka titik
terdekatnya dipilih dari 4 buah titik yang mungkin yaitu: (3,9), (3,10), (4,9) atau
(4,10). Dengan fungsi pembulatan maka dapat ditentukan koordinat tetangga
terdekatnya adalah (4,9), sehingga nilai keabuan pada titik ini yang dipakai,
K 0 ( x' , y' )  K i (4,9)  120 .
Seperti contoh Gambar 3.9 diatas, pada interpolasi bilinier, nilai keabuan dari
keempat titik yang saling bertetangga tadi memberi sumbangan terhadap nilai keabuan
hasil, dengan bobot masing-masing yang linier dengan jaraknya terhadap koordinat
yang dimaksud. Makin dekat titik tetangga tersebut, makin besar bobotnya, dan
sebaliknya makin jauh akan makin kecil bobotnya.
Keabuan output dihitung dengan penjumlahan berbobot dari keabuan input
titik-titik yang ikut menyumbang tersebut.
K0   w * Ki

Universitas Sumatera Utara


31

dari contoh diatas, bobot ke arah horisontal untuk koordinat x = 3 dan x = 4 masing-
masing adalah:
wx (3)  0.2 dan wx (4)  0.8
Perhatikan bahwa koordinat x = 3.8 lebih dekat ke x = 4 dibandingkan ke x = 3.
sementara bobot ke arah vertikal untuk koordinat y = 9 dan y = 10 masing-masing
adalah:
w y (9)  0.6 dan wy (10)  0.4

Perhatikan pula bahwa jumlah bobot untuk tiap arah adalah 1. Kombinasi antara bobot
horisontal dan vertikal memberikan bobot untuk tiap titik:
w(3,9)  wx (3) * w y (9)  0.2 * 0.6  0.12
w(3,10)  wx (3) * w y (10)  0.2 * 0.4  0.08
w(4,9)  wx (4) * w y (9)  0.8 * 0.6  0.48
w(4,10)  wx (4) * w y (10)  0.8 * 0.4  0.32

Terlihat bahwa titik yang paling dekat dengan koordinat titik asal hasil
transformasi balik memiliki bobot yang paling besar (0,48), sedangkan titik terjauh
memiliki bobot yang paling kecil (0,08). Total bobot untuk keempat titik tersebut
adalah 1.
Setelah semua bobot pada keempat titik bertetangga tersebut diperoleh, nilai keabuan
hasil dihitung sesuai dengan persamaan.
K 0   w * Ki  w(3,9) * K i (3,9)  w(3,10) * K i (3,10)
 w(4,9) * K i (4,9)  w(4,10) * K i (4,10)
 0.12 *100  0.08 *160  0.48 *120  0.32 * 200
 146.4  146
Karena nilai keabuan merupakan bilangan bulat, apabila hasil penjumlahan
berbobot tersebut berupa bilangan pecah, maka harus dilakukan pembulatan ke
bilangan terdekat.

3.1.6 Algoritma Interpolasi Nearst Neighbor

Pada interpolasi nearest neighbor (tetangga terdekat), nilai keabuan titik hasil diambil
dari nilai keabuan pada titik asal yang paling dekat dengan koordinat hasil perhitungan
dari transformasi spasial. Untuk citra 2 dimensi, tetangga terdekat dipilih di antara 4
titik asal yang saling berhubungan satu sama lain.

Universitas Sumatera Utara


32

Pada interpolasi nearest neighbour (tetangga terdekat), nilai keabuan titik hasil
diambil dari nilai keabuan pada titik asal yang paling dekat dengan koordinat hasil
perhitungan dari transformasi spasial. Untuk citra 2 dimensi, tetangga terdekat dipilih
di antara 4 titik asal yang saling berhubungan satu sama lain.

Gambar 3.10 Nilai keabuan citra asal pada operasi geometri

Pada Gambar 3.10 mengilustrasikan nilai keabuan sebuah citra, misalkan dari
transformasi balik sebuah titik hasil diperoleh koordinat titik asal (3.8, 9.4), maka titik
terdekatnya dipilih dari 4 buah titik yang mungkin yaitu: (3,9), (3,10), (4,9) atau
(4,10). Dengan fungsi pembulatan maka dapat ditentukan koordinat tetangga
terdekatnya adalah (4,9), sehingga nilai keabuan pada titik ini yang dipakai,
K 0 ( x' , y' )  K i (4,9)  120 .

3.2 Perancangan

Dalam merancang perangkat lunak yang berorientasi ramah bagi pengguna (user
friendy), maka diperlukan sebuah tampilan antar muka (user interface) yang mudah
digunakan serta informatif.
Adapun rancangan yang dibangun adalah:
a. Rancangan Flowchart
b. Rancangan Antarmuka

Universitas Sumatera Utara


33

3.2.1 Rancangan Flowchart

a. Flowchart Linier

Flowchart Umum Perbesaran citra dengan algoritma Interpolasi Linear dapat dilihat
seperti pada Gambar 3.11.

Mulai

Tentukan fungsi f(x)


tentukan interval

Hitung nilai
f(x)

Xi+1 X0 = f(Xi+1)
Xi+1 X0 f(Xi+1) – f(Xi)

Tidak Apakah f(Xo)


mendekati 0

Ya

Hasil

stop

Gambar 3.11 flowchart metode linear

Universitas Sumatera Utara


34

b. Flowchart Bilinier

Flowchart Umum Perbesaran citra dengan algoritma Interpolasi Bilinear dapat dilihat
seperti pada Gambar 3.12.

Start

Input Citra, Jumlah Perbesaran


Pilih Algoritma

Membaca File Citra Input

Mengidentifikasi Matriks Citra

Menghitung Nilai Interpolasi pada Citra

Menyisipkan nilai hasil perhitungan


Interpolasi pada matriks citra awal

Tidak
Jumlah Perbesaran Sudah
Terpenuhi?

Ya

Tampilkan Citra Hasil Interpolasi

Simpan Citra Hasil Interpolasi

Membaca Citra Pembanding

Universitas Sumatera Utara


35

Hitung MSE dan PSNR

Stop

Gambar 3.12 Flowchart metode Bilinear

Berdasarkan Gambar 3.12, proses perbesaran citra dimulai saat penginputan


citra dimensi 16 x 16 piksel dalam format RGB (true color) adalah sebagai berikut:
1. Input citra warna berformat jpg dan bmp.
2. Kemudian dilakukan proses pemrosesan awal yang meliputipembacaan nilaai
piksel citra.
3. Kemudian menghitung nilai interpolasi masing-masing algoritma.
4. Lakukan proses resampling ke citra hasil.
5. Tampilkan citra hasil interpolasi.
6. Simpan citra hasil interpolasi.
7. Bandingkan citra hasil interpolasi dari segi tampilan citra (viwer) dan nilaim
MSE dan PSNR.

3.2.2 Rancangan Antarmuka

Dalam membangun aplikasi perbandingan perbesaran citra digital menggunakan


Interpolasi Linear, Bilinear dan Nearst Neighbor perlu adanya perancangan antar
muka yang berfungsi sebagai perantara sistem dengan pengguna (user interface).
Dalam perancangan interface diharapkan dapat tercipta kemudahan bagi pengguna
(user friendly) dalam mengoperasikan sistem ini. Rancangan tampilan yang akan
bangun adalah:
1. Merancang Menu Utama yang berfungsi sebagai tempat untuk menampilkan
Judul Tugas Akhir, gambar latar serta sub menu aplikasi.
2. Merancang program perbesaran citra (Resize Image).

Universitas Sumatera Utara


36

3. Merancang tampilan About, yang terdiri dari :


a. Tampilan judul tugas akhir
b. Tampilan profil penulis serta foto.
c. Tampilan logo sebagai identitas perguruan tinggi.
d. Tombol berfungsi sebagai tombol untuk keluar.
4. Merancang tampilan Help, yang terdiri dari :
1. Tampilan judul tugas akhir
2. Tampilan penjelasan singkat tentang aplikasi serta cara kerja sistem.
3. Tombol berfungsi sebagai tombol untuk keluar.

3.2.2.1 Rancangan Menu Utama

Rancangan Menu Utama merupakan tampilan yang muncul setelah pengguna


melakukan login. Pada rancangan ini terdapat judul aplikasi, gambar latar serta sub
menu antara lain ResizeImage, Help, About serta Close. Rancangan Menu Utama
terlihat seperti pada Gambar 3.13.

ResizeImage Help About Close

GAMBAR LATAR

Gambar 3.13 Rancangan Menu Utama

Universitas Sumatera Utara


37

Keterangan :
Pada halaman menu utama yang terdapat gambar latar dan terdapat tampilan sub menu
pilihan aplikasi yang dapat diakses setelah pengguna berhasil melakukan otoritas
pengguna sub Menu pada menu Utama terdiri dari menu ResizeImage, Help, About
serta tombol Close, yang berfungsi sebagai berikut:
1. Sub Menu ResizeImage berfungsi untuk melakukan perbesaran citra.
2. Menu Help berfungsi untuk menampilkan halaman bantuan.
3. Menu About berfungsi untuk menampilkan halaman keterangan.
4. Menu Exit berfungsi untuk keluar dari halaman menu utama.

3.2.2.2 Rancangan ResizeImage

Rancangan ResizeImage berfungsi untuk melakukan perbesaran citra dengan


menggunakan algoritma Interpolasi Linear, Bilinear dan Nearst Neighbor. Rancangan
ResizeImage dapat dilihat seperti pada Gambar 3.14.

Citra Asli Citra Hasil Citra Hasil Citra Hasil


Algoritma Linear Algoritma Algoritma Nearst
Bilinear Neighbor

1 2 3 4

Nama File xxx 5 Nama File xxx 8 Nama File xxx 12 Nama File xxx 16
xx xx xx Dimensi xx
Size xxx 6 Dimensi
xxx 9 Dimensi
xxx 13 xxx 17
x x x x
Dimensi xxx Size xxx Size xxx Size xxx
7 10 14 18
x x x x
MSE/PSNR MSE/PSNR MSE/PSNR xxx
xxx xxx 15 19
11
x x x

Load Linear Bilinear Nearst Neighbor Clear Close

20 21 22 23 24 25

Gambar 3.14 Rancangan ResizeImage


Keterangan:
1. Picture Box : berfungsi untuk menampilkan citra asli yang hendak di-resize.

Universitas Sumatera Utara


38

2. Picture Box : berfungsi untuk menampilkan citra hasil resize dengan algoritma
Interpolasi Linear.
3. Picture Box : berfungsi untuk menampilkan citra hasil resize dengan algoritma
Interpolasi Bilinear.
4. Picture Box : berfungsi untuk menampilkan citra hasil resize dengan algoritma
Interpolasi Nearst Neighbor.
5. TextBox : berfungsi untuk menampilkan nama file citra asli.
6. TextBox : berfungsi untuk menampilkan ukuran file citra asli.
7. TextBox : berfungsi untuk menampilkan dimenasi file citra asli.
8. TextBox : berfungsi untuk menampilkan nama file citra hasil Interpolasi Linear.
9. TextBox : berfungsi untuk menampilkan dimensi citra hasil Interpolasi Linear.
10. TextBox : berfungsi untuk menampilkan size citra hasil Interpolasi Linear.
11. TextBox : berfungsi untuk menampilkan MSE dan PSNR citra hasil Interpolasi
Linear.
12. TextBox : berfungsi untuk menampilkan nama file citra hasil Interpolasi
Bilinear.
13. TextBox : berfungsi untuk menampilkan dimensi citra hasil Interpolasi Bilinear.
14. TextBox : berfungsi untuk menampilkan size citra hasil Interpolasi Bilinear.
15. TextBox : berfungsi untuk menampilkan MSE dan PSNR citra hasil Interpolasi
Bilinear.
16. TextBox : berfungsi untuk menampilkan nama file citra hasil Interpolasi Nearst
Neighbor.
17. TextBox : berfungsi untuk menampilkan dimensi citra hasil Interpolasi Nearst
Neighbor.
18. TextBox : berfungsi untuk menampilkan size citra hasil Interpolasi Nearst
Neighbor.
19. TextBox : berfungsi untuk menampilkan MSE dan PSNR citra hasil Interpolasi
Nearst Neighbor.
20. Button : berfungsi untuk melakukan memanggil file citra asli.
21. Button : berfungsi untuk melakukan perbesaran citra dengan algoritma
Interpolasi Linear.
22. Button : berfungsi untuk melakukan perbesaran citra dengan algoritma
Interpolasi Bilinear.

Universitas Sumatera Utara


39

23. Button : berfungsi untuk melakukan perbesaran citra dengan algoritma


Interpolasi Nearst Neighbor.
24. Button : berfungsi untuk membersihkan form.
25. Button : berfungsi untuk menutup tampilan form.

3.2.2.3 Rancangan Help

Rancangan Help adalah rancangan sederhana yang terdiri dari objek Label-label serta
gambar. Tampilan ini dirancang untuk menampilkan informasi tentang persiapan awal
mengenai perangkat keras yang digunakan serta tata cara pengoperasian aplikasi yang
dijelaskan tahap demi tahap. Untuk lebih jelasnya rancangan Help dapat dilihat pada
Gambar 3.15.

PERBANDINGAN INTERPOLASI LINEAR, BILINEAR DAN


NEARST NEIGHBOR UNTUK PERBESARAN CITRA

Persiapan Awal Penjelasan Sistem


XXXXXXXXXXXX XXXXXXXXXXXXX
XXXXXXXXXXXX XXXXXXXXXXXXX
XXXXXXXXXXXXX
XXXXXXXXXXXXX

Gambar 3.15 Rancangan Help

3.2.2.4 Rancangan About

Rancangan About adalah tampilan sederhana yang hanya memiliki satu tombol yaitu
tombol Quit. Rancangan ini berfungsi untuk menampilkan informasi tentang profil
penulis. Profil penulis meliputi biodata singkat penulis serta data-data akademik
berupa nama mahasiswa, Nomor Induk Mahasiswa, Nama Perguruan Tinggi tempat
mahasiswa, serta gambar latar belakang. Untuk lebih jelasnya rancangan About dapat
dilihat pada Gambar 3.16.

Universitas Sumatera Utara


40

PERBANDINGAN INTERPOLASI LINEAR, BILINEAR DAN


NEARST NEIGHBOR UNTUK PERBESARAN CITRA

Nama Penulis
Foto Penulis NIM Logo
Kampus

Gambar 3.16 Rancangan About


Keterangan:
Tampilan foto penulis bersifat tambahan saja (optional) karena foto penulis bisa
diganti dengan foto rancangan perangkat keras sistem.

3.2.3 Rancangan Pengujian

Pengujian sistem adalah pengumpulan data hasil perbandingan perbesaran citra


menggunakan algoritma Interpolasi Linear, Bilinear dan Nearst Neighbor. Pengujian
aplikasi terdiri dari dua bagian:
a. Pengujian Viewer Citra
b. Pengujian MSE dan PSNR

3.2.3.1 Pengujian Viewer Citra

Pengujian Viewer Citra berfungsi untuk melakukan pengujian secara kasat mata
antara citra asli dengan citra hasil interpolasi Linear, Bilinear dan Nearst Neighbor.
Pengujian Viewer Citra dapat dilihat seperti pada Gambar 3.17.

Universitas Sumatera Utara


41

Citra Asli
Citra Hasil Interpolasi Linear

Gambar 3.17 Rancangan Viwer Citra Interpolasi Linear

Citra Asli
Citra Hasil Interpolasi Bilinear

Gambar 3.18 Rancangan Viwer Citra Interpolasi Bilinear

Citra Asli
Citra Hasil Interpolasi Nearst Neighbor

Gambar 3.19 Rancangan Viwer Citra Interpolasi Nearst Neighbor

Universitas Sumatera Utara


42

3.2.3.2 Pengujian Nilai MSE dan PSNR

Pengujian Nilai MSE dan PSNR Citra berfungsi untuk melakukan pengujian dengan
menghitung nilai error antara citra asli dengan citra hasil interpolasi Linear, Bilinear
dan Nearst Neighbor. Rancangan Hasil Pengujian Perbesaran citra menggunakan
algoritma Interpolasi Linear, Bilinear dan Nearst Neighbor dapat dilihat pada Tabel
3.2.
Tabel 3.2 Rancangan Hasil Pengujian Perbesaran Citra Format mbp dan jpg

Linear Bilinear Nearst Neighbor


No Nama File Dimensi MSE PSNR MSE PSNR MSE PSNR
Citra (piksel)
xx xxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxxx xxxx
xx xxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxxx xxxx
xx xxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxxx xxxx
xx xxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxxx xxxx
xx xxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxxx xxxx
xx xxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxxx xxxx
xx xxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxxx xxxx
xx xxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxxx xxxx
xx xxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxxx xxxx
xx xxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxxx xxxx
xx xxxxxxxx xxxx xxxx xxxx xxxx xxxx xxxxx xxxx
Rata-rata xxxx xxxx xxxx xxxx xxxxx xxxx

Universitas Sumatera Utara


BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Aplikasi Perbandingan Interpolasi Linear, Bilinear dan Nearst Neighbor untuk


Perbesaran Citra adalah tampilan hasil rancangan dari penulisan kode program
dimulai dari program Menu Utama, Resize Image, Help, About serta Close.

4.1.1 Tampilan Menu Utama

Tampilan Menu Utama berisi gambar latar serta tampilan menu. Tampilan Menu
terdiri dari Resize Image, Help, About serta Close yang dapat dilihat seperti pada
Gambar 4.1.

Gambar 4.1 Tampilan Menu Utama

Universitas Sumatera Utara


44

4.1.2 Resize Image

Tampilan Resize Image merupakan tampilan berguna untuk melakukan perbandingan


perbesaran citra menggunakan algoritma Interpolasi Linear, Bilinear dan Nearst
Neighbor. Tampilan Resize Image dapat dilihat pada Gambar 4.2

Gambar 4.2 Tampilan Resixe Image

Pada Gambar 4.2 diatas terlihat pemasukan citra bola yang diperbesar dengan
algoritma Interpolasi Linear, Bilinear dan Nearst Neighbor. Algoritma Linear
menghasilkan MSE untuk = 86337.6 dan PSNR= -25.29, Algoritma Bilinear
menghasilkan MSE untuk = 81112.41 dan PSNR= -25.02, Algoritma Nearst Neighbor
menghasilkan MSE untuk = 95885.26 dan PSNR= -25.75.

4.1.3 Tampilan Help

Tampilan Help berfungsi untuk menampilkan keterangan tentang cara pengoperasian


perbandingan perbesaran citra menggunakan algoritma Interpolasi Linear, Bilinear
dan Nearst Neighbor. Tampilan Help dapat dilihat pada Gambar 4.3.

Universitas Sumatera Utara


45

Gambar 4.3 Tampilan Help

4.1.4 Tampilan About

Tampilan About berfungsi untuk menampilkan keterangan tentang penulis skripsi


perbandingan perbesaran citra menggunakan algoritma Interpolasi Linear, Bilinear
dan Nearst Neighbor. Tampilan About dapat dilihat pada Gambar 4.4.

Gambar 4.4 Tampilan About

4.2 Pengujian Sistem

Universitas Sumatera Utara


46

Pengujian sistem adalah pengumpulan data hasil perbandingan perbesaran citra


menggunakan algoritma Interpolasi Linear, Bilinear dan Nearst Neighbor. Pengujian
aplikasi terdiri dari dua bagian:
1. Pengujian Viewer Citra
2. Pengujian MSE dan PSNR

4.2.1 Tampilan Pengujian Viewer Citra

Tampilan Pengujian Viewer citra adalah perbandingan perbesaran citra menggunakan


algoritma Interpolasi Linear, Bilinear dan Nearst Neighbor dilakukan dengan
membandingkan tampilan citra asli sebelum perbesaran dengan citra hasil perbesaran
yang dapat dilihat seperti pada Tabel 4.1. dibawah ini.

Tabel 4.1 Hasil Perbesaran Citra Lingkar.bmp


No Keterangan Citra Citra Hasil Resize MSE PSNR
Asli
1 Citra Hasil 86.337,6 -25.29

Resise
Algoritma Dimensi
Interpolasi 32 x 32
Linear Piksel.

Size
3KB

2 Citra Hasil 81.112,41 -25.02

Resise
Algoritma
Interpolasi
Bilinear

Universitas Sumatera Utara


47

3 Citra Hasil 95,885.26 -25.72

Resise
Algoritma
Interpolasi
Nearst
Neighbor

Tabel 4.2 Hasil Perbesaran Citra Mata mata.bmp


No Keterangan Citra Citra Hasil Resize MSE PSNR
Asli
1 Citra Hasil 86.337,6 -25.29

Resise
Algoritma Dimensi
Interpolasi 32 x 32
Linear Piksel.

Size
3KB

2 Citra Hasil 81.112,41 -25.02

Resise
Algoritma
Interpolasi
Bilinear

Universitas Sumatera Utara


48

3 Citra Hasil 95,885.26 -25.72

Resise
Algoritma
Interpolasi
Nearst
Neighbor

Tabel 4.3 Hasil Perbesaran Citra Traffic1.bmp


No Keterangan Citra Citra Hasil Resize MSE PSNR
Asli
1 Citra Hasil 63.500,98 -23.96

Resise
Algoritma Dimensi
Interpolasi 16 x 16
Linear Piksel.

Size 1
KB

2 Citra Hasil 54.588,67 -23.30

Resise
Algoritma
Interpolasi
Bilinear

Universitas Sumatera Utara


49

3 Citra Hasil 63.500,98 -23.96

Resise
Algoritma
Interpolasi
Nearst
Neighbor

Tabel 4.4 Hasil Perbesaran Citra Traffic2.bmp


No Keterangan Citra Citra Hasil Resize MSE PSNR
Asli
1 Citra Hasil 14.990,22 -17.69

Resise
Algoritma Dimensi
Interpolasi 16 x 16
Linear Piksel.

Size 1
KB

2 Citra Hasil 14.774,02 -17.62

Resise
Algoritma
Interpolasi
Bilinear

Universitas Sumatera Utara


50

3 Citra Hasil 14.990,22 -17.69

Resise
Algoritma
Interpolasi
Nearst
Neighbor

Tabel 4.5 Hasil Perbesaran Citra Traffic3.bmp


No Keterangan Citra Citra Hasil Resize MSE PSNR
Asli
1 Citra Hasil 23.552,25 -19.65

Resise
Algoritma Dimensi
Interpolasi 16 x 16
Linear Piksel.

Size 1
KB

2 Citra Hasil 21.741,72 -19.30

Resise
Algoritma
Interpolasi
Bilinear

Universitas Sumatera Utara


51

3 Citra Hasil 23.552,25 -19.65

Resise
Algoritma
Interpolasi
Nearst
Neighbor

Tabel 4.6 Hasil Perbesaran Citra Traffic4.bmp


No Keterangan Citra Citra Hasil Resize MSE PSNR
Asli
1 Citra Hasil 7.962,39 -14.94

Resise
Algoritma Dimensi
Interpolasi 16 x 16
Linear Piksel.

Size 1
KB

2 Citra Hasil 7.797,79 -14.85

Resise
Algoritma
Interpolasi
Bilinear

3 Citra Hasil 7.962,39 -14.94

Universitas Sumatera Utara


52

Resise
Algoritma
Interpolasi
Nearst
Neighbor

Tabel 4.7 Hasil Perbesaran Citra Traffic5.bmp


No Keterangan Citra Citra Hasil Resize MSE PSNR
Asli
1 Citra Hasil 29.412,3 -20.61

Resise
Algoritma Dimensi
Interpolasi 16 x 16
Linear Piksel.

Size 1
KB

2 Citra Hasil R 28.053,33 -20.41

esise
Algoritma
Interpolasi
Bilinear

Universitas Sumatera Utara


53

3 Citra Hasil 29.412,3 -20.61

Resise
Algoritma
Interpolasi
Nearst
Neighbor

Tabel 4.8 Hasil Perbesaran Citra Traffic6.bmp


No Keterangan Citra Citra Hasil Resize MSE PSNR
Asli
1 Citra Hasil 29.820,23 -20.67

Resise
Algoritma Dimensi
Interpolasi 16 x 16
Linear Piksel.

Size 1
KB

2 Citra Hasil R 25.619,18 -25.02

esise
Algoritma
Interpolasi
Bilinear

Universitas Sumatera Utara


54

3 Citra Hasil 35.486,47 -21.43

Resise
Algoritma
Interpolasi
Nearst
Neighbor

Tabel 4.9 Hasil Perbesaran Citra Traffic7.bmp


No Keterangan Citra Citra Hasil Resize MSE PSNR
Asli
1 Citra Hasil 37.482.59 -21.67

Resise
Algoritma Dimensi
Interpolasi 16 x 16
Linear Piksel.

Size 1
KB

2 Citra Hasil 32.890,51 -21.10

Resise
Algoritma
Interpolasi
Bilinear

Universitas Sumatera Utara


55

3 Citra Hasil 37.482,59 -21.67

Resise
Algoritma
Interpolasi
Nearst
Neighbor

Tabel 4.10 Hasil Perbesaran Citra Traffic8.bmp


No Keterangan Citra Citra Hasil Resize MSE PSNR
Asli
1 Citra Hasil 37.562,27 -21.68

Resise
Algoritma Dimensi
Interpolasi 16 x 16
Linear Piksel.

Size 1
KB

2 Citra Hasil R 29.942,65 -20.69

esise
Algoritma
Interpolasi
Bilinear

Universitas Sumatera Utara


56

3 Citra Hasil 37.562,27 -21.68

Resise
Algoritma
Interpolasi
Nearst
Neighbor

Tabel 4.11 Hasil Perbesaran Citra Traffic9.bmp


No Keterangan Citra Citra Hasil Resize MSE PSNR
Asli
1 Citra Hasil 42.196,45 -22.18

Resise
Algoritma Dimensi
Interpolasi 16 x 16
Linear Piksel.

Size 1
KB

2 Citra Hasil 38.576,33 -21.79

Resise
Algoritma
Interpolasi
Bilinear

Universitas Sumatera Utara


57

3 Citra Hasil 45.904,59 -22.55

Resise
Algoritma
Interpolasi
Nearst
Neighbor

4.2.2 Tampilan Perhitungan MSE dan PSNR

Tampilan Pengujian MSE dan PSNR adalah perbandingan perbesaran citra


menggunakan algoritma Interpolasi Linear, Bilinear dan Nearst Neighbor dilakukan
dengan membandingkan nilai error citra asli sebelum dan sesudah perbesaran.
Tampilan Pengujian MSE dan PSNR dibagi menjadi dua kelompok yaitu kelompok
citra berformat Bmp dan Jpg.
Berikut perhitungan MSE dan PSNR
1. perhitungan MSE dan PSNR untuk Lingkaran..jpg

a. Perhitungan MSE dan PSNR Linier

MSE = (1/1024)*8.8409

= 0.00097*8.8409

MSE = 86337.6

PSNR = 10*log10 (255/86337.6)

= 10*log10 (0.002953)

PSNR = -25.29

Universitas Sumatera Utara


58

b. Bilinier

MSE = (1/1024)*8.30591

= 0.00097*8.30591

MSE = 81112,41

PSNR = 10*log10 (255/81112,41)

= 10*log10 (0.00314)

PSNR = -25.02

c. Nearst Neighbor

MSE = (1/1024)*9,81865
= 0.00097*9,81865
MSE = 95885,26

PSNR = 10*log10 (255/95885.26)

= 10*log10 (0.00265)
PSNR = -25.75

2. perhitungan MSE dan PSNR untuk Lingkaran..bmp

a. Perhitungan MSE dan PSNR Linier

MSE = (1/1024)*8.8409
= 0.00097*8.8409
MSE = 86337.6

PSNR = 10*log10 (255/86337.6)

= 10*log10 (0.00295)
PSNR = -25.29

b. Billinier

MSE = (1/1024)*8.30591
= 0.00097*8.30591
MSE = 8.1112.41

Universitas Sumatera Utara


59

PSNR = 10*log10 (255/81112.41)

= 10*log10 (0.00314)
PSNR = -25.02
c. Nearst Neighbor

MSE = (1/1024)*9.818
= 0.00097*9.818
MSE = 95885.26

PSNR = 10*log10 (255/95885.26)

= 10*log10 (0.00265)
PSNR = -25.75

Hasil pengujiann perbesaran dengan format Bmp dapat dilihat pada Tabel 4.12.

Tabel 4.12 Tampilan Hasil Pengujian citra format Bmp


Linear Bilinear Nearst Neighbor
No Nama File Dimensi MSE PSNR MSE PSNR MSE PSNR
Citra (piksel)
1 Lingkar.bmp 32 x 32 86337.6 -25.29 81112.41 -25.02 95885.26 -25.72
2 Mata.bmp 32 x 32 30654.47 -20.79 30213.4 -20.73 32575.75 -21.06
3 Traffic1.bmp 16 x 16 63500.98 -23.96 54588.67 -23.30 63500.98 -23.96
4 Traffic2.bmp 16 x 16 14990.22 -17.69 14774.02 -17.62 14990.22 -17.69
5 Traffic3.bmp 16 x 16 23552.25 -19.65 21741.72 -19.30 23552.25 -19.65
6 Traffic4.bmp 16 x 16 7962.39 -14.94 7797.79 -14.85 7962.39 -14.94
7 Traffic5.bmp 16 x 16 29412.3 -20.61 28053.33 -20.41 29412.3 -20.61
8 Traffic6.bmp 16 x 16 29820.23 -20.67 25619.18 -20.02 35486.47 -21.43
9 Traffic7.bmp 16 x 16 37482.59 -21.67 32890.51 -21.10 37482.59 -21.67
10 Traffic8.bmp 16 x 16 37562.27 -21.68 29942.65 -20.69 37562.27 -21.68
11 Traffic9.bmp 16 x 16 42196.45 -22.18 38576.33 -21.79 45904.59 -22.55
Rata-rata 36,679.25 -20.83 33,210.00 -20.43 38,574.09 -20.99
Dari tabel 4.1 diatas dapat dibuat grafik nilai rata-rata MSE dan PSNR untuk
citra format BMP seperti pada Gambar 4.5.

Universitas Sumatera Utara


60

45,000.00
40,000.00
35,000.00
30,000.00
25,000.00
MSE
20,000.00
PSNR
15,000.00
10,000.00
5,000.00
0.00
-5,000.00 Linear Bilinear NN

Gambar 4.5 Tampilan Grafik Nilai MSE dan PSNR Rata-rata Citra BMP

1. Hasil pengujiann perbesaran dengan format Jpg dapat dilihat pada Tabel 4.13.

Tabel 4.13 Tampilan Hasil Pengujian citra format JPG


Linear Bilinear Nearst Neighbor
No Nama File Dimensi MSE PSNR MSE PSNR MSE PSNR
Citra (piksel)
1 Lingkar.jpg 32 x 32 86337.6 -25.29 81112.41 -25.02 95885.26 -25.75
2 Mata mata. 32 x 32 30654.47 -20.79 30213.4 -20.73 32575.75 -21.06
Jpg
3 Traffic1.jpg 16 x 16 63500.98 -23.96 54588.67 -23.30 63500.98 -23.96
4 Traffic2.jpg 16 x 16 14990.22 -17.69 14774.02 -17.62 14990.22 -17.69
5 Traffic3.jpg 16 x 16 23552.25 -19.65 21741.72 -19.30 23552.25 -19.65
6 Traffic4.jpg 16 x 16 7962.39 -14.94 7797.79 -14.85 7962.39 -14.94
7 Traffic5.jpg 16 x 16 29412.3 -20.61 28053.33 -20.41 29412.3 -20.61
8 Traffic6.jpg 16 x 16 29820.23 -20.67 25619.18 -20.02 35486.47 -21.43
9 Traffic7.jpg 16 x 16 37482.59 -21.67 32890.51 -21.10 37482.59 -21.67
10 Traffic8.jpg 16 x 16 37562.27 -21.68 29942.65 -20.69 37562.27 -21.68
11 Traffic9.jpg 16 x 16 42196.45 -22.18 38576.33 -21.79 45904.59 -22.55
Rata-rata 36,679.25 -20.83 33,210.00 -20.43 38,574.09 -23.04
Dari tabel 4.13 diatas dapat dibuat grafik nilai rata-rata MSE dan PSNR untuk citra
format JPG seperti pada Gambar 4.6.

Universitas Sumatera Utara


61

45,000.00
40,000.00
35,000.00
30,000.00
25,000.00
MSE
20,000.00
PSNR
15,000.00
10,000.00
5,000.00
0.00
-5,000.00 Linear Bilinear NN

Gambar 4.6 Tampilan Grafik Nilai MSE dan PSNR Rata-rata citra JPG

4.3 Perhitungan Interpolasi

Misalkan sebuah gambar dengan pixel 3 x 3 dan dilakukan pembesaran 2 kali maka
proses dari metode interpolasi linier adalah sebagai berikut:
New height = tinggi pixel yang dicari
New width = lebar pixel yang dicari
Old height = tinggi pixel sebelumnya
Old width = lebar pixel sebelumnya
Scale = pembesaran yang dilakukan
New height = Old height * Scale
=3*2
=6
New width = Old width * Scale
=3*2
=6
Maka matriknya:

Universitas Sumatera Utara


62

0 100 0 130 0 200


200 0 144 0 22 0
0 80 0 100 0 10
20 0 100 0 29 0
150 0 200 0 115 0
200 0 180 0 40 0

Untuk mencari nilai pixel f(0,0) yang bernilai 0 maka digunakan persamaan:
𝑓(𝑦1)−𝑓(𝑦0)
f(x) = f(x0) + 𝑥1−𝑥0
(x-x0) + y0

dimana:
f(x) = intensitas warna RGB titik yang dicari
f(x0) = intensitas warna RGB titik sebelah kiri
f(x1) = intensitas warna RGB sebelah kanan
x0 = posisi titik sebalah kiri
x1 = posisi titik sebelah kanan
x = titik yang dicari
200−0
f(0,0) = 0 + (0-0)
100−0

f(0,0) = 0
nilai pixel f(0,1)
0−144
f(0,0) = 0 + 130−100 (0-100)

f(0,0) = 480 ~ > 255 = 255


Untuk piksel selanjutnya caranya sama dengan yang diatas

Universitas Sumatera Utara


BAB 5
KESIMPULAN DAN SARAN

5.1 Kesimpulan

Setelah merancang dan mengaplikasikan perangkat lunak Aplikasi perbandingan


perbesaran citra menggunakan algoritma Interpolasi Linear, Bilinear dan Nearst
Neighbor, maka diperoleh hasil pengujian adalah sebagai berikut:
1. Aplikasi dapat melakukan perbesaran citra berformat Bmp dan Jpg menggunakan
algoritma Interpolasi Linear, Bilinear dan Nearst Neighbor.
2. Hasil pengujian perbesaran citra antara format BMP dan JPG sebanyak 11
sampel, dan dapat disimpulkan bahwa metode bilinear lebih unggul dibandingkan
metode linear dan Nearst Neighbor, dimana dapat dilihat pada data berikut ;
a. Untuk format citra BMP
Tabel 5.1 Hasil Pengujian Nilai MSE dan PSNR Format BMP
Algoritma MSE rata-rata PSNR rata-rata
Linear 36,679.25 -20.83
Bilinear 33,210.00 -20.43
Nearst Neighbor 38,574.09 -20.99

b. Untuk format citra JPG:


Tabel 5.2 Hasil Pengujian Nilai MSE dan PSNR Format JPG
Algoritma MSE rata-rata PSNR rata-rata
Linear 36,679.25 -20.83
Bilinear 33,210.00 -20.43
Nearst Neighbor 38,574.09 -23.04

Universitas Sumatera Utara


64

5.2 Saran

Setiap penelitian tentu tidak lepas dari kekurangan dan terus berkembang mengikuti
perkembangan teknologi, oleh karena itu penulis memberikan saran untuk penelitian
selanjutnya.

Adapun saran-saran yang untuk penelitian maupun pengembangan berikutnya


adalah:
1. Membandingkan hasil perbesaran dengan menggunakan algoritma yang lebih
maju antara lain algoritma genetika.
2. Melakukan perbesaran citra dengan skala yang dibuat bervariasi seperti 5 %, 10
% sampai ke 100 %.
3. Menambah fiture aplikasi perbesaran citra yang dibangun agar dapat melakukan
pengolahan citra sebelum dilakukan perbesaran, antara penambahan kontras,
ketajaman dan kecerahan.

Universitas Sumatera Utara


65

DAFTAR PUSTAKA

Christopher, E. & Munir, R. 2013. Pengembangan Algoritma Pengubahan Ukuran


Citra Berbasiskan Analisis Gradien Dengan Pendekatan Polinomial.
Jurnal Sarjana Institut Teknologi Bandung bidang Teknik Elektro dan
Informatika. School of Electrical Engineering and Informatics, Institute
Technology of Bandung, 10th Ganeca Street, Bandung, Indonesia.

Zarcelonia, Z. 2014. Perancangan Aplikasi Perbesaran Citra dengan Metode Proyeksi


Cahaya. Jurusan Teknik Elektro, Fakultas Teknik, Universitas
Tanjungpura.

Christanto, R., Sanubari, J., & Timotius, I. K. 2006. Peningkatan Resolusi Citra
Digital dengan Interpolasi Bilinear. Jurnal Fakultas Teknik – UKSW.

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

Sutoyo et al. 2009. Teori Pengolahan citra digital. Yogyakarta. Penerbit ANDI.

Gonzales, R.C., Richard E.W. 2003. Digital Image Processing. Addison-Wesley


Publishing Company Inc. USA.

Munir, R. 2004. Pengolahan Citra Digital dengan Pendekatan Algoritmik, Bandung:


Penerbit Informatika.

Prasetyo, E. 2011. Pengolahan Citra Digital dan Aplikasinya menggunakan


MATLAB.Yogyakarta. Penerbit: ANDI.

Murni, A. 2002. Pengantar Pengolahan Citra, Elex Media Komputindo.

Kusban, M. 2012. Perbaikan Citra Melalui Proses Pengolahan Piksel. Prosiding


Seminar Nasional Aplikasi Sains & Teknologi (SNAST) Yogyakarta 3
November 2012. Jurusan Teknik Elektro Universitas Muhammadiyah
Surakarta.

Universitas Sumatera Utara


A-1

LISTING PROGRAM PERBESARAN CITRA

Imports System.IO
Imports System.Drawing
Imports System.Drawing.Imaging
Public Class frmResizeImg1

Inherits System.Windows.Forms.Form
Dim ItemList1 As New ArrayList()
Dim ItemList2 As New ArrayList()
Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar
Dim ItemList3 As New ArrayList()
Friend WithEvents lblDimensi1 As System.Windows.Forms.Label
Friend WithEvents Label11 As System.Windows.Forms.Label
Friend WithEvents lblDimensi2 As System.Windows.Forms.Label
Friend WithEvents Label13 As System.Windows.Forms.Label
Friend WithEvents lblDimensi3 As System.Windows.Forms.Label
Friend WithEvents Label17 As System.Windows.Forms.Label
Friend WithEvents SaveFileDialog1 As System.Windows.Forms.OpenFileDialog
Friend WithEvents SaveD As System.Windows.Forms.SaveFileDialog
Friend WithEvents lblFile1 As System.Windows.Forms.Label
Friend WithEvents Label19 As System.Windows.Forms.Label
Friend WithEvents lblFile2 As System.Windows.Forms.Label
Friend WithEvents Label20 As System.Windows.Forms.Label
Friend WithEvents lblFile3 As System.Windows.Forms.Label
Friend WithEvents Label21 As System.Windows.Forms.Label
Friend WithEvents lblSize1 As System.Windows.Forms.Label
Friend WithEvents Label22 As System.Windows.Forms.Label
Friend WithEvents lblSize2 As System.Windows.Forms.Label
Friend WithEvents Label23 As System.Windows.Forms.Label
Friend WithEvents lblSize3 As System.Windows.Forms.Label
Friend WithEvents Label25 As System.Windows.Forms.Label
Friend WithEvents Label18 As System.Windows.Forms.Label
Friend WithEvents Label24 As System.Windows.Forms.Label
Friend WithEvents Label26 As System.Windows.Forms.Label
Friend WithEvents Label27 As System.Windows.Forms.Label
Friend WithEvents Label7 As System.Windows.Forms.Label
Dim Dimensi As Integer
#Region " Windows Form Designer generated code "

Public Sub New()


MyBase.New()
InitializeComponent()
End Sub
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
Private components As System.ComponentModel.IContainer

Friend WithEvents picOriginal As System.Windows.Forms.PictureBox


Friend WithEvents picLinear As System.Windows.Forms.PictureBox
Friend WithEvents picBilinear As System.Windows.Forms.PictureBox
Friend WithEvents Label1 As System.Windows.Forms.Label

Universitas Sumatera Utara


A-2

Friend WithEvents btnProses1 As System.Windows.Forms.Button


Friend WithEvents btnProses2 As System.Windows.Forms.Button
Friend WithEvents btnProses3 As System.Windows.Forms.Button
Friend WithEvents picNearestNeighbor As System.Windows.Forms.PictureBox
Friend WithEvents btnLoad As System.Windows.Forms.Button
Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
Friend WithEvents btnClear As System.Windows.Forms.Button
Friend WithEvents btnClose As System.Windows.Forms.Button
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
Friend WithEvents lblDimensi As System.Windows.Forms.Label
Friend WithEvents Label5 As System.Windows.Forms.Label
Friend WithEvents lblFile As System.Windows.Forms.Label
Friend WithEvents lblSize As System.Windows.Forms.Label
Friend WithEvents Label4 As System.Windows.Forms.Label
Friend WithEvents Label6 As System.Windows.Forms.Label
Friend WithEvents pbLinear As System.Windows.Forms.ProgressBar
Friend WithEvents pbBilinear As System.Windows.Forms.ProgressBar
Friend WithEvents pbNN As System.Windows.Forms.ProgressBar
Friend WithEvents lblMSE1 As System.Windows.Forms.Label
Friend WithEvents Label8 As System.Windows.Forms.Label
Friend WithEvents lblPSNR1 As System.Windows.Forms.Label
Friend WithEvents Label9 As System.Windows.Forms.Label
Friend WithEvents lblPSNR2 As System.Windows.Forms.Label
Friend WithEvents Label10 As System.Windows.Forms.Label
Friend WithEvents lblMSE2 As System.Windows.Forms.Label
Friend WithEvents Label12 As System.Windows.Forms.Label
Friend WithEvents lblPSNR3 As System.Windows.Forms.Label
Friend WithEvents Label14 As System.Windows.Forms.Label
Friend WithEvents lblMSE3 As System.Windows.Forms.Label
Friend WithEvents Label16 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
Me.picOriginal = New System.Windows.Forms.PictureBox()
Me.picLinear = New System.Windows.Forms.PictureBox()
Me.picBilinear = New System.Windows.Forms.PictureBox()
Me.Label1 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.btnProses1 = New System.Windows.Forms.Button()
Me.btnProses2 = New System.Windows.Forms.Button()
Me.btnProses3 = New System.Windows.Forms.Button()
Me.picNearestNeighbor = New System.Windows.Forms.PictureBox()
Me.btnLoad = New System.Windows.Forms.Button()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.btnClose = New System.Windows.Forms.Button()
Me.btnClear = New System.Windows.Forms.Button()
Me.Label3 = New System.Windows.Forms.Label()
Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
Me.lblDimensi = New System.Windows.Forms.Label()
Me.Label5 = New System.Windows.Forms.Label()
Me.lblFile = New System.Windows.Forms.Label()
Me.lblSize = New System.Windows.Forms.Label()
Me.Label4 = New System.Windows.Forms.Label()
Me.Label6 = New System.Windows.Forms.Label()
Me.pbLinear = New System.Windows.Forms.ProgressBar()
Me.pbBilinear = New System.Windows.Forms.ProgressBar()
Me.pbNN = New System.Windows.Forms.ProgressBar()
Me.lblMSE1 = New System.Windows.Forms.Label()
Me.Label8 = New System.Windows.Forms.Label()
Me.lblPSNR1 = New System.Windows.Forms.Label()

Universitas Sumatera Utara


A-3

Me.Label9 = New System.Windows.Forms.Label()


Me.lblPSNR2 = New System.Windows.Forms.Label()
Me.Label10 = New System.Windows.Forms.Label()
Me.lblMSE2 = New System.Windows.Forms.Label()
Me.Label12 = New System.Windows.Forms.Label()
Me.lblPSNR3 = New System.Windows.Forms.Label()
Me.Label14 = New System.Windows.Forms.Label()
Me.lblMSE3 = New System.Windows.Forms.Label()
Me.Label16 = New System.Windows.Forms.Label()
Me.ProgressBar1 = New System.Windows.Forms.ProgressBar()
Me.lblDimensi1 = New System.Windows.Forms.Label()
Me.Label11 = New System.Windows.Forms.Label()
Me.lblDimensi2 = New System.Windows.Forms.Label()
Me.Label13 = New System.Windows.Forms.Label()
Me.lblDimensi3 = New System.Windows.Forms.Label()
Me.Label17 = New System.Windows.Forms.Label()
Me.SaveFileDialog1 = New System.Windows.Forms.OpenFileDialog()
Me.SaveD = New System.Windows.Forms.SaveFileDialog()
Me.lblFile1 = New System.Windows.Forms.Label()
Me.Label19 = New System.Windows.Forms.Label()
Me.lblFile2 = New System.Windows.Forms.Label()
Me.Label20 = New System.Windows.Forms.Label()
Me.lblFile3 = New System.Windows.Forms.Label()
Me.Label21 = New System.Windows.Forms.Label()
Me.lblSize1 = New System.Windows.Forms.Label()
Me.Label22 = New System.Windows.Forms.Label()
Me.lblSize2 = New System.Windows.Forms.Label()
Me.Label23 = New System.Windows.Forms.Label()
Me.lblSize3 = New System.Windows.Forms.Label()
Me.Label25 = New System.Windows.Forms.Label()
Me.Label18 = New System.Windows.Forms.Label()
Me.Label24 = New System.Windows.Forms.Label()
Me.Label26 = New System.Windows.Forms.Label()
Me.Label27 = New System.Windows.Forms.Label()
Me.Label7 = New System.Windows.Forms.Label()
CType(Me.picOriginal,
System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.picLinear,
System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.picBilinear,
System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.picNearestNeighbor,
System.ComponentModel.ISupportInitialize).BeginInit()
Me.GroupBox1.SuspendLayout()
Me.SuspendLayout()
'
'picOriginal
'
Me.picOriginal.BorderStyle =
System.Windows.Forms.BorderStyle.FixedSingle
Me.picOriginal.Location = New System.Drawing.Point(12, 26)
Me.picOriginal.Name = "picOriginal"
Me.picOriginal.Size = New System.Drawing.Size(300, 250)
Me.picOriginal.TabIndex = 0
Me.picOriginal.TabStop = False
'
'picLinear
'
Me.picLinear.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.picLinear.Location = New System.Drawing.Point(357, 25)
Me.picLinear.Name = "picLinear"

Universitas Sumatera Utara


A-4

Me.picLinear.Size = New System.Drawing.Size(300, 250)


Me.picLinear.SizeMode =
System.Windows.Forms.PictureBoxSizeMode.AutoSize
Me.picLinear.TabIndex = 1
Me.picLinear.TabStop = False
'
'picBilinear
'
Me.picBilinear.BorderStyle =
System.Windows.Forms.BorderStyle.FixedSingle
Me.picBilinear.Location = New System.Drawing.Point(684, 26)
Me.picBilinear.Name = "picBilinear"
Me.picBilinear.Size = New System.Drawing.Size(300, 250)
Me.picBilinear.SizeMode =
System.Windows.Forms.PictureBoxSizeMode.AutoSize
Me.picBilinear.TabIndex = 2
Me.picBilinear.TabStop = False
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(682, 6)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(192, 16)
Me.Label1.TabIndex = 3
Me.Label1.Text = "Citra Hasil Interpolasi Bilinear"
'
'Label2
'
Me.Label2.Location = New System.Drawing.Point(356, 6)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(228, 16)
Me.Label2.TabIndex = 4
Me.Label2.Text = "Citra Hasil Interpolasi Linear"
'
'btnProses1
'
Me.btnProses1.Location = New System.Drawing.Point(112, 27)
Me.btnProses1.Name = "btnProses1"
Me.btnProses1.Size = New System.Drawing.Size(84, 29)
Me.btnProses1.TabIndex = 5
Me.btnProses1.Text = "Linear"
Me.btnProses1.UseVisualStyleBackColor = True
'
'btnProses2
'
Me.btnProses2.Location = New System.Drawing.Point(202, 27)
Me.btnProses2.Name = "btnProses2"
Me.btnProses2.Size = New System.Drawing.Size(80, 29)
Me.btnProses2.TabIndex = 6
Me.btnProses2.Text = "Bilinear"
Me.btnProses2.UseVisualStyleBackColor = True
'
'btnProses3
'
Me.btnProses3.Location = New System.Drawing.Point(288, 27)
Me.btnProses3.Name = "btnProses3"
Me.btnProses3.Size = New System.Drawing.Size(100, 29)
Me.btnProses3.TabIndex = 7
Me.btnProses3.Text = "Nearest Neighbor"
Me.btnProses3.UseVisualStyleBackColor = True
'

Universitas Sumatera Utara


A-5

'picNearestNeighbor
'
Me.picNearestNeighbor.BorderStyle =
System.Windows.Forms.BorderStyle.FixedSingle
Me.picNearestNeighbor.Location = New System.Drawing.Point(1002, 26)
Me.picNearestNeighbor.Name = "picNearestNeighbor"
Me.picNearestNeighbor.Size = New System.Drawing.Size(300, 250)
Me.picNearestNeighbor.SizeMode =
System.Windows.Forms.PictureBoxSizeMode.AutoSize
Me.picNearestNeighbor.TabIndex = 8
Me.picNearestNeighbor.TabStop = False
'
'btnLoad
'
Me.btnLoad.Location = New System.Drawing.Point(22, 27)
Me.btnLoad.Name = "btnLoad"
Me.btnLoad.Size = New System.Drawing.Size(84, 29)
Me.btnLoad.TabIndex = 9
Me.btnLoad.Text = "Load"
Me.btnLoad.UseVisualStyleBackColor = True
'
'GroupBox1
'
Me.GroupBox1.Controls.Add(Me.btnClose)
Me.GroupBox1.Controls.Add(Me.btnClear)
Me.GroupBox1.Controls.Add(Me.btnLoad)
Me.GroupBox1.Controls.Add(Me.btnProses3)
Me.GroupBox1.Controls.Add(Me.btnProses1)
Me.GroupBox1.Controls.Add(Me.btnProses2)
Me.GroupBox1.Location = New System.Drawing.Point(13, 406)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(571, 65)
Me.GroupBox1.TabIndex = 10
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "Tombol"
'
'btnClose
'
Me.btnClose.Location = New System.Drawing.Point(485, 27)
Me.btnClose.Name = "btnClose"
Me.btnClose.Size = New System.Drawing.Size(80, 29)
Me.btnClose.TabIndex = 11
Me.btnClose.Text = "Close"
Me.btnClose.UseVisualStyleBackColor = True
'
'btnClear
'
Me.btnClear.Location = New System.Drawing.Point(394, 27)
Me.btnClear.Name = "btnClear"
Me.btnClear.Size = New System.Drawing.Size(80, 29)
Me.btnClear.TabIndex = 10
Me.btnClear.Text = "Clear"
Me.btnClear.UseVisualStyleBackColor = True
'
'Label3
'
Me.Label3.Location = New System.Drawing.Point(999, 6)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(171, 16)
Me.Label3.TabIndex = 11
Me.Label3.Text = "Citra Hasil Interpolasi Nearest Neighbor"

Universitas Sumatera Utara


A-6

'
'OpenFileDialog1
'
Me.OpenFileDialog1.FileName = "OpenFileDialog1"
'
'lblDimensi
'
Me.lblDimensi.BorderStyle =
System.Windows.Forms.BorderStyle.FixedSingle
Me.lblDimensi.Location = New System.Drawing.Point(69, 362)
Me.lblDimensi.Name = "lblDimensi"
Me.lblDimensi.Size = New System.Drawing.Size(243, 18)
Me.lblDimensi.TabIndex = 136
'
'Label5
'
Me.Label5.Location = New System.Drawing.Point(10, 363)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(53, 18)
Me.Label5.TabIndex = 135
Me.Label5.Text = "Dimensi"
'
'lblFile
'
Me.lblFile.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblFile.Location = New System.Drawing.Point(69, 311)
Me.lblFile.Name = "lblFile"
Me.lblFile.Size = New System.Drawing.Size(243, 18)
Me.lblFile.TabIndex = 134
'
'lblSize
'
Me.lblSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblSize.Location = New System.Drawing.Point(69, 340)
Me.lblSize.Name = "lblSize"
Me.lblSize.Size = New System.Drawing.Size(67, 18)
Me.lblSize.TabIndex = 133
'
'Label4
'
Me.Label4.Location = New System.Drawing.Point(9, 341)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(51, 18)
Me.Label4.TabIndex = 132
Me.Label4.Text = "Size"
'
'Label6
'
Me.Label6.AutoSize = True
Me.Label6.Location = New System.Drawing.Point(10, 315)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(54, 13)
Me.Label6.TabIndex = 131
Me.Label6.Text = "Nama File"
'
'pbLinear
'
Me.pbLinear.Location = New System.Drawing.Point(359, 281)
Me.pbLinear.Name = "pbLinear"
Me.pbLinear.Size = New System.Drawing.Size(298, 19)
Me.pbLinear.TabIndex = 137

Universitas Sumatera Utara


A-7

'
'pbBilinear
'
Me.pbBilinear.Location = New System.Drawing.Point(685, 282)
Me.pbBilinear.Name = "pbBilinear"
Me.pbBilinear.Size = New System.Drawing.Size(299, 19)
Me.pbBilinear.TabIndex = 138
'
'pbNN
'
Me.pbNN.Location = New System.Drawing.Point(1002, 282)
Me.pbNN.Name = "pbNN"
Me.pbNN.Size = New System.Drawing.Size(300, 19)
Me.pbNN.TabIndex = 139
'
'lblMSE1
'
Me.lblMSE1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblMSE1.Location = New System.Drawing.Point(417, 386)
Me.lblMSE1.Name = "lblMSE1"
Me.lblMSE1.Size = New System.Drawing.Size(67, 18)
Me.lblMSE1.TabIndex = 141
'
'Label8
'
Me.Label8.Location = New System.Drawing.Point(357, 386)
Me.Label8.Name = "Label8"
Me.Label8.Size = New System.Drawing.Size(50, 18)
Me.Label8.TabIndex = 140
Me.Label8.Text = "MSE"
'
'lblPSNR1
'
Me.lblPSNR1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblPSNR1.Location = New System.Drawing.Point(558, 386)
Me.lblPSNR1.Name = "lblPSNR1"
Me.lblPSNR1.Size = New System.Drawing.Size(67, 18)
Me.lblPSNR1.TabIndex = 143
'
'Label9
'
Me.Label9.Location = New System.Drawing.Point(498, 387)
Me.Label9.Name = "Label9"
Me.Label9.Size = New System.Drawing.Size(54, 18)
Me.Label9.TabIndex = 142
Me.Label9.Text = "PSNR"
'
'lblPSNR2
'
Me.lblPSNR2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblPSNR2.Location = New System.Drawing.Point(880, 388)
Me.lblPSNR2.Name = "lblPSNR2"
Me.lblPSNR2.Size = New System.Drawing.Size(67, 18)
Me.lblPSNR2.TabIndex = 147
'
'Label10
'
Me.Label10.Location = New System.Drawing.Point(820, 388)
Me.Label10.Name = "Label10"
Me.Label10.Size = New System.Drawing.Size(54, 18)
Me.Label10.TabIndex = 146

Universitas Sumatera Utara


A-8

Me.Label10.Text = "PSNR"
'
'lblMSE2
'
Me.lblMSE2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblMSE2.Location = New System.Drawing.Point(741, 388)
Me.lblMSE2.Name = "lblMSE2"
Me.lblMSE2.Size = New System.Drawing.Size(67, 18)
Me.lblMSE2.TabIndex = 145
'
'Label12
'
Me.Label12.Location = New System.Drawing.Point(681, 388)
Me.Label12.Name = "Label12"
Me.Label12.Size = New System.Drawing.Size(51, 18)
Me.Label12.TabIndex = 144
Me.Label12.Text = "MSE"
'
'lblPSNR3
'
Me.lblPSNR3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblPSNR3.Location = New System.Drawing.Point(1192, 386)
Me.lblPSNR3.Name = "lblPSNR3"
Me.lblPSNR3.Size = New System.Drawing.Size(67, 18)
Me.lblPSNR3.TabIndex = 151
'
'Label14
'
Me.Label14.Location = New System.Drawing.Point(1132, 386)
Me.Label14.Name = "Label14"
Me.Label14.Size = New System.Drawing.Size(54, 18)
Me.Label14.TabIndex = 150
Me.Label14.Text = "PSNR"
'
'lblMSE3
'
Me.lblMSE3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblMSE3.Location = New System.Drawing.Point(1059, 388)
Me.lblMSE3.Name = "lblMSE3"
Me.lblMSE3.Size = New System.Drawing.Size(67, 18)
Me.lblMSE3.TabIndex = 149
'
'Label16
'
Me.Label16.Location = New System.Drawing.Point(1000, 388)
Me.Label16.Name = "Label16"
Me.Label16.Size = New System.Drawing.Size(50, 18)
Me.Label16.TabIndex = 148
Me.Label16.Text = "MSE"
'
'ProgressBar1
'
Me.ProgressBar1.Location = New System.Drawing.Point(12, 282)
Me.ProgressBar1.Name = "ProgressBar1"
Me.ProgressBar1.Size = New System.Drawing.Size(300, 19)
Me.ProgressBar1.TabIndex = 152
'
'lblDimensi1
'
Me.lblDimensi1.BorderStyle =
System.Windows.Forms.BorderStyle.FixedSingle

Universitas Sumatera Utara


A-9

Me.lblDimensi1.Location = New System.Drawing.Point(416, 338)


Me.lblDimensi1.Name = "lblDimensi1"
Me.lblDimensi1.Size = New System.Drawing.Size(99, 18)
Me.lblDimensi1.TabIndex = 154
Me.lblDimensi1.Text = "300 x 250 piksel"
'
'Label11
'
Me.Label11.Location = New System.Drawing.Point(356, 339)
Me.Label11.Name = "Label11"
Me.Label11.Size = New System.Drawing.Size(53, 18)
Me.Label11.TabIndex = 153
Me.Label11.Text = "Dimensi"
'
'lblDimensi2
'
Me.lblDimensi2.BorderStyle =
System.Windows.Forms.BorderStyle.FixedSingle
Me.lblDimensi2.Location = New System.Drawing.Point(741, 339)
Me.lblDimensi2.Name = "lblDimensi2"
Me.lblDimensi2.Size = New System.Drawing.Size(99, 18)
Me.lblDimensi2.TabIndex = 156
Me.lblDimensi2.Text = "300 x 250 piksel"
'
'Label13
'
Me.Label13.Location = New System.Drawing.Point(682, 340)
Me.Label13.Name = "Label13"
Me.Label13.Size = New System.Drawing.Size(53, 18)
Me.Label13.TabIndex = 155
Me.Label13.Text = "Dimensi"
'
'lblDimensi3
'
Me.lblDimensi3.BorderStyle =
System.Windows.Forms.BorderStyle.FixedSingle
Me.lblDimensi3.Location = New System.Drawing.Point(1059, 340)
Me.lblDimensi3.Name = "lblDimensi3"
Me.lblDimensi3.Size = New System.Drawing.Size(99, 18)
Me.lblDimensi3.TabIndex = 158
Me.lblDimensi3.Text = "300 x 250 piksel"
'
'Label17
'
Me.Label17.Location = New System.Drawing.Point(1000, 341)
Me.Label17.Name = "Label17"
Me.Label17.Size = New System.Drawing.Size(53, 18)
Me.Label17.TabIndex = 157
Me.Label17.Text = "Dimensi"
'
'SaveFileDialog1
'
Me.SaveFileDialog1.FileName = "OpenFileDialog1"
'
'SaveD
'
Me.SaveD.Filter = "BMP|*.bmp|Jpeg|*.jpg"
Me.SaveD.Title = "Simpan"
'
'lblFile1
'

Universitas Sumatera Utara


A-10

Me.lblFile1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblFile1.Location = New System.Drawing.Point(414, 312)
Me.lblFile1.Name = "lblFile1"
Me.lblFile1.Size = New System.Drawing.Size(243, 18)
Me.lblFile1.TabIndex = 160
'
'Label19
'
Me.Label19.AutoSize = True
Me.Label19.Location = New System.Drawing.Point(354, 312)
Me.Label19.Name = "Label19"
Me.Label19.Size = New System.Drawing.Size(54, 13)
Me.Label19.TabIndex = 159
Me.Label19.Text = "Nama File"
'
'lblFile2
'
Me.lblFile2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblFile2.Location = New System.Drawing.Point(741, 313)
Me.lblFile2.Name = "lblFile2"
Me.lblFile2.Size = New System.Drawing.Size(243, 18)
Me.lblFile2.TabIndex = 162
'
'Label20
'
Me.Label20.AutoSize = True
Me.Label20.Location = New System.Drawing.Point(681, 313)
Me.Label20.Name = "Label20"
Me.Label20.Size = New System.Drawing.Size(54, 13)
Me.Label20.TabIndex = 161
Me.Label20.Text = "Nama File"
'
'lblFile3
'
Me.lblFile3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblFile3.Location = New System.Drawing.Point(1059, 315)
Me.lblFile3.Name = "lblFile3"
Me.lblFile3.Size = New System.Drawing.Size(243, 18)
Me.lblFile3.TabIndex = 164
'
'Label21
'
Me.Label21.AutoSize = True
Me.Label21.Location = New System.Drawing.Point(999, 315)
Me.Label21.Name = "Label21"
Me.Label21.Size = New System.Drawing.Size(54, 13)
Me.Label21.TabIndex = 163
Me.Label21.Text = "Nama File"
'
'lblSize1
'
Me.lblSize1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblSize1.Location = New System.Drawing.Point(416, 363)
Me.lblSize1.Name = "lblSize1"
Me.lblSize1.Size = New System.Drawing.Size(67, 18)
Me.lblSize1.TabIndex = 166
'
'Label22
'
Me.Label22.Location = New System.Drawing.Point(356, 364)
Me.Label22.Name = "Label22"

Universitas Sumatera Utara


A-11

Me.Label22.Size = New System.Drawing.Size(51, 18)


Me.Label22.TabIndex = 165
Me.Label22.Text = "Size"
'
'lblSize2
'
Me.lblSize2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblSize2.Location = New System.Drawing.Point(741, 363)
Me.lblSize2.Name = "lblSize2"
Me.lblSize2.Size = New System.Drawing.Size(67, 18)
Me.lblSize2.TabIndex = 168
'
'Label23
'
Me.Label23.Location = New System.Drawing.Point(681, 364)
Me.Label23.Name = "Label23"
Me.Label23.Size = New System.Drawing.Size(51, 18)
Me.Label23.TabIndex = 167
Me.Label23.Text = "Size"
'
'lblSize3
'
Me.lblSize3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.lblSize3.Location = New System.Drawing.Point(1059, 364)
Me.lblSize3.Name = "lblSize3"
Me.lblSize3.Size = New System.Drawing.Size(67, 18)
Me.lblSize3.TabIndex = 170
'
'Label25
'
Me.Label25.Location = New System.Drawing.Point(1002, 367)
Me.Label25.Name = "Label25"
Me.Label25.Size = New System.Drawing.Size(51, 18)
Me.Label25.TabIndex = 169
Me.Label25.Text = "Size"
'
'Label18
'
Me.Label18.Location = New System.Drawing.Point(142, 340)
Me.Label18.Name = "Label18"
Me.Label18.Size = New System.Drawing.Size(39, 18)
Me.Label18.TabIndex = 171
Me.Label18.Text = "Kb"
'
'Label24
'
Me.Label24.Location = New System.Drawing.Point(495, 367)
Me.Label24.Name = "Label24"
Me.Label24.Size = New System.Drawing.Size(29, 18)
Me.Label24.TabIndex = 172
Me.Label24.Text = "Kb"
'
'Label26
'
Me.Label26.Location = New System.Drawing.Point(814, 366)
Me.Label26.Name = "Label26"
Me.Label26.Size = New System.Drawing.Size(26, 18)
Me.Label26.TabIndex = 173
Me.Label26.Text = "Kb"
'
'Label27

Universitas Sumatera Utara


A-12

'
Me.Label27.Location = New System.Drawing.Point(1144, 367)
Me.Label27.Name = "Label27"
Me.Label27.Size = New System.Drawing.Size(26, 18)
Me.Label27.TabIndex = 174
Me.Label27.Text = "Kb"
'
'Label7
'
Me.Label7.Location = New System.Drawing.Point(10, 6)
Me.Label7.Name = "Label7"
Me.Label7.Size = New System.Drawing.Size(81, 16)
Me.Label7.TabIndex = 175
Me.Label7.Text = "Citra Asli"
'
'frmResizeImg1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(1314, 483)
Me.Controls.Add(Me.Label7)
Me.Controls.Add(Me.Label27)
Me.Controls.Add(Me.Label26)
Me.Controls.Add(Me.Label24)
Me.Controls.Add(Me.Label18)
Me.Controls.Add(Me.lblSize3)
Me.Controls.Add(Me.Label25)
Me.Controls.Add(Me.lblSize2)
Me.Controls.Add(Me.Label23)
Me.Controls.Add(Me.lblSize1)
Me.Controls.Add(Me.Label22)
Me.Controls.Add(Me.lblFile3)
Me.Controls.Add(Me.Label21)
Me.Controls.Add(Me.lblFile2)
Me.Controls.Add(Me.Label20)
Me.Controls.Add(Me.lblFile1)
Me.Controls.Add(Me.Label19)
Me.Controls.Add(Me.lblDimensi3)
Me.Controls.Add(Me.Label17)
Me.Controls.Add(Me.lblDimensi2)
Me.Controls.Add(Me.Label13)
Me.Controls.Add(Me.lblDimensi1)
Me.Controls.Add(Me.Label11)
Me.Controls.Add(Me.ProgressBar1)
Me.Controls.Add(Me.lblPSNR3)
Me.Controls.Add(Me.Label14)
Me.Controls.Add(Me.lblMSE3)
Me.Controls.Add(Me.Label16)
Me.Controls.Add(Me.lblPSNR2)
Me.Controls.Add(Me.Label10)
Me.Controls.Add(Me.lblMSE2)
Me.Controls.Add(Me.Label12)
Me.Controls.Add(Me.lblPSNR1)
Me.Controls.Add(Me.Label9)
Me.Controls.Add(Me.lblMSE1)
Me.Controls.Add(Me.Label8)
Me.Controls.Add(Me.pbNN)
Me.Controls.Add(Me.pbBilinear)
Me.Controls.Add(Me.pbLinear)
Me.Controls.Add(Me.lblDimensi)
Me.Controls.Add(Me.Label5)
Me.Controls.Add(Me.lblFile)

Universitas Sumatera Utara


A-13

Me.Controls.Add(Me.lblSize)
Me.Controls.Add(Me.Label4)
Me.Controls.Add(Me.Label6)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.picNearestNeighbor)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.picBilinear)
Me.Controls.Add(Me.picLinear)
Me.Controls.Add(Me.picOriginal)
Me.Controls.Add(Me.GroupBox1)
Me.Name = "frmResizeImg1"
Me.Text = "Resize Image dengan Algoritma Interpolasi"
CType(Me.picOriginal,
System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.picLinear, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.picBilinear,
System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.picNearestNeighbor,
System.ComponentModel.ISupportInitialize).EndInit()
Me.GroupBox1.ResumeLayout(False)
Me.ResumeLayout(False)
Me.PerformLayout()

End Sub

#End Region

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
btnProses1.Enabled = False
btnProses2.Enabled = False
btnProses3.Enabled = False
pbLinear.Hide()
pbBilinear.Hide()
pbNN.Hide()

End Sub

Private Sub btnProses1_Click(sender As Object, e As EventArgs) _


Handles btnProses1.Click
Dim Lebar, Tinggi As Integer
btnProses1.Enabled = False
pbLinear.Show()
Linear(picOriginal, picLinear)
BacaCitraOri()
BacaCitraLinear()
HitMSELinear()

Dim KKK As Bitmap


If SaveD.ShowDialog = Windows.Forms.DialogResult.OK Then
btnProses1.Enabled = False
Try
KKK = picLinear.Image
lblFile1.Text = SaveD.FileName
Select Case SaveD.FilterIndex
Case 1
KKK.Save(SaveD.FileName, ImageFormat.Bmp)
Case 2
KKK.Save(SaveD.FileName, ImageFormat.Jpeg)
End Select

Universitas Sumatera Utara


A-14

Dim fileDetails As System.IO.FileInfo = New _


System.IO.FileInfo(lblFile1.Text)
lblSize1.Text = fileDetails.Length.ToString / 1024
Dim bmp As New Bitmap(SaveD.FileName)
Lebar = bmp.Width.ToString()
Tinggi = bmp.Height.ToString()

MsgBox("Citra berhasil di simpan .....", MsgBoxStyle.OkOnly,


"Save _
Sukses")
Catch
MsgBox("Gagal disimpan ", MsgBoxStyle.Exclamation)
End Try
End If

End Sub

Private Sub btnProses2_Click(sender As Object, e As EventArgs) Handles _


btnProses2.Click
btnProses2.Enabled = False
pbBilinear.Show()
BiLinear(picOriginal, picBilinear, True)
BacaCitraOri()
BacaCitraBilinear()
HitMSEBilinear()

Dim KKK As Bitmap


If SaveD.ShowDialog = Windows.Forms.DialogResult.OK Then
btnProses2.Enabled = False
Try
KKK = picBilinear.Image
lblFile2.Text = SaveD.FileName
Select Case SaveD.FilterIndex
Case 1
KKK.Save(SaveD.FileName, ImageFormat.Bmp)
Case 2
KKK.Save(SaveD.FileName, ImageFormat.Jpeg)
End Select
Dim fileDetails As System.IO.FileInfo = New _
System.IO.FileInfo(lblFile2.Text)
lblSize2.Text = fileDetails.Length.ToString / 1024
MsgBox("Citra berhasil di simpan .....", MsgBoxStyle.OkOnly,
"Save _
Sukses")
Catch
MsgBox("Gagal disimpan ", MsgBoxStyle.Exclamation)
End Try
End If

End Sub
Private Sub Linear(ByVal from_pic As PictureBox, ByVal to_pic As
PictureBox, _
Optional ByVal anti_alias As Boolean = False)

pbLinear.Value = 30
Dim from_bm As New Bitmap(from_pic.Image)
Dim wid As Integer = from_pic.Width
Dim hgt As Integer = from_pic.Height
Dim to_bm As New Bitmap(wid, hgt)

Dim gr As Graphics = Graphics.FromImage(to_bm)

Universitas Sumatera Utara


A-15

If anti_alias Then gr.InterpolationMode =


Drawing2D.InterpolationMode.Default
pbLinear.Value = 60
gr.DrawImage(from_bm, 0, 0, wid - 1, hgt - 1)
to_pic.Image = to_bm
pbLinear.Value = 100
End Sub

Private Sub BiLinear(ByVal from_pic As PictureBox, ByVal to_pic As


PictureBox, Optional ByVal anti_alias As Boolean = False)
Dim from_bm As New Bitmap(from_pic.Image)
pbBilinear.Value = 30
Dim wid As Integer = from_pic.Width
Dim hgt As Integer = from_pic.Height
Dim to_bm As New Bitmap(wid, hgt)

Dim gr As Graphics = Graphics.FromImage(to_bm)


If anti_alias Then gr.InterpolationMode =
Drawing2D.InterpolationMode.HighQualityBilinear
pbBilinear.Value = 60
gr.DrawImage(from_bm, 0, 0, wid - 1, hgt - 1)
to_pic.Image = to_bm
pbBilinear.Value = 100
End Sub

Private Sub NearestNeighbor(ByVal from_pic As PictureBox, ByVal to_pic As


PictureBox, Optional ByVal anti_alias As Boolean = False)
Dim from_bm As New Bitmap(from_pic.Image)
pbNN.Value = 30
Dim wid As Integer = from_pic.Width
Dim hgt As Integer = from_pic.Height
Dim to_bm As New Bitmap(wid, hgt)

Dim gr As Graphics = Graphics.FromImage(to_bm)


If anti_alias Then gr.InterpolationMode = _
Drawing2D.InterpolationMode.NearestNeighbor
pbNN.Value = 60
gr.DrawImage(from_bm, 0, 0, wid - 1, hgt - 1)

' Display the result.


to_pic.Image = to_bm
pbNN.Value = 100
End Sub

Private Sub btnProses3_Click(sender As Object, e As EventArgs) Handles


btnProses3.Click
btnProses3.Enabled = False
pbNN.Show()
NearestNeighbor(picOriginal, picNearestNeighbor, True)
BacaCitraOri()
BacaCitraNN()
HitMSENN()

Dim KKK As Bitmap


If SaveD.ShowDialog = Windows.Forms.DialogResult.OK Then
btnProses3.Enabled = False
Try
KKK = picNearestNeighbor.Image
lblFile3.Text = SaveD.FileName
Select Case SaveD.FilterIndex
Case 1

Universitas Sumatera Utara


A-16

KKK.Save(SaveD.FileName, ImageFormat.Bmp)
Case 2
KKK.Save(SaveD.FileName, ImageFormat.Jpeg)
End Select
Dim fileDetails As System.IO.FileInfo = New _
System.IO.FileInfo(lblFile3.Text)
lblSize3.Text = fileDetails.Length.ToString / 1024
MsgBox("Citra berhasil di simpan .....", MsgBoxStyle.OkOnly,
"Save _
Sukses")
Catch
MsgBox("Gagal disimpan ", MsgBoxStyle.Exclamation)
End Try
End If

End Sub

Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles


btnClear.Click
picLinear.Image = Nothing
picBilinear.Image = Nothing
picNearestNeighbor.Image = Nothing
picOriginal.Image = Nothing

lblDimensi.Text = ""
lblFile.Text = ""
lblSize.Text = ""

lblMSE1.Text = ""
lblMSE2.Text = ""
lblMSE3.Text = ""

lblPSNR1.Text = ""
lblPSNR2.Text = ""
lblPSNR3.Text = ""
lblFile1.Text = ""
lblSize1.Text = ""

lblFile2.Text = ""
lblSize2.Text = ""

lblFile3.Text = ""
lblSize3.Text = ""

pbLinear.Hide()
pbBilinear.Hide()
pbNN.Hide()
End Sub

Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles


btnClose.Click
Close()

End Sub

Private Sub btnLoad_Click(sender As Object, e As EventArgs) Handles


btnLoad.Click
Dim Lebar, Tinggi As Integer
Dim LebarImg, TinggiImg As Integer
With OpenFileDialog1

Universitas Sumatera Utara


A-17

.AddExtension = True
.CheckFileExists = True
.CheckPathExists = True
.DefaultExt = ".jpg"
.Filter = "Citra jpg (*.jpg)|*.jpg|Citra bmp (*.bmp)|*.bmp"
.Multiselect = False
End With

If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then


picOriginal.Image = Image.FromFile(OpenFileDialog1.FileName)
lblFile.Text = OpenFileDialog1.FileName
Dim fileDetails1 As System.IO.FileInfo = New _
System.IO.FileInfo(OpenFileDialog1.FileName)
lblSize.Text = Format(fileDetails1.Length.ToString / 1024, "
###.##") & "_
KByte"
Dim bmp As New Bitmap(OpenFileDialog1.FileName)
Dim ResizeImg As Image
Lebar = bmp.Width.ToString()
Tinggi = bmp.Height.ToString()
fileDetails1 = Nothing
If (Lebar >= 1200 And Tinggi >= 800) Then
LebarImg = 1200
TinggiImg = 800
Dim newSize As New Size(1200, 800)
ResizeImg = New Bitmap(picOriginal.Image, newSize)
lblDimensi.Text = "Lebar : " & LebarImg & " x tinggi :" &
TinggiImg
Dimensi = LebarImg * TinggiImg

picOriginal.Image = ResizeImg
Else
lblDimensi.Text = "Lebar : " & Lebar & " x tinggi :" & Tinggi
Dimensi = Lebar * Tinggi

End If

btnProses1.Enabled = True
btnProses2.Enabled = True
btnProses3.Enabled = True
End If
End Sub
Sub BacaCitraOri()
Dim tempbmp2 As New Bitmap(picOriginal.Image)
Dim Red1 As Integer, Green1 As Integer, Blue1 As Integer
Dim X, Y As Integer
ProgressBar1.Width = picOriginal.Width
ProgressBar1.Show()
ItemList1.Clear()
With (tempbmp2)
For X = 0 To .Height - 1
Application.DoEvents()
For Y = 0 To .Width - 1
Red1 = (.GetPixel(Y, X).R)
If Red1 < 0 Then
Red1 = 0
End If

If Red1 > 255 Then


Red1 = 255
End If

Universitas Sumatera Utara


A-18

Green1 = (.GetPixel(Y, X).G)

If Green1 < 0 Then


Green1 = 0
End If

If Green1 > 255 Then


Green1 = 255
End If

Blue1 = (.GetPixel(Y, X).B)

If Blue1 < 0 Then


Blue1 = 0
End If

If Blue1 > 255 Then


Blue1 = 255
End If
ItemList1.Add(Red1)
ItemList1.Add(Green1)
ItemList1.Add(Blue1)

Next
If X Mod 10 = 0 Then
ProgressBar1.Value = Int(100 * X /
(picOriginal.Image.Height - 2))
End If
Next
End With
ProgressBar1.Hide()
End Sub

Sub BacaCitraLinear()
Dim tempbmp2 As New Bitmap(picLinear.Image)
Dim Red2 As Integer, Green2 As Integer, Blue2 As Integer
Dim X, Y As Integer
ProgressBar1.Width = picLinear.Width
ProgressBar1.Show()
ItemList2.Clear()
With (tempbmp2)
For X = 0 To .Height - 1
Application.DoEvents()
For Y = 0 To .Width - 1
Red2 = (.GetPixel(Y, X).R)
If Red2 < 0 Then
Red2 = 0
End If

If Red2 > 255 Then


Red2 = 255
End If

Green2 = (.GetPixel(Y, X).G)

If Green2 < 0 Then


Green2 = 0
End If

Universitas Sumatera Utara


A-19

If Green2 > 255 Then


Green2 = 255
End If

Blue2 = (.GetPixel(Y, X).B)

If Blue2 < 0 Then


Blue2 = 0
End If

If Blue2 > 255 Then


Blue2 = 255
End If
ItemList2.Add(Red2)
ItemList2.Add(Green2)
ItemList2.Add(Blue2)

Next
If X Mod 10 = 0 Then
ProgressBar1.Value = Int(100 * X / (picLinear.Image.Height
- 2))
End If
Next
End With
ProgressBar1.Hide()
pbLinear.Hide()
End Sub

Sub BacaCitraBilinear()
Dim tempbmp2 As New Bitmap(picBilinear.Image)
Dim Red2 As Integer, Green2 As Integer, Blue2 As Integer
Dim X, Y As Integer
pbBilinear.Width = picBilinear.Width
pbBilinear.Show()
ItemList2.Clear()
With (tempbmp2)
For X = 0 To .Height - 1
Application.DoEvents()
For Y = 0 To .Width - 1
Red2 = (.GetPixel(Y, X).R)
If Red2 < 0 Then
Red2 = 0
End If

If Red2 > 255 Then


Red2 = 255
End If

Green2 = (.GetPixel(Y, X).G)

If Green2 < 0 Then


Green2 = 0
End If

If Green2 > 255 Then


Green2 = 255
End If

Blue2 = (.GetPixel(Y, X).B)

Universitas Sumatera Utara


A-20

If Blue2 < 0 Then


Blue2 = 0
End If

If Blue2 > 255 Then


Blue2 = 255
End If
ItemList2.Add(Red2)
ItemList2.Add(Green2)
ItemList2.Add(Blue2)

Next
If X Mod 10 = 0 Then
pbBilinear.Value = Int(100 * X / (picBilinear.Image.Height
- 2))
End If
Next
End With
ProgressBar1.Hide()
pbBilinear.Hide()
End Sub

Sub BacaCitraNN()
Dim tempbmp2 As New Bitmap(picNearestNeighbor.Image)
Dim Red2 As Integer, Green2 As Integer, Blue2 As Integer
Dim X, Y As Integer
pbNN.Width = picNearestNeighbor.Width
pbNN.Show()
ItemList2.Clear()
With (tempbmp2)
For X = 0 To .Height - 1
Application.DoEvents()
For Y = 0 To .Width - 1
Red2 = (.GetPixel(Y, X).R)
If Red2 < 0 Then
Red2 = 0
End If

If Red2 > 255 Then


Red2 = 255
End If

Green2 = (.GetPixel(Y, X).G)

If Green2 < 0 Then


Green2 = 0
End If

If Green2 > 255 Then


Green2 = 255
End If

Blue2 = (.GetPixel(Y, X).B)

If Blue2 < 0 Then


Blue2 = 0
End If

If Blue2 > 255 Then


Blue2 = 255

Universitas Sumatera Utara


A-21

End If
ItemList2.Add(Red2)
ItemList2.Add(Green2)
ItemList2.Add(Blue2)
Next
If X Mod 10 = 0 Then
pbNN.Value = Int(100 * X / (picNearestNeighbor.Image.Height
- 2))
End If
Next
End With
ProgressBar1.Hide()
pbNN.Hide()
End Sub

Sub HitMSELinear()
'prosedur untuk menghitung MSE

Dim i As Single
Dim Piksel1 As Single
Dim Piksel2 As Single
Dim Selisih As Single
Dim TSelisih As Single
Dim MSE As Single

For i = 0 To ItemList1.Count - 1
Piksel1 = ItemList1.Item(i)
Piksel2 = ItemList2.Item(i)
'Selisih = (Math.Abs(Piksel1 - Piksel2)) ^ 2
Selisih = (Piksel1 - Piksel2) ^ 2
TSelisih = TSelisih + Selisih
Piksel1 = 0
Piksel2 = 0
Selisih = 0
Next
If TSelisih > 0 Then
MSE = (1 / Dimensi) * (TSelisih)
lblMSE1.Text = MSE
lblPSNR1.Text = 10 * Math.Log10(255 / MSE)

Else
lblMSE1.Text = 0
End If
End Sub

Sub HitMSEBilinear()
'prosedur untuk menghitung MSE

Dim i As Single
Dim Piksel1 As Single
Dim Piksel2 As Single
Dim Selisih As Single
Dim TSelisih As Single
Dim MSE As Single

For i = 0 To ItemList1.Count - 1
Piksel1 = ItemList1.Item(i)
Piksel2 = ItemList2.Item(i)
Selisih = (Piksel1 - Piksel2) ^ 2
TSelisih = TSelisih + Selisih

Universitas Sumatera Utara


A-22

Piksel1 = 0
Piksel2 = 0
Selisih = 0
Next

If TSelisih > 0 Then


MSE = (1 / Dimensi) * (TSelisih) '^ 2
lblMSE2.Text = MSE
lblPSNR2.Text = 10 * Math.Log10(255 / MSE)
Else
lblMSE2.Text = 0
End If
End Sub

Sub HitMSENN()
'prosedur untuk menghitung MSE

Dim i As Single
Dim Piksel1 As Single
Dim Piksel2 As Single
Dim Selisih As Single
Dim TSelisih As Single
Dim MSE As Single

For i = 0 To ItemList1.Count - 1
Piksel1 = ItemList1.Item(i)
Piksel2 = ItemList2.Item(i)
Selisih = (Piksel1 - Piksel2) ^ 2
TSelisih = TSelisih + Selisih
Piksel1 = 0
Piksel2 = 0
Selisih = 0
Next

If TSelisih > 0 Then


MSE = (1 / Dimensi) * (TSelisih) '^ 2
lblMSE3.Text = MSE 'Format(MSE, "###,##")
lblPSNR3.Text = 10 * Math.Log10(255 / MSE)
Else
lblMSE3.Text = 0
End If
End Sub

Private Sub lblMSE2_Click(sender As Object, e As EventArgs) Handles


lblMSE2.Click

End Sub
End Class

Universitas Sumatera Utara

Anda mungkin juga menyukai