Program Korelasi Linier dan NonLinier [Filter Average dan Filter Median] » Matlab



%membersihkan semua nilai variabel pada workspace
clear;
%membersihkan tampilan Command Window
clc;

%baca image, ubah jadi grayscale dan dapatkan ukurannya
img = imread('Radiografia-small.jpg');
img_gray = imnoise(rgb2gray(img),'salt & pepper');
[m,n] = size(img_gray);

%berikan nilai tepi (0) pada image grayscale, dapatkan ukurannya
img_border = [zeros(m+2,1) [zeros(1,n); img_gray; zeros(1,n)] zeros(m+2,1)];
[p,q] = size(img_border);

%copy image asli untuk dioperasikan (dikorelasi) dengan kernel 3*3
img_average = img_border; %copy image yang akan dikorelasi linier
img_median = img_border; %copy image yang akan dikorelasi non-linier

%korelasi linier (nilai rata-rata) menggunakan kernel 3*3
for i=1:m
    for j=1:n
        img_average(i+1,j+1) = sum(sum(img_average(i:i+2,j:j+2)))/9;
    end
end

%korelasi non-linier (nilai median) menggunakan kernel 3*3
for x=1:m
    for y=1:n
        img_median(x+1,y+1) = median([img_median(x,y:y+2) img_median(x+1,y:y+2) img_median(x+2,y:y+2)]);
    end
end

figure('Name','Tugas Korelasi Linier dan Non Linier - 2207 100 175','NumberTitle','off');
subplot(1,3,1),imshow(img_border);
title('Image Grayscale Asli Dengan Nilai Tepi 0');
subplot(1,3,2),imshow(img_average);
title('Image Grayscale Hasil Korelasi Linier');
subplot(1,3,3),imshow(img_median);
title('Image Grayscale Hasil Korelasi Non Linier');

figure hasil run program korelasi linier [filter average] dan korelasi nonlinier [filter median]


hasil filter seharusnya tidak memiliki nilai tepi yang hanya merupakan nilai bantuan untuk proses, jadi program di atas masih belum memberikan hasil filter yang sesungguhnya

0 comments:

Posting Komentar