Tugas Keempat Pengolahan Citra Digital - Peningkatan Kualitas Citra

  Soal 1

      1.      Lakukan konvolusi dengan dua buah fungsi berikut : (matriks kernel harus diputar dulu 180°)

Penyelesaian :

* matriks kernel harus diputar dulu 180°















FILTER SPASIAL

Pentapisan pada pengolahan citra biasa disebut dengan pentapisan spasial (spasial filtering ). Pada proses penapisan, nilai piksel baru umumnya dihitung berdasarkan piksel tetangga (neighborhood).

Proses-proses yang termasuk ke dalam filter spasial citra adalah pelembutan citra (image smoothing) dan penajaman citra (image sharphening).

     1.      Pelembutan Citra

Pelembutan citra bertujuan untuk menekan gangguan (noise) pada citra. Gangguan tersebut muncul sebagai akibat dari hasil penerokan yang tidak bagus. Piksel yang mengalami gangguan biasanya memiliki frekuensi tinggi. Operasi pelembutan citra dilakukan untuk menekan komponen berfrekuensi tinggi dan meloloskan komponen berfrekuensi rendah.

Gambar 1. Citra yang mengalami gangguan (noise) 


     2.      Filter Linier (Low Pass Filter)

Filter yang digunakan dalam filter linear adalah neighborhood averaging merupakan salah satu jenis low-pass filter, yang bekerja dengan cara mengganti nilai suatu piksel pada citra asal dengan nilai rata-rata dari piksel tersebut dan lingkungan tetangganya.

Contoh perintah melakukan neighborhood averaging dengan kernel berukuran 3 x 3:

Source Code :

clear; clc;

A = imread('eight.tif');

A = imnoise(A, 'salt & pepper', 0.01);

k = ones(3) / 9;

[r c] = size(A);

[m n] = size(k);

h = rot90(k, 2);

center = floor((size(h)+1)/2);

left = center(2) - 1;

right = n - center(2);

top = center(1) - 1;

bottom = m - center(1);

Rep = zeros(r + top + bottom, c + left + right);

for x = 1 + top : r + top

 for y = 1 + left : c + left

 Rep(x,y) = A(x - top, y - left);

 end

end

B = zeros(r , c);

for x = 1 : r

 for y = 1 : c

 for i = 1 : m

 for j = 1 : n

 q = x - 1;

 w = y -1;

 B(x, y) = B(x, y) + (Rep(i + q, j + w) * h(i, j));

 end

 end

 end

end

figure, imshow(A);

figure, imshow(uint8(B));

Hasil Tampilan :


Gambar 2. (Figure 1) Citra yang mengandung noise,

(Figure 2) Hasil pelembutan dengan kernel 3 x 3


          3.      Filter Linier (High Pass Filter)

a.      Penajaman Citra (Image Sharpening)

Inti dari penajaman (sharpening) citra adalah memperjelas tepi pada objek didalam citra. Penajaman citra merupakan kebalikan dari operasi pelembutan citra karena operasi ini menghilangkan bagian citra yang lembut. Metode atau filtering yang digunakan adalah hight-pass filtering.

Gambar 3. (a) Citra sebelum dikenai operasi penajaman,

(b) Citra setelah dikenai operasi penajaman

 

Contoh perintah untuk melakukan operasi penajaman terhadap suatu citra adalah sebagai berikut :

Source Code :

clear; clc;

I = imread('cameraman.tif');

hpf =[-1 -1 -1; -1 9 -1; -1 -1 -1];

[r c] = size(I);

[m n] = size(hpf);

h = rot90(hpf, 2);

center = floor((size(h)+1)/2);

left = center(2) - 1;

right = n - center(2);

top = center(1) - 1;

bottom = m - center(1);

Rep = zeros(r + top + bottom, c + left + right);

for x = 1 + top : r + top

 for y = 1 + left : c + left

 Rep(x,y) = I(x - top, y - left);

 end

end

B = zeros(r , c);

for x = 1 : r

 for y = 1 : c

for i = 1 : m

 for j = 1 : n

 q = x - 1;

 w = y -1;

 B(x, y) = B(x, y) + (Rep(i + q, j + w) * h(i, j));

 end

 end

 end

end

figure, imshow(I);

figure, imshow(uint8(B));

Hasil Tampilan :

Gambar 4. (Figure 1) Citra ‘cameraman.tif’ sebelum dikenai operasi penajaman,

(Figure 2) Citra setelah dikenai operasi penajaman    

          4.      Filter Non-Linier

a.      Filter Median

Filter media sangat bermanfaat untuk menghilangkan outliers, yaitu nilai-nilai piksel yang eksrim.

Contoh perintah untuk melakukan median filtering terhadap citra yang terkena gangguan dengan kernel berukuran 3 x 3.

Source Code :

clear; clc;

I = imread('eight.tif');

I = imnoise(I, 'salt & pepper', 0.01);

[r c] = size(I);

Rep = zeros(r + 2, c + 2);

for x = 2 : r + 1

 for y = 2 : c + 1

 Rep(x,y) = I(x - 1, y - 1);

 end

end

Rep;

B = zeros(r, c);

for x = 1 : r

 for y = 1 : c

 for i = 1 : 3

for j = 1 : 3

 q = x - 1;

 w = y -1;

 array((i - 1) * 3 + j) = Rep(i + q, j + w);

 end

 end

 B(x, y) = median(array(:));

 end

end

figure, imshow(I);

figure, imshow(uint8(B))

 

Hasil Tampilan :

Gambar 4. (Figure 1) Citra yang mengandung noise

(Figure 2) Hasil pelembuatan dengan median filtering


Tidak ada komentar

Diberdayakan oleh Blogger.