Download - Laporan PCD3.pdf
Tugas Individu
Pemrosesan Citra Digital
KORELASI DAN KONVOLUSI 2D
(SPATIAL FILTER)
Oleh :
NURKAMILA JAFAR H 121 12 014
PROGRAM STUDI STATISTIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS HASANUDDIN
2015
1. Korelasi 2D
Operasi korelasi dilakukan dengan menggeser kernel/mask korelasi pixel per pixel.
Kemudian hasil korelasi disimpan dalam matrik yang baru.
Rumus mencari korelasi ditulisakan sebagai berikut :
ℎ(𝑥, 𝑦) = 𝑓(𝑥, 𝑦)⨂𝑔(𝑥, 𝑦)
dimana :
ℎ(𝑥, 𝑦) = Matrik korelasi yang dihasilkan.
𝑓(𝑥, 𝑦) = Matrik citra asli yang diinput.
𝑔(𝑥, 𝑦) = kernel/mask korelasi.
Contoh
Diberikan matrik citra f dan kernel/mask g sebagai berikut :
Citra 𝑓(𝑥, 𝑦) mask 𝑔(𝑥, 𝑦)
Langkah-langkah untuk mendapatkan matrik korelasinya adalah :
1) Meletakkan matrik mask g pada sudut kiri matrik citra f seperti gambar di bawah
ini :
1 2 3
4 5 6
7 8 9
0 0 0 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 0 0 0
2) Menambahkan zero padding diatas matrik mask g, karena ditambahkan 2
baris ke atas dan 2 kolom ke kiri maka ditambahkan pula zero padding 2 baris
ke bawaha dan 2 kolom ke kanan, sehingga hasilnya seperti berikut :
0 0 0 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 0 0 0
1 2 3
4 5 6
7 8 9
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
3) Menghitung nilai pixel dimulai dari sudut kiri atas, dan hasilnya ditempatkan
pada posisi (0,0) pada mask.
Perhitungan nilai pixel pada langkah-1
Citra 𝑓(𝑥, 𝑦)
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Menandakan posisi (0,0) pada mask g.
Untuk menghitung nilai pixel adalah dengan cari mengalikan setiap elemen
matrik kemudian dijumlahkan, seperti cara berikut :
[0 0 00 0 00 0 0
] ⨂ [1 2 34 5 67 8 9
]
= (0 × 1) + (0 × 2) + (0 × 3) + (0 × 4) + (0 × 5) + (0 × 6) + (0 × 7)
+(0 × 8) + (0 × 9) = 0
Maka matrik korelasi sementara adalah :
1 2 3
4 5 6
7 8 9
mask 𝑔(𝑥, 𝑦)
0
Geser mask satu piksel ke kanan kemudian hitung nilai piksel pada mask
(0,0), dan begitu seterusnya hingga geser satu piksel ke bawah dengan
memulai korelasi pada bagian kiri.
Perhitungan nilai pixel pada langkah ke-17
Citra 𝑓(𝑥, 𝑦)
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Hasil korelasi adalah 9, dengan cara menghitung yang sama yaitu :
[0 0 00 0 00 0 1
] ⨂ [1 2 34 5 67 8 9
]
= (0 × 1) + (0 × 2) + (0 × 3) + (0 × 4) + (0 × 5) + (0 × 6) + (0 × 7)
+(0 × 8) + (1 × 9) = 9
Matrik korelasi sementara adalah :
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 9
1 2 3
4 5 6
7 8 9
mask 𝑔(𝑥, 𝑦)
Pehitungan nilai pixel pada langkah-33.
Citra 𝑓(𝑥, 𝑦)
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Hasil korelasi adalah 1, dengan cara menghitung yang sama yaitu :
[1 0 00 0 00 0 0
] ⨂ [1 2 34 5 67 8 9
]
= (1 × 1) + (0 × 2) + (0 × 3) + (0 × 4) + (0 × 5) + (0 × 6) + (0 × 7)
+(0 × 8) + (0 × 9) = 1
Matrik korelasi sementara adalah :
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 9 8 7 0 0
0 0 6 5 4 0 0
0 0 3 2 1
Perhitungan nilai pixel pada langkah-49
Citra 𝑓(𝑥, 𝑦)
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Hasil korelasi adalah 0, dengan cara menghitung yang sama yaitu :
1 2 3
4 5 6
7 8 9
mask 𝑔(𝑥, 𝑦)
1 2 3
4 5 6
7 8 9
mask 𝑔(𝑥, 𝑦)
[0 0 00 0 00 0 0
] ⨂ [1 2 34 5 67 8 9
]
= (0 × 1) + (0 × 2) + (0 × 3) + (0 × 4) + (0 × 5) + (0 × 6) + (0 × 7)
+(0 × 8) + (0 × 9) = 0
Matrik korelasi sementara adalah :
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 9 8 7 0 0
0 0 6 5 4 0 0
0 0 3 2 1 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
4) Mengisi nilai pixel pinggir yaitu dengan cara mengambil nilai pixel-pixel pinggir
dari citra asli, Citra 𝑓(𝑥, 𝑦). Maka didapatkan matrik korelasi ℎ(𝑥, 𝑦) :
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 9 8 7 0 0 0
0 0 0 6 5 4 0 0 0
0 0 0 3 2 1 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
2. Konvolusi 2D
Operasi konvolusi sama dengan cara operasi korelasi yaitu menggeser kernel/mask
korelasi pixel per pixel, tetapi kernel/masknya dirotasi 180°. Kemudian hasil
konvolusi disimpan dalam matrik yang baru.
Rumus mencari konvolusi ditulisakan sebagai berikut :
ℎ(𝑥, 𝑦) = 𝑓(𝑥, 𝑦)⨂𝑔(𝑥, 𝑦)
dimana :
ℎ(𝑥, 𝑦) = Matrik konvolusi yang dihasilkan.
𝑓(𝑥, 𝑦) = Matrik citra asli yang diinput.
𝑔(𝑥, 𝑦) = kernel/mask konvolusi (mask dirotasi 180°) .
Contoh
Diberikan matrik citra f dan kernel/mask g sebagai berikut :
Citra 𝑓(𝑥, 𝑦)
Langkah-langkah untuk mendapatkan matrik konvolusinya adalah :
1) Meletakkan matrik mask g pada sudut kiri matrik citra f seperti gambar di bawah
ini :
9 8 7
6 5 4
3 8 1
0 0 0 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 0 0 0
2) Menambahkan zero padding diatas matrik mask g, karena ditambahkan 2
baris ke atas dan 2 kolom ke kiri maka ditambahkan pula zero padding 2 baris
ke bawah dan 2 kolom ke kanan, sehingga hasilnya seperti berikut :
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 0 0 0
1 2 3
4 5 6
7 8 9
mask 𝑔(𝑥, 𝑦)
9 8 7
6 5 4
3 2 1
mask 𝑔 dirotasi 180°
3) Menghitung nilai pixel dimulai dari sudut kiri atas, dan hasilnya ditempatkan
pada posisi (0,0) pada mask.
Perhitungan nilai pixel pada langkah-1
Citra 𝑓(𝑥, 𝑦)
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Menandakan posisi (0,0) pada mask g.
Untuk menghitung nilai pixel adalah dengan cari mengalikan setiap elemen
matrik kemudian dijumlahkan, seperti cara berikut :
[0 0 00 0 00 0 0
] ⨂ [9 8 76 5 43 2 1
]
= (0 × 9) + (0 × 8) + (0 × 7) + (0 × 6) + (0 × 5) + (0 × 4) + (0 × 3)
+(0 × 2) + (0 × 1) = 0
Maka matrik konvolusi sementara adalah :
0
Geser mask satu piksel ke kanan kemudian hitung nilai piksel pada mask
(0,0), dan begitu seterusnya hingga geser satu piksel ke bawah dengan
memulai konvolusi pada bagian kiri.
9 8 7
6 5 4
3 2 1
mask 𝑔(𝑥, 𝑦)
Perhitungan nilai pixel pada langkah ke-17
Citra 𝑓(𝑥, 𝑦)
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Hasil konvolusi adalah 1, dengan cara menghitung yang sama yaitu :
[0 0 00 0 00 0 1
] ⨂ [9 8 76 5 43 2 1
]
= (0 × 9) + (0 × 8) + (0 × 7) + (0 × 6) + (0 × 5) + (0 × 4) + (0 × 3)
+(0 × 2) + (1 × 1) = 1
Matrik konvolusi sementara adalah :
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 1
Perhitungan nilai pixel pada langkah-33.
Citra 𝑓(𝑥, 𝑦)
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
9 8 7
6 5 4
3 2 1
mask 𝑔(𝑥, 𝑦)
9 8 7
6 5 4
3 2 1
mask 𝑔(𝑥, 𝑦)
Hasil konvolusi adalah 9, dengan cara menghitung yang sama yaitu :
[1 0 00 0 00 0 0
] ⨂ [9 8 76 5 43 2 1
]
= (1 × 9) + (0 × 8) + (0 × 7) + (0 × 6) + (0 × 5) + (0 × 4) + (0 × 3)
+(0 × 2) + (0 × 1) = 9
Matrik konvolusi sementara adalah :
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 1 2 3 0 0
0 0 4 5 6 0 0
0 0 7 8 9
Perhitungan nilai pixel pada langkah-49
Citra 𝑓(𝑥, 𝑦)
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Hasil konvolusi adalah 0, dengan cara menghitung yang sama yaitu :
[0 0 00 0 00 0 0
] ⨂ [9 8 76 5 43 2 1
]
= (0 × 9) + (0 × 8) + (0 × 7) + (0 × 6) + (0 × 5) + (0 × 4) + (0 × 3)
+(0 × 2) + (0 × 1) = 0
Matrik konvolusi sementara adalah :
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 1 2 3 0 0
0 0 4 5 6 0 0
0 0 7 8 9 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 2 3
4 5 6
7 8 9
mask 𝑔(𝑥, 𝑦)
4) Mengisi nilai pixel pinggir yaitu dengan cara mengambil nilai pixel-pixel pinggir
dari citra asli, Citra 𝑓(𝑥, 𝑦). Maka didapatkan matrik konvolusi ℎ(𝑥, 𝑦) :
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 1 2 3 0 0 0
0 0 0 4 5 6 0 0 0
0 0 0 7 8 9 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0