Universitas Kristen Maranatha
iii
DAFTAR ISI
Halaman
LEMBAR PENGESAHAN SURAT PERNYATAAN
ABSTRAK i
ABSTRACT ii
KATA PENGANTAR iii
DAFTAR ISI v
DAFTAR TABEL vii
DAFTAR GAMBAR viii
BAB I PENDAHULUAN 1
I.1 Latar Belakang
2 I.2
Identifikasi Masalah 2
I.3 Tujuan
2 I.4
Pembatasan Masalah 2
I.5 Sistematika Penulisan
2
BAB II LANDASAN TEORI 3
II.1 Umum 3
II.2 Multi-directional Interpolation 3
II.2.1 Pendeteksian Tepi 5
II.2.2 Klasifikasi Voting Gradien 8
II.2.3 Interpolasi Spasial 8
II.2.4 Penggabungan Citra 10
II.2.5 Kualitas Citra 11
Universitas Kristen Maranatha
iv
BAB III PERANCANGAN SISTEM
12
III.1 Pencarian Blok Error 13
III.2 Klasifikasi arah menggunakan Voting Gradien 13 III.2.1 Pendeteksian Tepi
14 III.2.2 Deteksi Tepi yang Melewati Blok Rusak
15 III.2.3 Tiga Nilai Tepi Terbesar
16 III.3 Interpolasi Spasial
17 III.3.1 Interpolasi
17 III.4 Pencampuran Citra
18 III.4.1 Klasifikasi
19 III.4.2 Penggabungan Citra
20
BAB IV SIMULASI DAN ANALISA DATA 22
IV.1 Karakteristik Citra Input 22
IV.2 Klasifikasi Voting Gradien 22
IV.3 Interpolasi Spasial 32
IV.4 Pencampuran 33
IV.5 Analisa 34
BAB V KESIMPULAN DAN SARAN 36
V.1 Kesimpulan 36
V.2 Saran 36
DAFTAR PUSTAKA 37
LAMPIRAN A LAMPIRAN B
Universitas Kristen Maranatha
v
DAFTAR TABEL
Halaman Tabel IV.1 Indeks arah interpolasi
24 Tabel IV.2 Perbandingan Nilai PSNR untuk citra ukuran 256 x 256 piksel 34
Tabel IV.3 Perbandingan Nilai PSNR untuk citra ukuran 512 x 512 piksel 35
Universitas Kristen Maranatha
vi
DAFTAR GAMBAR
Halaman Gambar II.1 Blok proses penyembunyian error
4 Gambar II.2 Proses penyembunyian error dengan MDI
4 Gambar II.3 Titik – titik yang dilibatkan dalam penghitunan gradien 6
Gambar II.4 a Original image 7
b Tepi edge image 7
Gambar II.5 Arah tepi 8
Gambar II.6 Satu paket arah interpolasi satu dimensi 9
Gambar II.7 Array satu dimensi 9
Gambar II.8 Operator MAX, MIN, AVG 10
Gambar III.1 Diagram blok perancangan sistem 12
Gambar III.2 Diagram alir sistem penyembunyian error 12
Gambar III.3 Diagram alir proses pemeriksaan blok error 13
Gambar III.4 Diagram alir proses klasifikasi voting gradien 14
Gambar III.5 Diagram alir pendeteksian tepi 15
Gambar III.6 Diagram alir deteksi tepi yang melewati blok rusak 16
Gambar III.7 Diagram alir pemilihan tiga nilai terbesar 17
Gambar III.8 Diagram alir interpolasi spasial 17
Gambar III.9 Diagram alir interpolasi 18
Gambar III.10 Diagram alir pencampuran citra 19
Gambar III.11 Diagram alir klasifikasi 20
Gambar III.12 Diagram alir penggabungan citra 21
Gambar IV.1 Citra tanpa error ’foreman.jpg’ 22
Gambar IV.2 Contoh nilai magnituda 23
Gambar IV.3 Contoh arah tepi. 23
Gambar IV.4 Contoh indeks 24
Gambar IV.5 Citra yang rusak 32
Gambar IV.6 Contoh hasil interpolasi 33
Universitas Kristen Maranatha
vii Gambar IV.7 Contoh hasil pencampuran.
33 Gambar IV.8 Citra hasil perbaikan
34
LAMPIRAN A
KODE PROGRAM
A-1 function[gbr_satu]=interpolasi_1a
clear; close all;
clc; global matrik_interpolasi;
global indeks; Multidirectional Interpolation Processing
gbr_satu=matrik_interpolasi; arah_atas_satu=matrik_interpolasi;
arah_bawah_satu=matrik_interpolasi; [brs,klm]=sizematrik_interpolasi;
Multidirectional Interpolation Processing switchindeks1
case 0 0 Degree for m=brs:-1:1
for n=klm:-1:1 if arah_atas_satum,n==0
r=m; s=n+1;
jrk=1 jar=0;
while s=klm jar=jar+1jrks-n2.5;
arah_atas_satum,n=arah_atas_satum,n+arah_atas_satur,ss- njrk2.5;
s=s+1; end;
arah_atas_satum,n=arah_atas_satum,n.jar; end;
end; end;
clear m n for m=brs:-1:1
for n=1:klm ifarah_bawah_satum,n==0
t=m; u=n-1;
jrk=1; jar1=0;
while u=1
A-2 jar1=jar1+1jrkn-u2.5;
arah_bawah_satum,n=arah_bawah_satum,n+arah_bawah_satut,un- ujrk2.5;
u=u-1; end;
arah_bawah_satum,n=arah_bawah_satum,n.jar1; end;
end; end;
gbr_satu9:16,9:16=arah_atas_satu9:16,9:16+arah_bawah_satu9:16,9:16.2; clear m n
case 1 22.5 Degree for m=1:brs
for n=klm:-1:1 if arah_atas_satum,n==0
r=m-1; s=n+2;
jar=0; jrk=sqrts-n2+m-r2;
while r=1 s=klm jar=jar+1jrkm-r12.5;
arah_atas_satum,n=arah_atas_satum,n+arah_atas_satur,ss- n2jrk2.5;
r=r-1; s=s+2;
end; arah_atas_satum,n=arah_atas_satum,n.jar;
end; end;
end; clear m n
for m=brs:-1:1 for n=1:klm
ifarah_bawah_satum,n==0 t=m+1;
u=n-2; jrk=sqrtt-m2+n-u2;
jar1=0;
A-3 while t=brs u=1
jar1=jar1+1jrkt-m12.5; arah_bawah_satum,n=arah_bawah_satum,n+arah_bawah_satut,un-
u2jrk2.5; t=t+1;
u=u-2; end;
arah_bawah_satum,n=arah_bawah_satum,n.jar1; end;
end; end;
gbr_satu9:16,9:16=arah_atas_satu9:16,9:16+arah_bawah_satu9:16,9:16.2; case 2 45 degree 135 degree counter
for m=1:brs for n=klm:-1:1
if arah_atas_satum,n==0 r=m-1;
s=n+1; jrk=1;
jar=0; arah_atas_satum,n=0;
while r=1 s=klm jar=jar+1jrkm-r2.5;
arah_atas_satum,n=arah_atas_satum,n+arah_atas_satur,sm- rjrk2.5;
r=r-1; s=s+1;
end; arah_atas_satum,n=arah_atas_satum,n.jar;
end; end;
end; clear m n
for m=brs:-1:1
A-4 for n=1:klm
ifarah_bawah_satum,n==0 t=m+1;
u=n-1; jrk=1;
jar1=0; while t=brs u=1
jar1=jar1+1jrkt-m2.5; arah_bawah_satum,n=arah_bawah_satum,n+arah_bawah_satut,ut-
mjrk2.5; t=t+1;
u=u-1; end;
arah_bawah_satum,n=arah_bawah_satum,n.jar1; end;
end; end;
gbr_satu9:16,9:16=arah_atas_satu9:16,9:16+arah_bawah_satu9:16,9:16.2; case 3 67.5 degree
for m=1:brs for n=klm:-1:1
if arah_atas_satum,n==0 r=m-2;
s=n+1; jrk=sqrts-n2+m-r2;
jar=0; while r=1 s=klm
jar=jar+1jrks-n12.5; arah_atas_satum,n=arah_atas_satum,n+arah_atas_satur,ss-
n1jrk2.5; r=r-2;
s=s+1; end;
arah_atas_satum,n=arah_atas_satum,n.jar; end;
A-5 end;
end; clear m n
for m=brs:-1:1 for n=1:klm
ifarah_bawah_satum,n==0 t=m+2;
u=n-1; jrk=sqrtt-m2+n-u2;
jar1=0; while t=brs u=1
jar1=jar1+1jrkn-u12.5; arah_bawah_satum,n=arah_bawah_satum,n+arah_bawah_satut,un-
u1jrk2.5; t=t+2;
u=u-1; end;
arah_bawah_satum,n=arah_bawah_satum,n.jar1; end;
end; end;
gbr_satu9:16,9:16=arah_atas_satu9:16,9:16+arah_bawah_satu9:16,9:16.2; case 4 90 degree
for m=brs:-1:1 for n=klm:-1:1
if arah_atas_satum,n==0 r=m+1;
jar=0; jrk=1;
while r=brs jar=jar+1jrkr-m2.5;
arah_atas_satum,n=arah_atas_satum,n+arah_atas_satur,nr- mjrk2.5;
r=r+1; end;
A-6 arah_atas_satum,n=arah_atas_satum,n.jar;
end; end;
end; clear m n jar
for m=1:brs for n=1:klm
ifarah_bawah_satum,n==0 t=m-1;
jar1=0; jrk=1;
while t=1 jar1=jar1+1jrkm-t2.5;
arah_bawah_satum,n=arah_bawah_satum,n+arah_bawah_satut,nm- tjrk2.5;
t=t-1; end;
arah_bawah_satum,n=arah_bawah_satum,n.jar1; end;
end; end;
gbr_satu9:16,9:16=arah_atas_satu9:16,9:16+arah_bawah_satu9:16,9:16.2; case 5 112.5
for m=brs:-1:1 for n=brs:-1:1
if arah_atas_satum,n==0 r=m+2;
s=n+1; jrk=sqrts-n2+r-m2;
jar=0; while r=brs s=klm
A-7 jar=jar+1jrks-n12.5;
arah_atas_satum,n=arah_atas_satum,n+arah_atas_satur,ss- n1jrk2.5;
r=r+2; s=s+1;
end; arah_atas_satum,n=arah_atas_satum,n.jar;
end; end;
end; clear m n
for m=1:brs for n=1:klm
ifarah_bawah_satum,n==0 t=m-2;
u=n-1; jrk=sqrtn-u2+m-t2;
jar1=0; while t=1 u=1
jar1=jar1+1jrkn-u12.5; arah_bawah_satum,n=arah_bawah_satum,n+arah_bawah_satut,un-
u1jrk2.5; t=t-2;
u=u-1; end;
arah_bawah_satum,n=arah_bawah_satum,n.jar1; end;
end; end;
gbr_satu9:16,9:16=arah_atas_satu9:16,9:16+arah_bawah_satu9:16,9:16.2; case 6 135 degree Counter 45 Degree
for m=brs:-1:1 for n=klm:-1:1
A-8 if arah_atas_satum,n==0
r=m+1; s=n+1;
jar=0; jrk=1;
while r=brs s=klm jar=jar+1jrks-n2.5;
arah_atas_satum,n=arah_atas_satum,n+arah_atas_satur,ss- njrk2.5;
r=r+1; s=s+1;
end; arah_atas_satum,n=arah_atas_satum,n.jar;
end; end;
end; clear m n
for m=1:brs for n=1:klm
ifarah_bawah_satum,n==0 t=m-1;
u=n-1; jar1=0
jrk=1; while t=1 u=1
jar1=jar1+1jrkm-t2.5; arah_bawah_satum,n=arah_bawah_satum,n+arah_bawah_satut,um-
tjrk2.5; t=t-1;
u=u-1; end;
arah_bawah_satum,n=arah_bawah_satum,n.jar1; end;
end; end;
A-9 gbr_satu9:16,9:16=arah_atas_satu9:16,9:16+arah_bawah_satu9:16,9:16.2;
case 7 157,5 degree for m=brs:-1:1
for n=klm:-1:1 if arah_atas_satum,n==0
r=m+1; s=n+2;
jrk=sqrts-n2+m-r2; jar=0;
while r=brs s=klm jar=jar+1jrkr-m12.5;
arah_atas_satum,n=arah_atas_satum,n+arah_atas_satur,ss- n2jrk2.5;
r=r+1; s=s+2;
end arah_atas_satum,n=arah_atas_satum,n.jar;
end end
end clear m n
for m=1:brs for n=1:klm
ifarah_bawah_satum,n==0 t=m-1;
u=n-2; jrk=sqrtn-u2+m-t2;
jar1=0; while t=1 u=1
jar1=jar1+1jrkm-t12.5; arah_bawah_satum,n=arah_bawah_satum,n+arah_bawah_satut,un-
u2jrk2.5; t=t-1;
A-10 u=u-2;
end arah_bawah_satum,n=arah_bawah_satum,n.jar1;
end end
end gbr_satu9:16,9:16=arah_atas_satu9:16,9:16+arah_bawah_satu9:16,9:16.2;
end end switch function[gbr_dua]=interpolasi_2a
clear; close all;
clc; global matrik_interpolasi;
global indeks; Multidirectional Interpolation Processing
gbr_dua=matrik_interpolasi; arah_atas_dua=matrik_interpolasi;
arah_bawah_dua=matrik_interpolasi; [brs,klm]=sizematrik_interpolasi;
Multidirectional Interpolation Processing switchindeks2
case 0 0 Degree for m=brs:-1:1
for n=klm:-1:1 if arah_atas_duam,n==0
r=m; s=n+1;
jrk=1 jar=0;
while s=klm jar=jar+1jrks-n2.5;
arah_atas_duam,n=arah_atas_duam,n+arah_atas_duar,ss- njrk2.5;
s=s+1; end;
arah_atas_duam,n=arah_atas_duam,n.jar; end;
end;
A-11 end;
clear m n for m=brs:-1:1
for n=1:klm ifarah_bawah_duam,n==0
t=m; u=n-1;
jrk=1; jar1=0;
while u=1 jar1=jar1+1jrkn-u2.5;
arah_bawah_duam,n=arah_bawah_duam,n+arah_bawah_duat,un- ujrk2.5;
u=u-1; end;
arah_bawah_duam,n=arah_bawah_duam,n.jar1; end;
end; end;
gbr_dua9:16,9:16=arah_atas_dua9:16,9:16+arah_bawah_dua9:16,9:16.2; clear m n
case 1 22.5 Degree for m=1:brs
for n=klm:-1:1 if arah_atas_duam,n==0
r=m-1; s=n+2;
jar=0; jrk=sqrts-n2+m-r2;
while r=1 s=klm jar=jar+1jrkm-r12.5;
arah_atas_duam,n=arah_atas_duam,n+arah_atas_duar,ss- n2jrk2.5;
r=r-1; s=s+2;
end; arah_atas_duam,n=arah_atas_duam,n.jar;
end;
A-12 end;
end; clear m n
for m=brs:-1:1 for n=1:klm
ifarah_bawah_duam,n==0 t=m+1;
u=n-2; jrk=sqrtt-m2+n-u2;
jar1=0; while t=brs u=1
jar1=jar1+1jrkt-m12.5; arah_bawah_duam,n=arah_bawah_duam,n+arah_bawah_duat,un-
u2jrk2.5; t=t+1;
u=u-2; end;
arah_bawah_duam,n=arah_bawah_duam,n.jar1; end;
end; end;
gbr_dua9:16,9:16=arah_atas_dua9:16,9:16+arah_bawah_dua9:16,9:16.2; case 2 45 degree 135 degree counter
for m=1:brs for n=klm:-1:1
if arah_atas_duam,n==0 r=m-1;
s=n+1; jrk=1;
jar=0; arah_atas_duam,n=0;
while r=1 s=klm jar=jar+1jrkm-r2.5;
A-13 arah_atas_duam,n=arah_atas_duam,n+arah_atas_duar,sm-
rjrk2.5; r=r-1;
s=s+1; end;
arah_atas_duam,n=arah_atas_duam,n.jar; end;
end; end;
clear m n for m=brs:-1:1
for n=1:klm ifarah_bawah_duam,n==0
t=m+1; u=n-1;
jrk=1; jar1=0;
while t=brs u=1 jar1=jar1+1jrkt-m2.5;
arah_bawah_duam,n=arah_bawah_duam,n+arah_bawah_duat,ut- mjrk2.5;
t=t+1; u=u-1;
end; arah_bawah_duam,n=arah_bawah_duam,n.jar1;
end; end;
end; gbr_dua9:16,9:16=arah_atas_dua9:16,9:16+arah_bawah_dua9:16,9:16.2;
case 3 67.5 degree for m=1:brs
for n=klm:-1:1 if arah_atas_duam,n==0
r=m-2; s=n+1;
A-14 jrk=sqrts-n2+m-r2;
jar=0; while r=1 s=klm
jar=jar+1jrks-n12.5; arah_atas_duam,n=arah_atas_duam,n+arah_atas_duar,ss-
n1jrk2.5; r=r-2;
s=s+1; end;
arah_atas_duam,n=arah_atas_duam,n.jar; end;
end; end;
clear m n for m=brs:-1:1
for n=1:klm ifarah_bawah_duam,n==0
t=m+2; u=n-1;
jrk=sqrtt-m2+n-u2; jar1=0;
while t=brs u=1 jar1=jar1+1jrkn-u12.5;
arah_bawah_duam,n=arah_bawah_duam,n+arah_bawah_duat,un- u1jrk2.5;
t=t+2; u=u-1;
end; arah_bawah_duam,n=arah_bawah_duam,n.jar1;
end; end;
end; gbr_dua9:16,9:16=arah_atas_dua9:16,9:16+arah_bawah_dua9:16,9:16.2;
case 4 90 degree
A-15 for m=brs:-1:1
for n=klm:-1:1 if arah_atas_duam,n==0
r=m+1; jar=0;
jrk=1; while r=brs
jar=jar+1jrkr-m2.5; arah_atas_duam,n=arah_atas_duam,n+arah_atas_duar,nr-
mjrk2.5; r=r+1;
end; arah_atas_duam,n=arah_atas_duam,n.jar;
end; end;
end; clear m n jar
for m=1:brs for n=1:klm
ifarah_bawah_duam,n==0 t=m-1;
jar1=0; jrk=1;
while t=1 jar1=jar1+1jrkm-t2.5;
arah_bawah_duam,n=arah_bawah_duam,n+arah_bawah_duat,nm- tjrk2.5;
t=t-1; end;
arah_bawah_duam,n=arah_bawah_duam,n.jar1; end;
end; end;
gbr_dua9:16,9:16=arah_atas_dua9:16,9:16+arah_bawah_dua9:16,9:16.2;
A-16 case 5 112.5
for m=brs:-1:1 for n=brs:-1:1
if arah_atas_duam,n==0 r=m+2;
s=n+1; jrk=sqrts-n2+r-m2;
jar=0; while r=brs s=klm
jar=jar+1jrks-n12.5; arah_atas_duam,n=arah_atas_duam,n+arah_atas_duar,ss-
n1jrk2.5; r=r+2;
s=s+1; end;
arah_atas_duam,n=arah_atas_duam,n.jar; end;
end; end;
clear m n for m=1:brs
for n=1:klm ifarah_bawah_duam,n==0
t=m-2; u=n-1;
jrk=sqrtn-u2+m-t2; jar1=0;
while t=1 u=1 jar1=jar1+1jrkn-u12.5;
arah_bawah_duam,n=arah_bawah_duam,n+arah_bawah_duat,un- u1jrk2.5;
t=t-2; u=u-1;
end;
A-17 arah_bawah_duam,n=arah_bawah_duam,n.jar1;
end; end;
end; gbr_dua9:16,9:16=arah_atas_dua9:16,9:16+arah_bawah_dua9:16,9:16.2;
case 6 135 degree Counter 45 Degree for m=brs:-1:1
for n=klm:-1:1 if arah_atas_duam,n==0
r=m+1; s=n+1;
jar=0; jrk=1;
while r=brs s=klm jar=jar+1jrks-n2.5;
arah_atas_duam,n=arah_atas_duam,n+arah_atas_duar,ss- njrk2.5;
r=r+1; s=s+1;
end; arah_atas_duam,n=arah_atas_duam,n.jar;
end; end;
end; clear m n
for m=1:brs for n=1:klm
ifarah_bawah_duam,n==0 t=m-1;
u=n-1; jar1=0
jrk=1; while t=1 u=1
A-18 jar1=jar1+1jrkm-t2.5;
arah_bawah_duam,n=arah_bawah_duam,n+arah_bawah_duat,um- tjrk2.5;
t=t-1; u=u-1;
end; arah_bawah_duam,n=arah_bawah_duam,n.jar1;
end; end;
end; gbr_dua9:16,9:16=arah_atas_dua9:16,9:16+arah_bawah_dua9:16,9:16.2;
case 7 157,5 degree for m=brs:-1:1
for n=klm:-1:1 if arah_atas_duam,n==0
r=m+1; s=n+2;
jrk=sqrts-n2+m-r2; jar=0;
while r=brs s=klm jar=jar+1jrkr-m12.5;
arah_atas_duam,n=arah_atas_duam,n+arah_atas_duar,ss- n2jrk2.5;
r=r+1; s=s+2;
end; arah_atas_duam,n=arah_atas_duam,n.jar;
end; end;
end; clear m n
for m=1:brs for n=1:klm
A-19 ifarah_bawah_duam,n==0
t=m-1; u=n-2;
jrk=sqrtn-u2+m-t2; jar1=0;
while t=1 u=1 jar1=jar1+1jrkm-t12.5;
arah_bawah_duam,n=arah_bawah_duam,n+arah_bawah_duat,un- u2jrk2.5;
t=t-1; u=u-2;
end; arah_bawah_duam,n=arah_bawah_duam,n.jar1;
end; end;
end; gbr_dua9:16,9:16=arah_atas_dua9:16,9:16+arah_bawah_dua9:16,9:16.2;
end ; end switch function[gbr_tiga]=interpolasi_3a
clear; close all;
clc; global matrik_interpolasi;
global indeks; Multidirectional Interpolation Processing
gbr_tiga=matrik_interpolasi; arah_atas_tiga=matrik_interpolasi;
arah_bawah_tiga=matrik_interpolasi; [brs,klm]=sizematrik_interpolasi;
Multidirectional Interpolation Processing switchindeks3
case 0 0 Degree for m=brs:-1:1
for n=klm:-1:1
A-20 if arah_atas_tigam,n==0
r=m; s=n+1;
jrk=1; jar=0;
while s=klm jar=jar+1jrks-n2.5;
arah_atas_tigam,n=arah_atas_tigam,n+arah_atas_tigar,ss- njrk2.5;
s=s+1; end;
arah_atas_tigam,n=arah_atas_tigam,n.jar; end;
end; end;
clear m n for m=brs:-1:1
for n=1:klm ifarah_bawah_tigam,n==0
t=m; u=n-1;
jrk=1; jar1=0;
while u=1 jar1=jar1+1jrkn-u2.5;
arah_bawah_tigam,n=arah_bawah_tigam,n+arah_bawah_tigat,un- ujrk2.5;
u=u-1; end;
arah_bawah_tigam,n=arah_bawah_tigam,n.jar1; end;
end; end;
gbr_tiga9:16,9:16=arah_atas_tiga9:16,9:16+arah_bawah_tiga9:16,9:16.2; clear m n
case 1 22.5 Degree for m=1:brs
for n=klm:-1:1
A-21 if arah_atas_tigam,n==0
r=m-1; s=n+2;
jar=0; jrk=sqrts-n2+m-r2;
while r=1 s=klm jar=jar+1jrkm-r12.5;
arah_atas_tigam,n=arah_atas_tigam,n+arah_atas_tigar,ss- n2jrk2.5;
r=r-1; s=s+2;
end; arah_atas_tigam,n=arah_atas_tigam,n.jar;
end; end;
end; clear m n
for m=brs:-1:1 for n=1:klm
ifarah_bawah_tigam,n==0 t=m+1;
u=n-2; jrk=sqrtt-m2+n-u2;
jar1=0; while t=brs u=1
jar1=jar1+1jrkt-m12.5; arah_bawah_tigam,n=arah_bawah_tigam,n+arah_bawah_tigat,un-
u2jrk2.5; t=t+1;
u=u-2; end;
arah_bawah_tigam,n=arah_bawah_tigam,n.jar1; end;
end; end;
gbr_tiga9:16,9:16=arah_atas_tiga9:16,9:16+arah_bawah_tiga9:16,9:16.2; case 2 45 degree 135 degree counter
A-22 for m=1:brs
for n=klm:-1:1 if arah_atas_tigam,n==0
r=m-1; s=n+1;
jrk=1; jar=0;
arah_atas_tigam,n=0; while r=1 s=klm
jar=jar+1jrkm-r2.5; arah_atas_tigam,n=arah_atas_tigam,n+arah_atas_tigar,sm-
rjrk2.5; r=r-1;
s=s+1; end;
arah_atas_tigam,n=arah_atas_tigam,n.jar; end;
end; end;
clear m n for m=brs:-1:1
for n=1:klm ifarah_bawah_tigam,n==0
t=m+1; u=n-1;
jrk=1; jar1=0;
while t=brs u=1 jar1=jar1+1jrkt-m2.5;
arah_bawah_tigam,n=arah_bawah_tigam,n+arah_bawah_tigat,ut- mjrk2.5;
t=t+1; u=u-1;
end; arah_bawah_tigam,n=arah_bawah_tigam,n.jar1;
end; end;
A-23 end;
gbr_tiga9:16,9:16=arah_atas_tiga9:16,9:16+arah_bawah_tiga9:16,9:16.2; jar+jar1;
case 3 67.5 degree for m=1:brs
for n=klm:-1:1 if arah_atas_tigam,n==0
r=m-2; s=n+1;
jrk=sqrts-n2+m-r2; jar=0;
while r=1 s=klm jar=jar+1jrks-n12.5;
arah_atas_tigam,n=arah_atas_tigam,n+arah_atas_tigar,ss- n1jrk2.5;
r=r-2; s=s+1;
end; arah_atas_tigam,n=arah_atas_tigam,n.jar;
end; end;
end; clear m n
for m=brs:-1:1 for n=1:klm
ifarah_bawah_tigam,n==0 t=m+2;
u=n-1; jrk=sqrtt-m2+n-u2;
jar1=0; while t=brs u=1
jar1=jar1+1jrkn-u12.5; arah_bawah_tigam,n=arah_bawah_tigam,n+arah_bawah_tigat,un-
u1jrk2.5; t=t+2;
A-24 u=u-1;
end; arah_bawah_tigam,n=arah_bawah_tigam,n.jar1;
end; end;
end; gbr_tiga9:16,9:16=arah_atas_tiga9:16,9:16+arah_bawah_tiga9:16,9:16.2;
case 4 90 degree for m=brs:-1:1
for n=klm:-1:1 if arah_atas_tigam,n==0
r=m+1; jar=0;
jrk=1; while r=brs
jar=jar+1jrkr-m2.5; arah_atas_tigam,n=arah_atas_tigam,n+arah_atas_tigar,nr-
mjrk2.5; r=r+1;
end; arah_atas_tigam,n=arah_atas_tigam,n.jar;
end; end;
end; clear m n jar
for m=1:brs for n=1:klm
ifarah_bawah_tigam,n==0 t=m-1;
jar1=0; jrk=1;
while t=1 jar1=jar1+1jrkm-t2.5;
A-25 arah_bawah_tigam,n=arah_bawah_tigam,n+arah_bawah_tigat,nm-
tjrk2.5; t=t-1;
end; arah_bawah_tigam,n=arah_bawah_tigam,n.jar1;
end; end;
end; gbr_tiga9:16,9:16=arah_atas_tiga9:16,9:16+arah_bawah_tiga9:16,9:16.2;
case 5 112.5 for m=brs:-1:1
for n=brs:-1:1 if arah_atas_tigam,n==0
r=m+2; s=n+1;
jrk=sqrts-n2+r-m2; jar=0;
while r=brs s=klm jar=jar+1jrks-n12.5;
arah_atas_tigam,n=arah_atas_tigam,n+arah_atas_tigar,ss- n1jrk2.5;
r=r+2; s=s+1;
end; arah_atas_tigam,n=arah_atas_tigam,n.jar;
end; end;
end; clear m n
for m=1:brs for n=1:klm
A-26 ifarah_bawah_tigam,n==0
t=m-2; u=n-1;
jrk=sqrtn-u2+m-t2; jar1=0;
while t=1 u=1 jar1=jar1+1jrkn-u12.5;
arah_bawah_tigam,n=arah_bawah_tigam,n+arah_bawah_tigat,un- u1jrk2.5;
t=t-2; u=u-1;
end; arah_bawah_tigam,n=arah_bawah_tigam,n.jar1;
end; end;
end; gbr_tiga9:16,9:16=arah_atas_tiga9:16,9:16+arah_bawah_tiga9:16,9:16.2;
case 6 135 degree Counter 45 Degree for m=brs:-1:1
for n=klm:-1:1 if arah_atas_tigam,n==0
r=m+1; s=n+1;
jar=0; jrk=1;
while r=brs s=klm jar=jar+1jrks-n2.5;
arah_atas_tigam,n=arah_atas_tigam,n+arah_atas_tigar,ss- njrk2.5;
r=r+1; s=s+1;
end; arah_atas_tigam,n=arah_atas_tigam,n.jar;
A-27 end;
end; end;
clear m n for m=1:brs
for n=1:klm ifarah_bawah_tigam,n==0
t=m-1; u=n-1;
jar1=0 jrk=1;
while t=1 u=1 jar1=jar1+1jrkm-t2.5;
arah_bawah_tigam,n=arah_bawah_tigam,n+arah_bawah_tigat,um- tjrk2.5;
t=t-1; u=u-1;
end; arah_bawah_tigam,n=arah_bawah_tigam,n.jar1;
end; end;
end; gbr_tiga9:16,9:16=arah_atas_tiga9:16,9:16+arah_bawah_tiga9:16,9:16.2;
case 7 157,5 degree for m=brs:-1:1
for n=klm:-1:1 if arah_atas_tigam,n==0
r=m+1; s=n+2;
jrk=sqrts-n2+m-r2; jar=0;
while r=brs s=klm jar=jar+1jrkr-m12.5;
A-28 arah_atas_tigam,n=arah_atas_tigam,n+arah_atas_tigar,ss-
n2jrk2.5; r=r+1;
s=s+2; end;
arah_atas_tigam,n=arah_atas_tigam,n.jar; end;
end; end;
clear m n for m=1:brs
for n=1:klm ifarah_bawah_tigam,n==0
t=m-1; u=n-2;
jrk=sqrtn-u2+m-t2; jar1=0;
while t=1 u=1 jar1=jar1+1jrkm-t12.5;
arah_bawah_tigam,n=arah_bawah_tigam,n+arah_bawah_tigat,un- u2jrk2.5;
t=t-1; u=u-2;
end; arah_bawah_tigam,n=arah_bawah_tigam,n.jar1;
end; end;
end; gbr_tiga9:16,9:16=arah_atas_tiga9:16,9:16+arah_bawah_tiga9:16,9:16.2;
end end switch
A-29 clear;
close all; clc;
global matrik_interpolasi global indeks
Baca input yang tanpa error masukan_sehat=imreadboat.jpg;
Baca input yang sudah rusak x_input=imreadboat1.jpg;
x_input=doublex_input; bagi blok 8 8
[bariss,kolomm]=sizex_input; baris_blok=roundbariss8;
kolom_blok=roundkolomm8; m1:baris_blok=8;
n1:kolom_blok=8; A=mat2cellx_input,[m],[n];
cek blok error matriks_bantu=zeros8,8;
for j=1:baris_blok for k=1:kolom_blok
if A{j,k}==matriks_bantu x=[A{j-1,k-1} A{j-1,k} A{j-1,k+1}];
y=[A{j-1,k-1};A{j,k-1};A{j+1,k-1}]; z=[A{j-1,k+1};A{j,k+1};A{j+1,k+1}];
s=[A{j+1,k-1} A{j+1,k} A{j+1,k+1}]; bagian atas
for m=2:7 for n=2:23
S_x1m-1,n-1=-xm-1,n-1-2xm,n-1-xm+1,n-1+xm- 1,n+1+2xm,n+1+xm+1,n+1;
S_y1m-1,n-1=xm-1,n-1+2xm-1,n+xm-1,n+1-xm+1,n- 1-2xm+1,n-xm+1,n+1;
G_xy1m-1,n-1=sqrtS_x1m-1,n-1.2+S_y1m-1,n-1.2; sudut1m-1,n-1=atanS_y1m-1,n-1S_x1m-1,n-1+eps;
sudut1_ubahm-1,n-1=rad2degsudut1m-1,n-1; KLASIFIKASI SUDUT
K1m-1,n-1=modroundsudut1_ubahm-1,n-122.5,8; end;
end; clear m n
samping kiri for m=8:17
for n=2:7
A-30 S_x2m-1,n-1=-ym-1,n-1-2ym,n-1-ym+1,n-1+ym-
1,n+1+2ym,n+1+ym+1,n+1; S_y2m-1,n-1=ym-1,n-1+2ym-1,n+ym-1,n+1-ym+1,n-
1-2ym+1,n-ym+1,n+1; G_xy2m-1,n-1=sqrtS_x2m-1,n-1.2+S_y2m-1,n-1.2;
sudut2m-1,n-1=atanS_y2m-1,n-1S_x2m-1,n-1+eps; sudut2_ubahm-1,n-1=rad2degsudut2m-1,n-1;
KLASIFIKASI SUDUT K2m-1,n-1=modroundsudut2_ubahm-1,n-122.5,8;
end; end;
clear m n samping kanan
for m=8:17 for n=2:7
S_x3m-1,n-1=-zm-1,n-1-2zm,n-1-zm+1,n-1+zm- 1,n+1+2zm,n+1+zm+1,n+1;
S_y3m-1,n-1=zm-1,n-1+2zm-1,n+zm-1,n+1-zm+1,n- 1-2zm+1,n-zm+1,n+1;
G_xy3m-1,n-1=sqrtS_x3m-1,n-1.2+S_y3m-1,n-1.2; sudut3m-1,n-1=atanS_y3m-1,n-1S_x3m-1,n-1+eps;
sudut3_ubahm-1,n-1=rad2degsudut3m-1,n-1; KLASIFIKASI SUDUT
K3m-1,n-1=modroundsudut3_ubahm-1,n-122.5,8; end;
end; clear m n
bawah for m=2:7
for n=2:23 S_x4m-1,n-1=-sm-1,n-1-2sm,n-1-sm+1,n-1+sm-
1,n+1+2sm,n+1+sm+1,n+1; S_y4m-1,n-1=sm-1,n-1+2sm-1,n+sm-1,n+1-sm+1,n-1-
2sm+1,n-sm+1,n+1; G_xy4m-1,n-1=sqrtS_x4m-1,n-1.2+S_y4m-1,n-1.2;
sudut4m-1,n-1=atanS_y4m-1,n-1S_x4m-1,n-1+eps; sudut4_ubahm-1,n-1=rad2degsudut4m-1,n-1;
KLASIFIKASI SUDUT K4m-1,n-1=modroundsudut4_ubahm-1,n-122.5,8;
end; end;
K_bantu1:10,1:10=eps; K2_baru=K27:16,1:6;
K3_baru=K37:16,1:6; G2=G_xy27:16,1:6;
G3=G_xy37:16,1:6;
A-31 K_gab=[K1;K2_baru K_bantu K3_baru;K4];
G_gab=[G_xy1;G2 K_bantu G3;G_xy4]; sudut 45
k_duabaris,kolom=K_gabbaris,kolom; if k_duabaris,kolom==2
k_duabaris,kolom=1; else
k_duabaris,kolom=0; end;
k_dua1,1:14=0;k_dua2,1:13=0;k_dua3,1:12=0;k_dua4,1:11=0; k_dua5,1:10=0;k_dua6,1:9=0;k_dua7:9,1:6=0;k_dua10,1:5=0;
k_dua11,1:4=0;k_dua12,1:3=0;k_dua13,1:2=0;k_dua14,1=0; k_dua9,22=0;k_dua10,21:22=0;k_dua11,20:22=0;k_dua12,19:22=0;
k_dua13,18:22=0;k_dua14:16,17:22=0;k_dua17,14:22=0; k_dua18,13:22=0;k_dua19,12:22=0;k_dua20,11:22=0;k_dua21,10:22=0;
k_dua22,9:22=0; Dk_dua=Dk_dua+G_gabbaris,kolom.k_duabaris,kolom;
sudut 67.5 k_tigabaris,kolom=K_gabbaris,kolom;
if k_tigabaris,kolom==3 k_tigabaris,kolom=1;
else k_tigabaris,kolom=0;
end; k_tiga1:5,1:9=0;k_tiga1:3,10=0;k_tiga1,11=0;
k_tiga6:7,20:22=0;k_tiga4:5,21:22=0;k_tiga2:3,22=0; k_tiga7:11,1:6=0;k_tiga12:13,1:5=0;k_tiga14:15,1:4=0;k_tiga16:17,1:3=0;
k_tiga18:19,1:2=0;k_tiga20:21,1=0;k_tiga8:9,19:22=0; k_tiga10:11,18:22=0;k_tiga12:16,17:22=0;k_tiga17:22,15:22=0;
k_tiga18:22,14=0;k_tiga20:22,13=0;k_tiga22,12=0; Dk_tiga=Dk_tiga+G_gabbaris,kolom.k_tigabaris,kolom;
A-32 sudut 90
k_empatbaris,kolom=K_gabbaris,kolom; if k_empatbaris,kolom==4
k_empatbaris,kolom=1; else
k_empatbaris,kolom=0; end;
k_empat1:22,1:6=0;k_empat1:22,17:22=0; Dk_nol=0;Dk_satu=1;Dk_dua=2;Dk_tiga=3;Dk_empat=3;Dk_lima=5;Dk_enam=
6;Dk_tujuh=7; for baris=1:22
for kolom=1:22 sudut 0
k_nolbaris,kolom=K_gabbaris,kolom; if k_nolbaris,kolom==0
k_nolbaris,kolom=1; else
k_nolbaris,kolom=0; end;
k_nol1:6,1:22=0;k_nol17:22,1:22=0; Dk_nol=Dk_nol+G_gabbaris,kolom.k_nolbaris,kolom;
sudut 22.5 k_satubaris,kolom=K_gabbaris,kolom;
if k_satubaris,kolom==1 k_satubaris,kolom=1;
else k_satubaris,kolom=0;
end; k_satu1:6,1:11=0;k_satu1:5,12:13=0;k_satu1:4,14:15=0;
k_satu3,16:17=0;k_satu2,16:19=0;k_satu1,16:21=0; k_satu7:8,1:6=0;k_satu9,1:5=0;k_satu10,1:3=0;
k_satu11,1=0;k_satu12,22=0;k_satu13,20:22=0; k_satu14,18:22=0;k_satu15:16,17:22=0;k_satu17:22,12:22=0;
k_satu18:22,10:11=0;k_satu19:22,8:9=0;k_satu20:22,6:7=0;k_satu21:22,4:5 =0;
k_satu22,2:3=0; Dk_satu=Dk_satu+G_gabbaris,kolom.k_satubaris,kolom;
Dk_empat=Dk_empat+G_gabbaris,kolom.k_empatbaris,kolom; sudut 112.5
k_limabaris,kolom=K_gabbaris,kolom;
A-33 if k_limabaris,kolom==5
k_limabaris,kolom=1; else
k_limabaris,kolom=0; end;
k_enam1,9:22=0;k_enam2,10:22=0;k_enam3,11:22=0;k_enam4,12:22=0; k_enam5,13:22=0;k_enam6,14:22=0;k_enam7:9,17:22=0;k_enam9,1=0;
k_enam10,1:2=0;k_enam11,1:3=0;k_enam12,1:4=0;k_enam13,1:5=0; k_enam14:16,1:6=0;k_enam10,18:22=0;k_enam11,19:22=0;k_enam12,20:2
2=0; k_enam13,21:22=0;k_enam14,22=0;k_enam17,1:9=0;k_enam18,1:10=0;
k_enam19,1:11=0;k_enam20,1:12=0;k_enam21,1:13=0;k_enam22,1:14=0; Dk_enam=Dk_enam+G_gabbaris,kolom.k_enambaris,kolom;
sudut 157.5 k_tujuhbaris,kolom=K_gabbaris,kolom;
if k_tujuhbaris,kolom==7 k_tujuhbaris,kolom=1;
else k_tujuhbaris,kolom=0;
end; k_tujuh1,2:22=0;k_tujuh2,4:22=0;k_tujuh3,6:22=0;
k_tujuh4,8:22=0;k_tujuh5,10:22=0;k_tujuh6,12:22=0; k_tujuh7:8,17:22=0;k_tujuh9,18:22=0;k_tujuh10,20:22=0;
k_tujuh18:22,13:17=0;k_tujuh11,22=0;k_tujuh12,1=0; k_tujuh13,1:3=0;k_tujuh14,1:5=0;k_tujuh15:16,1:6=0;
k_tujuh17,1:11=0;k_tujuh18,1:13=0;k_tujuh19,1:15=0; k_tujuh20,1:17=0;k_tujuh21,1:19=0;k_tujuh22,1:21=0;
Dk_tujuh=Dk_tujuh+G_gabbaris,kolom.k_tujuhbaris,kolom;
A-34 end;baris
end;kolom mencari 3 terbesar
T=0.25; Dk_gab=[Dk_nol,Dk_satu,Dk_dua,Dk_tiga,Dk_empat,Dk_lima,Dk_enam,Dk_tuj
uh]; Dk_maks_gab=maxDk_gab;
S_cek=[]; for cek=1:8
if Dk_gabcek1-TDk_maks_gab S_cekcek=Dk_gabcek;
end; end;
[bar,col]=sizeS_cek; if col~=0
sort_S=sortS_cek; panjang=lengthsort_S;
if panjang=1|panjang=2 Dk_gab_tiga_terbesar=sort_S;
elseif panjang2 Dk_gab_tiga_terbesar=sort_S1,panjang-2:panjang;
end; ax=findDk_gab_tiga_terbesar==0;
cx=lengthax; bx=findDk_gab_tiga_terbesar~=0;
[dx,ex]=sizeDk_gab_tiga_terbesar; for loop=1:ex
if Dk_gab_tiga_terbesarloop==0 Dk_gab_tiga_terbesar_akhir=Dk_gab_tiga_terbesar1,cx+1:ex;
elseif Dk_gab_tiga_terbesarloop~=0 Dk_gab_tiga_terbesar_akhir=Dk_gab_tiga_terbesar;
end; break
end; k_lima2:3,1=0;k_lima4:5,1:2=0;k_lima6:7,1:3=0;k_lima8:9,1:4=0;
k_lima10:11,1:5=0;k_lima12:22,1:6=0;k_lima17:22,7:8=0; k_lima18:22,9=0;k_lima20:22,10=0;k_lima22,11=0;k_lima1,12:22=0;
k_lima2:3,13:22=0;k_lima4:5,14:22=0;k_lima6,15:22=0; k_lima7:11,17:22=0;k_lima12:13,18:22=0;k_lima14:15,19:22=0;
k_lima16:17,20:22=0;k_lima18:19,21:22=0;k_lima20:21,22=0;
A-35 Dk_lima=Dk_lima+G_gabbaris,kolom.k_limabaris,kolom;
sudut 135 k_enambaris,kolom=K_gabbaris,kolom;
if k_enambaris,kolom==6 k_enambaris,kolom=1;
else k_enambaris,kolom=0;
end; else
S_cek=S_cek-1; Dk_gab_tiga_terbesar_akhir=S_cek;
end; ukur=lengthDk_gab_tiga_terbesar_akhir;
if ukur=3 Dk_gab_tiga_terbesar_akhir=Dk_gab_tiga_terbesar_akhir;
elseif ukur3 Dk_gab_tiga_terbesar_akhir=Dk_gab_tiga_terbesar_akhir1,ukur-
2:ukur; end;
[fg,hj]=sizeDk_gab_tiga_terbesar_akhir; if hj==1
if Dk_gab_tiga_terbesar_akhir==Dk_nol indeks1,1=0;
elseif Dk_gab_tiga_terbesar_akhir==Dk_satu indeks1,1=1;
elseif Dk_gab_tiga_terbesar_akhir==Dk_dua indeks1,1=2;
elseif Dk_gab_tiga_terbesar_akhir==Dk_tiga indeks1,1=3;
elseif Dk_gab_tiga_terbesar_akhir ==Dk_empat indeks1,1=4;
elseif Dk_gab_tiga_terbesar_akhir ==Dk_lima indeks1,1=5;
elseif Dk_gab_tiga_terbesar_akhir ==Dk_enam indeks1,1=6;
elseif Dk_gab_tiga_terbesar_akhir ==Dk_tujuh indeks1,1=7;
end; elseif hj==2
for apa=1:2 if Dk_gab_tiga_terbesar_akhir1,apa==Dk_nol
A-36 indeks1,apa=0;
elseif Dk_gab_tiga_terbesar_akhir1,apa==Dk_satu indeks1,apa=1;
elseif Dk_gab_tiga_terbesar_akhir1,apa==Dk_dua indeks1,apa=2;
elseif Dk_gab_tiga_terbesar_akhir1,apa==Dk_tiga indeks1,apa=3;
elseif Dk_gab_tiga_terbesar_akhir1,apa==Dk_empat indeks1,apa=4;
elseif Dk_gab_tiga_terbesar_akhir1,apa==Dk_lima indeks1,apa=5;
elseif Dk_gab_tiga_terbesar_akhir1,apa==Dk_enam indeks1,apa=6;
elseif Dk_gab_tiga_terbesar_akhir1,apa==Dk_tujuh indeks1,apa=7;
end; end;
elseif hj==3 for sapa=1:3
if Dk_gab_tiga_terbesar_akhir1,sapa==Dk_nol indeks1,sapa=0;
elseif Dk_gab_tiga_terbesar_akhir1,sapa==Dk_satu indeks1,sapa=1;
elseif Dk_gab_tiga_terbesar_akhir1,sapa==Dk_dua indeks1,sapa=2;
elseif Dk_gab_tiga_terbesar_akhir1,sapa==Dk_tiga indeks1,sapa=3;
elseif Dk_gab_tiga_terbesar_akhir1,sapa==Dk_empat indeks1,sapa=4;
elseif Dk_gab_tiga_terbesar_akhir1,sapa==Dk_lima indeks1,sapa=5;
elseif Dk_gab_tiga_terbesar_akhir1,sapa==Dk_enam indeks1,sapa=6;
elseif Dk_gab_tiga_terbesar_akhir1,sapa==Dk_tujuh indeks1,sapa=7;
end; end;
end;end if [as,sa]=sizeindeks
if sa==2 if indeks1,1==indeks1,2
indeks=indeks1,1; end;
elseif sa==3 if indeks1,1==indeks1,2indeks1,1==indeks1,3
A-37 indeks=indeks1,1;
elseif indeks1,1==indeks1,3 indeks=[indeks1,2 indeks1,3];
elseif indeks1,1==indeks1,2 indeks=[indeks1,1 indeks1,3];
elseif indeks1,2==indeks1,3 indeks=[indeks1,1 indeks1,2];
end; end;
interpolasi dan image mixing [ef,gh]=sizeindeks;
matrik_interpolasi=[A{j-1,k-1} A{j-1,k} A{j-1,k+1};A{j,k-1} A{j,k} A{j,k+1};A{j+1,k-1} A{j+1,k} A{j+1,k+1}];
switch gh case 1
gbr_satu=interpolasi_1a; hasil_inter=gbr_satu;
for ab=9:16 for cd=9:16
M_tam1,1=gbr_satuab,cd; M_tam1,2=gbr_duaab,cd;
if gbr_duaab,cdrataab,cd+stdab,cdgbr_satuab,cdrataab,cd+stdab,cd
hasil_interab,cd=maxM_tam; elseif
gbr_satuab,cdrataab,cd+stdab,cdgbr_duaab,cd=rataab,cd+stdab,c d...
gbr_duaab,cd=rataab,cd-stdab,cd hasil_interab,cd=maxM_tam;
elseif gbr_satuab,cdrataab,cd+stdab,cdgbr_duaab,cdrataab,cd-stdab,cd
hasil_interab,cd=gbr_satuab,cd+gbr_duaab,cd.2; elseif
gbr_satuab,cd=rataab,cd+stdab,cdgbr_satuab,cd=rataab,cd- stdab,cd...
gbr_duaab,cdrataab,cd+stdab,cd hasil_interab,cd=maxM_tam;
elseif gbr_satuab,cd=rataab,cd+stdab,cdgbr_satuab,cd=rataab,cd-
stdab,cd... gbr_duaab,cd=rataab,cd+stdab,cdgbr_duaab,cd=rataab,cd-
stdab,cd hasil_interab,cd=gbr_satuab,cd+gbr_duaab,cd.2;
A-38 elseif
gbr_satuab,cd=rataab,cd+stdab,cdgbr_satuab,cd=rataab,cd- stdab,cd...
gbr_duaab,cdrataab,cd-stdab,cd hasil_interab,cd=minM_tam;
elseif gbr_satuab,cdrataab,cd- stdab,cdgbr_duaab,cdrataab,cd+stdab,cd
hasil_interab,cd=gbr_satuab,cd+gbr_duaab,cd.2; elseif gbr_satuab,cdrataab,cd-
stdab,cdgbr_duaab,cd=rataab,cd+stdab,cd... gbr_duaab,cd=rataab,cd-stdab,cd
hasil_interab,cd=minM_tam; elseif gbr_satuab,cdrataab,cd-
stdab,cdgbr_duaab,cdrataab,cd-stdab,cd hasil_interab,cd=minM_tam;
end; end;
end; case 3
case 2 gbr_satu=interpolasi_1a;
gbr_dua=interpolasi_2a; for aa=9:16
for bb=9:16 rataaa,bb=gbr_satuaa,bb+gbr_duaaa,bb2;
stdaa,bb=sqrtgbr_satuaa,bb-rataaa,bb.2+gbr_duaaa,bb- rataaa,bb.2;
end; end;
M_tamp=[]; gbr_satu=interpolasi_1a;
gbr_dua=interpolasi_2a; gbr_tiga=interpolasi_3a;
for cc=9:16 for dd=9:16
ratacc,dd=gbr_satucc,dd+gbr_duacc,dd+gbr_tigacc,dd.3; stdcc,dd=sqrtgbr_satucc,dd-ratacc,dd.2+gbr_duacc,dd-
ratacc,dd.2+... gbr_tigacc,dd-ratacc,dd.2.2;
A-39 end;
end; M_tamp=[];
for ee=9:16 for ff=9:16
M_tam1,1=gbr_satuee,ff; M_tam1,2=gbr_duaee,ff;
M_tam1,3=gbr_tigaee,ff; if
gbr_tigaee,ffrataee,ff+stdee,ffgbr_duaee,ffrataee,ff+stdee,ffgb r_satuee,ffrataee,ff+stdee,ff
hasil_interee,ff=maxM_tam; elseif
gbr_tigaee,ffrataee,ff+stdee,ffgbr_duaee,ffrataee,ff+stdee,ffgb r_satuee,ff=rataee,ff+stdee,ff...
gbr_satuee,ff=rataee,ff- stdee,ff|gbr_tigaee,ffrataee,ff+stdee,ffgbr_duaee,ff=rataee,ff+std
ee,ff... gbr_duaee,ff=rataee,ff-
stdee,ffgbr_satuee,ffrataee,ff+stdee,ff|gbr_tigaee,ff=rataee,ff+st dee,ff...
gbr_tigaee,ff=rataee,ff- stdee,ffgbr_duaee,ffrataee,ff+stdee,ffgbr_satuee,ffrataee,ff+st
dee,ff hasil_interee,ff=maxM_tam;
elseif gbr_tigaee,ffrataee,ff+stdee,ffgbr_duaee,ffrataee,ff+stdee,ffgb
r_satuee,ffrataee,ff-stdee,ff|... gbr_tigaee,ffrataee,ff+stdee,ffgbr_duaee,ffrataee,ff-
stdee,ffgbr_satuee,ffrataee,ff+stdee,ff|... gbr_tigaee,ffrataee,ff-
stdee,ffgbr_duaee,ffrataee,ff+stdee,ffgbr_satuee,ffrataee,ff+st dee,ff
hasil_interee,ff=gbr_satuee,ff+gbr_duaee,ff+gbr_tigaee,ff.3; elseif
gbr_tigaee,ff=rataee,ff+stdee,ffgbr_tigaee,ff=rataee,ff- stdee,ffgbr_duaee,ffrataee,ff+stdee,ff...
gbr_satuee,ff=rataee,ff+stdee,ff gbr_satuee,ff=rataee,ff- stdee,ff|gbr_tigaee,ff=rataee,ff+stdee,ff...
gbr_tigaee,ff=rataee,ff- stdee,ffgbr_duaee,ff=rataee,ff+stdee,ffgbr_duaee,ff=rataee,ff-
stdee,ff...
A-40 gbr_satuee,ffrataee,ff+stdee,ff|gbr_tigaee,ffrataee,ff+stdee,ffgbr
_duaee,ff=rataee,ff+stdee,ff... gbr_duaee,ff=rataee,ff-
stdee,ffgbr_satuee,ff=rataee,ff+stdee,ff gbr_satuee,ff=rataee,ff-stdee,ff
hasil_interee,ff=maxM_tam; elseif
gbr_tigaee,ff=rataee,ff+stdee,ffgbr_tigaee,ff=rataee,ff- stdee,ffgbr_duaee,ff=rataee,ff+stdee,ff...
gbr_duaee,ff=rataee,ff- stdee,ffgbr_satuee,ff=rataee,ff+stdee,ffgbr_satuee,ff=rataee,ff
-stdee,ff hasil_interee,ff=gbr_satuee,ff+gbr_duaee,ff+gbr_tigaee,ff.3;
end;end switch A{j,k}=hasil_inter9:16,9:16;
B=cell2matA; end;
end; end;
figure1; imshowmasukan_sehat,titlecitra tanpa error;
figure2; x_input=uint8x_input;
elseif gbr_tigaee,ff=rataee,ff+stdee,ffgbr_tigaee,ff=rataee,ff-
stdee,ffgbr_duaee,ffrataee,ff-stdee,ff... gbr_satuee,ff=rataee,ff+stdee,ffgbr_satuee,ff=rataee,ff-
stdee,ff|gbr_tigaee,ff=rataee,ff+stdee,ff... gbr_tigaee,ff=rataee,ff-
stdee,ffgbr_duaee,ff=rataee,ff+stdee,ffgbr_duaee,ff=rataee,ff- stdee,ff...
gbr_satuee,ffrataee,ff-stdee,ff|gbr_tigaee,ffrataee,ff- stdee,ffgbr_duaee,ff=rataee,ff+stdee,ff...
gbr_duaee,ff=rataee,ff- stdee,ffgbr_satuee,ff=rataee,ff+stdee,ffgbr_satuee,ff=rataee,ff
-stdee,ff hasil_interee,ff=minM_tam;
elseif gbr_tigaee,ffrataee,ff- stdee,ffgbr_duaee,ffrataee,ff+stdee,ffgbr_satuee,ffrataee,ff-
stdee,ff|... gbr_tigaee,ffrataee,ff-stdee,ffgbr_duaee,ffrataee,ff-
stdee,ffgbr_satuee,ffrataee,ff+stdee,ff|...
A-41 gbr_tigaee,ffrataee,ff+stdee,ffgbr_duaee,ffrataee,ff-
stdee,ffgbr_satuee,ffrataee,ff-stdee,ff hasil_inter_2ee,ff=gbr_satuee,ff+gbr_duaee,ff+gbr_tigaee,ff.3;
elseif gbr_tigaee,ffrataee,ff- stdee,ffgbr_duaee,ff=rataee,ff+stdee,ffgbr_duaee,ff=rataee,ff-
stdee,ff... gbr_satuee,ffrataee,ff-stdee,ff|gbr_tigaee,ffrataee,ff-
stdee,ffgbr_duaee,ffrataee,ff-stdee,ff... gbr_satuee,ff=rataee,ff+stdee,ffgbr_satuee,ff=rataee,ff-
stdee,ff|gbr_tigaee,ff=rataee,ff+stdee,ff... gbr_tigaee,ff=rataee,ff-stdee,ffgbr_duaee,ffrataee,ff-
stdee,ffgbr_satuee,ffrataee,ff-stdee,ff hasil_interee,ff=minM_tam;
elseif gbr_tigaee,ffrataee,ff-stdee,ffgbr_satuee,ffrataee,ff- stdee,ffgbr_duaee,ffrataee,ff-stdee,ff
hasil_interee,ff=minM_tam; elseif
gbr_tigaee,ffrataee,ff+stdee,ffgbr_duaee,ff=rataee,ff+stdee,ffg br_duaee,ff=rataee,ff-stdee,ff...
gbr_satuee,ffrataee,ff- stdee,ff|gbr_tigaee,ffrataee,ff+stdee,ffgbr_duaee,ffrataee,ff-
stdee,ff... gbr_satuee,ff=rataee,ff+stdee,ffgbr_satuee,ff=rataee,ff-
stdee,ff|gbr_tigaee,ffrataee,ff-stdee,ff... gbr_duaee,ff=rataee,ff+stdee,ffgbr_duaee,ff=rataee,ff-
stdee,ffgbr_satuee,ffrataee,ff+stdee,ff|... gbr_tigaee,ffrataee,ff-
stdee,ffgbr_duaee,ffrataee,ff+stdee,ffgbr_satuee,ff=rataee,ff+s tdee,ff...
gbr_satuee,ff=rataee,ff- stdee,ff|gbr_tigaee,ff=rataee,ff+stdee,ffgbr_tigaee,ff=rataee,ff-
stdee,ff... gbr_duaee,ffrataee,ff-
stdee,ffgbr_satuee,ffrataee,ff+stdee,ff|gbr_tigaee,ff=rataee,ff+st dee,ff...
gbr_tigaee,ff=rataee,ff- stdee,ffgbr_duaee,ffrataee,ff+stdee,ffgbr_satuee,ffrataee,ff-
stdee,ff hasil_interee,ff=gbr_satuee,ff+gbr_duaee,ff+gbr_tigaee,ff.3;
end; end;
end;
A-42 imshowx_input,titlecitra yang rusak;
figure3; x_hasil=uint8B;
imshowx_hasil,titlecitra perbaikan; ---------------------------------------------------
Perhitungan SNR awal sebelum rekonstruksi ---------------------------------------------------
masukan_sehat=doublemasukan_sehat; masukan_sehat=reshapemasukan_sehat,1,barisskolomm;
--------------------------------------------------- Perhitungan SNR akhir sesudah rekonstruksi
--------------------------------------------------- masukan_sehat=doublemasukan_sehat;
sdh_rekonstruksi=reshapeB,1,barisskolomm; MSE_rekonstruksi=summasukan_sehat-sdh_rekonstruksi.2;
PSNR_rekonstruksi=10.log10255.2.MSE_rekonstruksibarisskolomm; disp[Nilai SNR akhir sesudah rekonstruksi = ,num2strPSNR_rekonstruksi,
dB]; disp ;
x_sakit=doublex_input; x_sakit=reshapex_sakit,1,barisskolomm;
MSE_sakit=summasukan_sehat-x_sakit.2; PSNR_sakit=10.log10255.2.MSE_sakitbarisskolomm;
disp[Nilai SNR awal sebelum rekonstruksi = ,num2strPSNR_sakit, dB]; disp ;
kenaikan_PSNR=PSNR_rekonstruksi-PSNR_sakit; disp[Perbaikan SNR sebesar ,num2strkenaikan_PSNR, dB];
disp ; if PSNR_sakit = PSNR_rekonstruksi
dispRekonstruksi telah berhasil; else
dispRekonstruksi gagal; end;
LAMPIRAN B
DATA CITRA
B-1 Gambar B.1 a citra rusak ’foreman.jpg 512 x 512’
Gambar B.1 b citra hasil penyembunyian error ’foreman.jpg 512 x 512’
B-2 Gambar B.2 a citra tanpa error ’taman.jpg 512 x 512 piksel’
Gambar B.2 b citra yang rusak ’taman.jpg 512 x 512 piksel’
B-3 Gambar B.2 c citra hasil perbaikan ’taman.jpg 512 x 512 piksel’
Gambar B.2 dcitra tanpa error ’taman.jpg256 x 256 piksel’
B-4 Gambar B.2 e citra rusak ’taman.jpg 256 x 256 piksel’
Gambar B.2fcitra hasil perbaikan ’taman.jpg256 x 256 piksel’
B-5 Gambar B.3 acitra tanpa error’lena.tif 512 x 512 piksel’
Gambar B.3 b citra rusak’lena.tif 512 x 512 piksel’
B-6 Gambar B.3c citra hasil perbaikan’lena.tif 512 x 512 piksel’
Gambar B.3 dcitra tanpa error’lena.tif 256 x 256 piksel’
B-7 Gambar B.3 e citra rusak’lena.tif 256 x 256 piksel’
Gambar B.3f citra hasil perbaikan’lena.tif 256 x 256 piksel’
B-8 Gambar B.4 a citra tanpa error ’baboon.tif 512 x 512 piksel’
Gambar B.4 b citra rusak ’baboon.tif 512 x 512 piksel’
B-9 Gambar B.4 c citra hasil penyembunyian error ’baboon.tif 512 x 512 piksel’
Gambar B.4 d citra tanpa error ’baboon.tif 256 x 256 piksel’
B-10 Gambar B.4 e citra rusak ’baboon.tif 256 x 256 piksel’
Gambar B.4 f citra hasil penyembunyian error ’baboon.tif 256 x 256 piksel’
B-11
1
Universitas Kristen Maranatha
BAB I PENDAHULUAN