Segmenasi Region-Based pada Citra dan Perbandingan Hasil dengan Ground Truth menggunakan MATLAB

Segmenasi Region-Based pada Citra dan Perbandingan Hasil dengan Ground Truth menggunakan MATLAB

Pada artikel ini, kita akan membahas cara melakukan segmenasi region-based pada citra yang dilakukan dengan menggunakan program MATLAB. Segmenasi adalah proses pemisahan objek dalam suatu citra menjadi beberapa bagian yang berbeda. Dalam kasus ini, kita akan melakukan segmenasi 3D citra yang terdiri dari tiga bagian.

Langkah-Langkah

  1. Pertama-tama, kita perlu membaca citra yang ingin di-segmentasikan menggunakan fungsi imread().
RGB = imread('yellowlily.png');
  1. Kemudian, kita perlu membuat 3D region mask yang mewakili objek dalam citra. Kita akan menggunakan 3D region mask untuk mendefinisikan batas objek.
BW1 = imseggeodesic(RGB, BW1_mask, 'AdaptiveChannelWeighting', true);
BW2 = imseggeodesic(RGB, BW2_mask, 'AdaptiveChannelWeighting', true);
BW3 = imseggeodesic(RGB, BW3_mask, 'AdaptiveChannelWeighting', true);
  1. Selanjutnya, kita perlu membuat label untuk masing-masing objek dalam citra.
L = imseggeodesic(RGB, BW1, BW2, BW3, 'AdaptiveChannelWeighting', true);
  1. Setelah itu, kita perlu membandingkan hasil segmenasi dengan ground truth yang telah dipersiapkan sebelumnya.
figure;
montage({label2rgb(L), label2rgb(L_groundTruth)});
title('Comparison of Segmentation Results (Left) and Ground Truth (Right)');
  1. Terakhir, kita perlu menentukan nilai similarity antara hasil segmenasi dengan ground truth menggunakan fungsi dice().
similarity = dice(L, L_groundTruth);

Hasil

Pada gambar di atas, kita dapat melihat bahwa hasil segmenasi yang didapatkan adalah 3D citra yang terdiri dari tiga bagian. Pada bagian kiri, kita dapat melihat hasil segmenasi yang dihasilkan oleh program MATLAB, sedangkan pada bagian kanan, kita dapat melihat ground truth yang telah dipersiapkan sebelumnya.

Pada tabel di atas, kita dapat melihat bahwa nilai similarity antara hasil segmenasi dengan ground truth adalah 0.9396 untuk objek pertama, 0.7247 untuk objek kedua, dan 0.9139 untuk objek ketiga.

Kesimpulan

Dalam artikel ini, kita telah membahas cara melakukan segmenasi region-based pada citra menggunakan program MATLAB. Dengan menggunakan fungsi imseggeodesic() dan dice(), kita dapat memisahkan objek dalam citra menjadi beberapa bagian yang berbeda dan menentukan nilai similarity antara hasil segmenasi dengan ground truth.

Referensi

  • MATLAB documentation: imseggeodesic()
  • MATLAB documentation: dice()
  • Wikipedia: "Segmentation"