σ = 10 28.23 30.15 28.19 30.12 28.24 30.07 σ = 15 24.73 27.23 24.71 27.26 24.76 27.15 σ = 20 22.06 24.63 22.14 24.84 22.09 24.61 σ = 25 20.28 22.98 20.32 22.98 20.31 22.89 σ = 50 14.58 17.20 14.72 17.31 14.56 17.10 σ = 75 11.72 14.23 11.80 14.25 11.62 14.10 σ = 100 10.18 12.63 10.25 12.71 10.03 12.49
Hasil penelitian nilai PSNR training 30 image dengan EK-SVD (dalam dB) Tingkat
Noise
Gambar
Lena Barbara Boat
Sebelum Sesudah Sebelum Sesudah Sebelum Sesudah
σ = 10 28.2 29.98 28.23 29.94 28.14 29.96 σ = 15 24.58 27.12 24.75 27.37 24.68 27.1 σ = 20 22.21 25 22.09 24.9 22.13 24.84 σ = 25 20.3 23.12 20.33 23.24 20.26 22.98 σ = 50 14.64 17.45 14.75 17.52 14.53 17.29 σ = 75 11.67 14.37 11.83 14.52 11.6 14.29 σ = 100 10.16 12.83 10.2 12.79 10.09 12.74
Hasil penelitian nilai PSNR training corrupt image dengan K-SVD (dalam dB) Tingkat
Noise
Gambar
Lena Barbara Boat
Sebelum Sesudah Sebelum Sesudah Sebelum Sesudah
σ = 10 28.13 30.4 28.22 30.29 28.15 30.08
= 75 11.78 14.23 11.84 14.28 11.67 14.07
σ = 100 10.11 12.5 10.23 12.61 10.03 12.33
Hasil penelitian nilai PSNR training corrupt image dengan EK-SVD (dalam dB) Tingkat
Noise
Gambar
Lena Barbara Boat
Sebelum Sesudah Sebelum Sesudah Sebelum Sesudah
σ = 10 28.22 30.13 28.22 29.99 28.14 29.90 σ = 15 24.56 27.15 24.73 27.32 24.66 27.12 σ = 20 22.21 25.04 22.10 24.88 22.18 24.83 σ = 25 20.22 23.05 20.36 23.21 20.29 23.00 σ = 50 14.57 17.37 14.66 17.44 14.50 17.27 σ = 75 11.76 14.47 11.84 14.50 11.70 14.40 σ = 100 10.19 12.83 10.23 12.81 10.07 12.75
Hasil penelitian waktu learning antara K-SVD dengan EK-SVD untuk training 30 image (dalam second)
Tingkat Noise
Gambar
Lena Barbara Boat
KSVD EK-SVD KSVD EK-SVD KSVD EK-SVD
σ = 10 52.65 33.74 58.37 38.02 49.25 21.84 σ = 15 53.88 32.74 52.85 37.98 49.44 21.44 σ = 20 53.48 32.40 55.03 38.01 49.78 21.41 σ = 25 58.07 36.01 54.73 35.45 45.93 21.20 σ = 50 56.47 34.44 52.65 36.13 45.94 21.41 σ = 75 49.56 31.70 46.31 36.08 45.96 22.24 σ = 100 52.63 31.06 52.74 36.12 45.97 22.56
Noise
KSVD EK-SVD KSVD EK-SVD KSVD EK-SVD
σ = 10 22.46 11.11 23.49 12.83 21.97 7.76 σ = 15 23.88 11.75 23.03 13.92 22.25 7.68 σ = 20 23.38 12.06 24.08 12.86 21.51 8.00 σ = 25 22.84 11.17 24.23 12.07 22.50 7.73 σ = 50 23.52 11.09 22.32 12.69 23.22 7.66 σ = 75 23.98 11.88 23.31 14.07 22.23 7.73 σ = 100 23.95 11.34 24.59 12.26 22.54 7.66
Hasil penelitian nilai PSNR gambar Boat dari 3 variasi jenis noise yang berbeda dengan training 30 image K-SVD (dalam dB)
Tingkat Noise
Jenis Noise
Gausian Salt & Pepper Speckle
Sebelum Sesudah Sebelum Sesudah Sebelum Sesudah σ = 10 28.24 30.07 33.02 33.09 33.66 33.56 σ = 15 24.76 27.15 31.37 32.05 30.13 31.44 σ = 20 22.09 24.61 28.08 29.91 27.57 29.57 σ = 25 20.31 22.89 25.63 27.75 25.62 27.82 σ = 50 14.56 17.10 19.77 22.34 19.67 22.20 σ = 75 11.62 14.10 16.08 18.62 16.24 18.82 σ = 100 10.03 12.49 13.65 16.11 13.87 16.44
Noise
Sebelum Sesudah Sebelum Sesudah Sebelum Sesudah
σ = 10 28.14 29.96 33.02 33.12 33.61 32.96 σ = 15 24.68 27.10 31.37 32.29 30.17 31.19 σ = 20 22.13 24.84 27.47 30.21 27.56 29.48 σ = 25 20.26 22.98 25.46 28.59 25.65 27.96 σ = 50 14.53 17.29 19.85 23.05 19.66 22.43 σ = 75 11.60 14.29 16.04 18.94 16.21 19.01 σ = 100 10.09 12.74 13.63 16.40 13.90 16.69
Hasil penelitian nilai PSNR gambar Boat dari 3 variasi jenis noise yang berbeda dengan training corrupt image K-SVD (dalam dB)
Tingkat Noise
Jenis Noise
Gausian Salt & Pepper Speckle
Sebelum Sesudah Sebelum Sesudah Sebelum Sesudah
σ = 10 28.15 30.08 34.64 33.88 33.61 33.66 σ = 15 24.63 26.96 30.52 31.64 30.10 31.44 σ = 20 22.20 24.58 27.20 29.13 27.55 29.49 σ = 25 20.24 22.65 25.89 27.99 25.61 27.88 σ = 50 14.56 16.96 19.89 22.45 19.63 22.15 σ = 75 11.67 14.07 16.08 18.66 16.23 18.82 σ = 100 10.03 12.33 13.65 16.14 13.83 16.39
Noise
Sebelum Sesudah Sebelum Sesudah Sebelum Sesudah
σ = 10 28.14 29.90 34.18 33.49 33.61 33.01 σ = 15 24.66 27.12 29.93 31.67 30.14 31.18 σ = 20 22.18 24.83 27.24 30.02 27.59 29.50 σ = 25 20.29 23.00 25.76 28.85 25.65 27.95 σ = 50 14.50 17.27 19.78 23.01 19.71 22.46 σ = 75 11.70 14.40 16.11 19.00 16.23 19.00 σ = 100 10.07 12.75 13.77 16.53 13.79 16.53
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 10
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 15
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 20
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 25
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 75
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 100
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 10
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 15
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 25
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 50
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 75
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 100
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 15
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 20
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 25
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 50
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 100
Hasil image denoising EK-SVD untuk noise Gaussian dengan Training 30 Image:
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 10
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 15
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 20
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 50
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 75
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 100
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 10
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 20
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 25
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 50
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 75
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 10
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 15
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 20
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 25
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 75
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 100
Hasil image denoising KSVD untuk noise Gaussian dengan Training Corrupt Image:
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 10
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 15
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 25
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 50
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 75
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 100
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 15
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 20
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 25
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 50
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 100
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 10
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 15
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 20
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 50
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 75
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 100
Hasil image denoising EK-SVD untuk noise Gaussian dengan Training Corrupt Image:
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 10
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 20
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 25
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 50
Gambar Lena sebelum dan sesudah denoising dengan tingkat noise 75
Gambar sebelum dan sesudah denoising Barbara dengan tingkat noise 10
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 15
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 20
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 25
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 75
Gambar Barbara sebelum dan sesudah denoising dengan tingkat noise 100
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 10
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 15
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 25
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 50
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 75
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 100
Hasil image denoising KSVD untuk noise Salt & Pepper dan Speckle dengan Training 30 Image
Salt & Pepper Speckle
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 15
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 20
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 25
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 50
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 100
Hasil image denoising KSVD untuk noise Salt & Pepper dan Speckle dengan Training Corrupt Image
Salt & Pepper Speckle
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 10
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 15
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 20
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 50
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 75
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 100
Hasil image denoising EK-SVD untuk noise Salt & Pepper dan Speckle dengan Training 30 Image
Salt & Pepper Speckle
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 10
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 20
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 25
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 50
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 75
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 10
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 15
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 20
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 25
Gambar Boat sebelum dan sesudah denoising dengan tingkat noise 75
program image_read.m dan patch_train.m
image read.m
clc clear all close all
A = imread('1.jpg'); %reads file into a matrix B = imfinfo('1.jpg'); %reads file info
X1 = getimg(A,B); save 'X1.mat' X1 clear all A = imread('2.jpg'); B = imfinfo('2.jpg'); X2 = getimg(A,B); save 'X2.mat' X2 clear all A = imread('3.jpg'); B = imfinfo('3.jpg'); X3 = getimg(A,B); save 'X3.mat' X3 clear all A = imread('4.jpg'); B = imfinfo('4.jpg'); X4 = getimg(A,B); save 'X4.mat' X4 clear all A = imread('5.jpg'); B = imfinfo('5.jpg'); X5 = getimg(A,B); save 'X5.mat' X5 clear all A = imread('6.jpg'); B = imfinfo('6.jpg'); X6 = getimg(A,B);
B = imfinfo('7.jpg'); X7 = getimg(A,B); save 'X7.mat' X7 clear all A = imread('8.jpg'); B = imfinfo('8.jpg'); X8 = getimg(A,B); save 'X8.mat' X8 clear all A = imread('9.jpg'); B = imfinfo('9.jpg'); X9 = getimg(A,B); save 'X9.mat' X9 clear all A = imread('10.jpg'); B = imfinfo('10.jpg'); X10 = getimg(A,B); save 'X10.mat' X10 clear all A = imread('11.jpg'); B = imfinfo('11.jpg'); X11 = getimg(A,B); save 'X11.mat' X11 clear all A = imread('12.jpg'); B = imfinfo('12.jpg'); X12 = getimg(A,B); save 'X12.mat' X12 clear all A = imread('13.jpg'); B = imfinfo('13.jpg'); X13 = getimg(A,B); save 'X13.mat' X13 clear all
A = imread('15.jpg'); B = imfinfo('15.jpg'); X15 = getimg(A,B); save 'X15.mat' X15 clear all A = imread('16.jpg'); B = imfinfo('16.jpg'); X16 = getimg(A,B); save 'X16.mat' X16 clear all A = imread('17.jpg'); B = imfinfo('17.jpg'); X17 = getimg(A,B); save 'X17.mat' X17 clear all A = imread('18.jpg'); B = imfinfo('18.jpg'); X18 = getimg(A,B); save 'X18.mat' X18 clear all A = imread('19.jpg'); B = imfinfo('19.jpg'); X19 = getimg(A,B); save 'X19.mat' X19 clear all A = imread('20.jpg'); B = imfinfo('20.jpg'); X20 = getimg(A,B); save 'X20.mat' X20 clear all A = imread('21.jpg'); B = imfinfo('21.jpg'); X21 = getimg(A,B);
B = imfinfo('22.jpg'); X22 = getimg(A,B); save 'X22.mat' X22 clear all A = imread('23.jpg'); B = imfinfo('23.jpg'); X23 = getimg(A,B); save 'X23.mat' X23 clear all A = imread('24.jpg'); B = imfinfo('24.jpg'); X24 = getimg(A,B); save 'X24.mat' X24 clear all A = imread('25.jpg'); B = imfinfo('25.jpg'); X25 = getimg(A,B); save 'X25.mat' X25 A = imread('26.jpg'); B = imfinfo('26.jpg'); X26 = getimg(A,B); save 'X26.mat' X26 A = imread('27.jpg'); B = imfinfo('27.jpg'); X27 = getimg(A,B); save 'X27.mat' X27 A = imread('28.jpg'); B = imfinfo('28.jpg'); X28 = getimg(A,B); save 'X28.mat' X28 A = imread('29.jpg'); B = imfinfo('29.jpg'); X29 = getimg(A,B); save 'X29.mat' X29
getimg.m function X = getimg(A,B) b = 8; width=B.Width; height=B.Height; A = rgb2gray(A); A = im2double(A); W=ceil(width/b); H=ceil(height/b I=zeros(H*b,W*b); I(1:height,1:width)=A(1:height,1:width); for J=1:H for K=1:W for j=1:b for k=1:b X(J,K,j,k)=I((J-1)*b+j,(K-1)*b+k); end end end end figure imshow(A) patch_train.m close all clear all clc clear all close all X = []; load X1 [a b H W] = dimen(X1);
patch = getpatch(a,b,H,W,X2); X = [X patch]; load X3 [a b H W] = dimen(X3); patch = getpatch(a,b,H,W,X3); X = [X patch]; load X4 [a b H W] = dimen(X4); patch = getpatch(a,b,H,W,X4); X = [X patch]; load X5 [a b H W] = dimen(X5); patch = getpatch(a,b,H,W,X5); X = [X patch]; load X6 [a b H W] = dimen(X6); patch = getpatch(a,b,H,W,X6); X = [X patch]; load X7 [a b H W] = dimen(X7); patch = getpatch(a,b,H,W,X7); X = [X patch]; load X8 [a b H W] = dimen(X8); patch = getpatch(a,b,H,W,X8); X = [X patch]; load X9 [a b H W] = dimen(X9); patch = getpatch(a,b,H,W,X9); X = [X patch]; load X10 [a b H W] = dimen(X10); patch = getpatch(a,b,H,W,X10);
X = [X patch]; load X12 [a b H W] = dimen(X12); patch = getpatch(a,b,H,W,X12); X = [X patch]; load X13 [a b H W] = dimen(X13); patch = getpatch(a,b,H,W,X13); X = [X patch]; load X14 [a b H W] = dimen(X14); patch = getpatch(a,b,H,W,X14); X = [X patch]; load X15 [a b H W] = dimen(X15); patch = getpatch(a,b,H,W,X15); X = [X patch]; load X16 [a b H W] = dimen(X16); patch = getpatch(a,b,H,W,X16); X = [X patch]; load X17 [a b H W] = dimen(X17); patch = getpatch(a,b,H,W,X17); X = [X patch]; load X18 [a b H W] = dimen(X18); patch = getpatch(a,b,H,W,X18); X = [X patch]; load X19 [a b H W] = dimen(X19); patch = getpatch(a,b,H,W,X19); X = [X patch];
load X21 [a b H W] = dimen(X21); patch = getpatch(a,b,H,W,X21); X = [X patch]; load X22 [a b H W] = dimen(X22); patch = getpatch(a,b,H,W,X22); X = [X patch]; load X23 [a b H W] = dimen(X23); patch = getpatch(a,b,H,W,X23); X = [X patch]; load X24 [a b H W] = dimen(X24); patch = getpatch(a,b,H,W,X24); X = [X patch]; load X25 [a b H W] = dimen(X25); patch = getpatch(a,b,H,W,X25); X = [X patch]; load X26 [a b H W] = dimen(X26); patch = getpatch(a,b,H,W,X26); X = [X patch]; load X27 [a b H W] = dimen(X27); patch = getpatch(a,b,H,W,X27); X = [X patch]; load X28 [a b H W] = dimen(X28); patch = getpatch(a,b,H,W,X28); X = [X patch];
load X30
[a b H W] = dimen(X30);
patch = getpatch(a,b,H,W,X30); X = [X patch];
save 'Patch train.mat' clear all dimen.m function [a b H W] = dimen(C) S = size(C); a = randperm(S(1)-1); b = randperm(S(2)-1); if S(1) < S(2) H = 10; W = 20; else H = 20; W = 10; end getpatch.m
function patch = getpatch(a,b,H,W,P) patch = [ ]; for i = 1:H J = a(i); for j = 1:W K = b(j); f=zeros(8,8); f(:,:) = P(J,K,:,:); f = f(:); patch = [patch f]; end end
– ubah sesuai dengan tingkatan noise yang diuji. Jika pada saat noise yang diuji 100 maka σ diisi nilai 100. clc clear all close all A = imread('lenaa.ras'); B = imfinfo('lenaa.ras'); Im = im2double(A); Y = imnoise(Im,'gaussian',0,(25/255)^2); subplot(2,1,1) imshow(Im) subplot(2,1,2) imshow(Y) C = 1.15; sd = σ/255; err = (C*sd)^2; lambda = 30/σ; C =B.Width; R =B.Height; N = C*R ; p = 8; n = p^2; X = [ ]; Y = Y(:); for J = 1 : C - p + 1 ; for I = 1 : R - p + 1 ; patch = [ ];
end
X = [X patch]; end
end
pada saat noise yang diuji 100 maka σ diisi nilai 100. Adapun nilai T diubah sesuai dengan parameter yang diuji. T merupakan sparsiti / nilai non-zero. OMP.m dan overDCT.m dibuka terlebih dahulu.
Learning Dictionary dengan K-SVD :
clcclose all clear all
load 'Patch train.mat' R = input('iterasi='); [N L] = size(X); K = 4*N; psi = overDCTdict(N,K); C = 1.15; sd = σ/255; err = (C*sd)^2; T = 4; tic for r = 1:R for jj = 1:L y = X(:,jj);
[teta, residual, M] = OMP(psi, y, T, err); Teta(:,jj) = teta;
if norm(Teta(i,:)) == 0 i disp('not updated') else w = find(Teta(i,:)~=0); S = 0; for l = 1:K if i == l temp = 0; else temp = psi(:,l)*Teta(l,w); end S = S + temp ; end E = X(:,w) - S; [U S V] = svd(E); psi(:,i) = U(:,1); Teta(i,w) = (V(:,1)*S(1,1))'; end end disp('Iterasi ke') r
save 'KSVD Dictionary.mat' psi
close all clear all
load 'Patch train.mat' R = input('iterasi='); [N L] = size(X); K = 4*N; psi = overDCTdict(N,K); C = 1.15; sd = σ/255; err = (C*sd)^2; T = 6; tic C = [ ]; r = X; i = 1; s = [ ]; Teta = zeros(K,L);
while (i <= T) && (norm(r,'fro') > err) A = psi'*r; % K x L;
[v j] = max(abs(A)); [vv jj] = max(abs(v)); t = j(jj) ;
temp = ((C'*C)^-1)*C'*X ; r = X - C*temp; Teta(s,:) = temp; i = i + 1; end for i = 1:K if norm(Teta(i,:)) == 0 i disp('not updated') else w = find(Teta(i,:)~=0); S = 0; for l = 1:K if i == l temp = 0; else temp = psi(:,l)*Teta(l,w); end S = S + temp ; end E = X(:,w) - S; [U S V] = svd(E);
disp('Iterasi ke') r
save 'KSVD Dictionary.mat' psi clear all
toc
OMP.m
function [s, residual, L] = OMP(A,y,T,err) s = zeros(size(A,2),1);
i = 2;
while (i-1 <= T) && (norm(r(:,end))>err) l = A'*r(:,i-1);
[B, IX] = sort(abs(l),'descend'); L = [L' IX(1)]';
Psi = A(:,L); x = Psi\y;
yApprox = Psi*x; r(:,i) = y - yApprox; i = i + 1; end s(L) = x; residual = r(:,end);
overDCTdict.m
function D = overDCTdict(n,L) D = zeros(n,L); D(:,1) = 1/sqrt(n);%sqrt=mencari akarnya for k = 2:L v = cos((0:n-1)*pi*(k-1)/L)'; v = v-mean(v);D(:,k) = v/norm(v); %akan dijalankan saat k=2:L terpenuhi end
err = 1e-5 T = 12 ; C = 1.15;
sd = σ/255; %pada koding langsung diisi nilai. Di lampiran ditulis dalam bentuk simbol agar diketahui bahwa nilainya diubah sesuai parameter
err = (C*sd)^2; lambda = (30/255)/sd; A = imread('barbara.jpg'); B = imfinfo('barbara.jpg'); Im = im2double(A); C =B.Width; R =B.Height; N = C*R ; p = 8; n = p^2; load 'KSVD Dictionary' E = 0; F = 0; Y = imnoise(Im,'gaussian',0,sd^2); Y = Y(:); tic for J = 1 : C - p + 1 ; for I = 1 : R - p + 1 ; patch = [ ]; for j = 1:p for i = 1:p
[teta, residual, M] = OMP(psi, patch, T, err); f = psi*teta; temp = zeros(N,1); temp1 = zeros(N,1); for j = 1:p for i = 1:p k = ((I-1) + i) + (((J-1)+ (j-1))*R); temp(k) = 1; ind = i + (j-1)*p; temp1(k) = f(ind); end end E = E + temp; F = F + temp1; end end I = ones(N,1); sk = (lambda*I + E); sk = 1./sk; Z = sk.*(lambda*Y + F); err = Z - Im(:); P_signal = norm(Z)^2; P_err = norm(err(:))^2; MSE = P_err/N;
P_signal = norm(Y)^2; P_err = norm(err(:))^2; MSE = P_err/N; SNR_noise = 10*log10((P_signal)/P_err) PSNR_noise = 10*log10((1^2)/MSE) Y = reshape(Y,R,C); Z = reshape(Z,R,C); subplot(3,1,1) imshow(Im) subplot(3,1,2) imshow(Y) subplot(3,1,3) imshow(Z) toc