58
4.2 Potongan Program
Dalam sub bab ini akan dijelaskan mengenai beberapa potongan program matlab sebagai implementasi dari algoritma yang sudah dijelaskan pada bab
sebelumnya. a.
Membuka dan menyimpan file
[namafile,direktori]=uigetfile{ .jpg
; .bmp
}, Buka
Gambar [namafile,direktori]=uiputfile{
.jpg ;
.bmp },
SimpanGambar ;
Fungsi “uigetfile” digunakan untuk membuka file. Fungsi “uigetfile” menghasilkan dua keluaran, yaitu variable namafile dan variable
direktori. Variable namafile digunakan untuk menyimpan nama file yang dibuka dan variable direkori digunakan untuk menyimpan path direktori.
Fungsi untuk menyimpan file adalah “uiputfile”. b.
Mengambil data dan mengcrop gambar
proyek=guidatagcbo; I=getproyek.original_image,
Userdata ;
gbr_crop=imcropI; setproyek.figUtama,
CurrentAxes ,proyek.crop;
setimshowgbr_crop; setproyek.figUtama,
Userdata ,gbr_crop;
setproyek.original_image, Userdata
,gbr_crop;
Pada matlab, fungsi untuk mengambil data yang tersimpan pada properties userdata disuatu uicontrol fungsi yang digunakan adalah “get” sedangkan fungsi
untuk meng – crop citra menggunakan fungsi “imcrop”.
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
59
c. Mereplikasi matrik asli dan menentukan matrik mask kernel
mereplikasi matrik asli dan menentukan mask kernel gambar=padarraygbr_crop,[1 1],
replicate ;
[b,k,j]=sizegambar; h=ones3,39;
Mereplikasi matriks asli dilakukan untuk proses selanjutnya yaitu proses konvolusi agar pada waktu proses konvolusi matriks asli tidak
kehilangan data keasliannya. Dalam proses konvolusi yang menggunakan low pass filter dengan filter rata – rata memerlukan matriks mask kernel, karena
menggunakan low pass filter maka matriks mask kernel dengan jumlah mariks harus sama dengan satu.
d. Mengalikan matriks asli dengan matriks mask kernel
for klm=2:k-1
for brs=2:b-1
red1=gambarbrs-1,klm-1,1h1,1; red2=gambarbrs-1,klm,1h1,2;
red3=gambarbrs-1,klm+1,1h1,3; red4=gambarbrs,klm-1,1h2,1;
red5=gambarbrs,klm,1h2,2; red6=gambarbrs,klm+1,1h2,3;
red7=gambarbrs+1,klm-1,1h3,1; red8=gambarbrs+1,klm,1h3,2;
red9=gambarbrs+1,klm+1,1h3,3;
Dalam aplikasi ini matriks asli akan dikalikan dengan matriks mask matriks kernel, perhitungan dimulai dari matriks hasil replikasi. Untuk citra
dengan 24 bit maka perhitungan nilai RGB nya dihitung masing – masing setelah itu digabungkan dalam satu variable yang sama.
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
60
e. Menentukan ratio dimensi lama dibandingkan dimensi baru
menentukan ratio dimensi lama dibandingkan dimensi baru x_scale = x_newu-1;
y_scale = y_newv-1;
Perhitungan ratio digunakan untuk perhitungan selanjutnya, perhitungan ratio didapat dari x dan y yang baru.
f. Menghitung nilai W dan H dan juga 4 nilai – nilai tetangganya
for count1 = 0:x_new-1
for count2 = 0:y_new-1
W = -count1x_scale-floorcount1x_scale-1; H = -count2y_scale-floorcount2y_scale-1;
hasil_red11 = baru1+floorcount1x_scale,1+floorcount2y_scale,1;
hasil_red12 = baru1+ceilcount1x_scale,1+floorcount2y_scale,1;
hasil_red21 = baru1+floorcount1x_scale,1+ceilcount2y_scale,1;
hasil_red22 = baru1+ceilcount1x_scale,1+ceilcount2y_scale,1;
Nilai W dan H digunakan digunakan untuk menghitung rumus bilinear interpolation yang sudah dijelaskan dalam bab – bab sebelumnya. Seperti
yang telah ada rumus bilinear interpolation menggunakan 4 piksel tetangganya untuk mencari piksel – piksel baru.
g. Menampilkan gambar
--------------------MENAMPILKAN HASIL AKHIR ---------------- ---
setproyek.figUtama, CurrentAxes
,proyek.original_image; setimshowselesai;
setproyek.figUtama, Userdata
,selesai; setproyek.crop,
Userdata ,selesai;
Hak Cipta © milik UPN Veteran Jatim : Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.
61
Didalam matlab fungsi untuk menampilkan gambar adalah “imshow”, gambar akan ditampilkan dalam figure utama dan ditampilkan dalam sebuah
axes. h.
Menghitung Nilai MSE dan PSNR
---------------menampilkan nilai MSE dan PSNR--------------- ---
R_jalur_atas=hasil:,:,1; G_jalur_atas=hasil:,:,2;
B_jalur_atas=hasil:,:,3; gray_jalur_atas
=doubledoubleR_jalur_atas+doubleG_jalur_atas+doubleB_ja lur_atas3;
MSE_jalur_atas = msegray_jalur_atas255; PSNR_jalur_atas = 10log102552MSE_jalur_atas;
Menghitung nilai MSE dan PSNR terlebih dahulu menghitung derajat keabuannya dengan menghitung masing – masing nilai RGBnya.
4.3 Implementasi