Source Code MATLAB: Segmentasi Citra Menggunakan Metode Active Contour


Segmentasi Citra Menggunakan Metode Active Contour

Abstrak:
Segmentasi citra merupakan salah satu tahap penting dalam pemrosesan citra yang bertujuan untuk memisahkan objek dari latar belakangnya. Dalam artikel ini, kami membahas penggunaan metode active contour untuk segmentasi citra menggunakan perangkat lunak MATLAB. Metode active contour, juga dikenal sebagai kurva level set, telah terbukti efektif dalam menangani berbagai jenis objek dan latar belakang. Kami menjelaskan langkah-langkah implementasi algoritma active contour dalam MATLAB menggunakan contoh kode sederhana, serta memberikan pemahaman yang mendalam tentang konsep dan aplikasi dari metode tersebut.

Kata Kunci: Segmentasi Citra, Active Contour, Kurva Level Set, MATLAB.


1. Pendahuluan

Segmentasi citra adalah proses membagi citra menjadi beberapa wilayah yang memiliki kesamaan atribut, seperti warna, tekstur, atau intensitas piksel. Salah satu metode yang digunakan untuk segmentasi adalah metode active contour, yang juga dikenal sebagai kurva level set. Metode ini berfokus pada evolusi kurva atau kontur untuk memisahkan objek dari latar belakangnya.

Dalam artikel ini, kami membahas penggunaan metode active contour dalam segmentasi citra menggunakan perangkat lunak MATLAB. Kami akan memberikan penjelasan tentang konsep dasar metode active contour dan langkah-langkah implementasinya dalam MATLAB melalui contoh kode sederhana.

2. Metode Active Contour

Metode active contour adalah salah satu pendekatan populer dalam segmentasi citra yang berdasarkan pada konsep kurva level set. Kurva level set adalah kurva yang menggambarkan perubahan topologis dalam domain dua dimensi atau tiga dimensi. Metode ini menggambarkan evolusi kurva sebagai proses energi minimum yang bertujuan untuk memaksimalkan kesamaan dalam suatu wilayah dan meminimalkan perbedaan antara wilayah-wilayah yang berdekatan.

3. Implementasi dalam MATLAB

Langkah-langkah berikut menjelaskan implementasi metode active contour dalam MATLAB menggunakan contoh kode sederhana:

  1. Memuat Citra: Citra dimuat ke dalam lingkungan MATLAB menggunakan fungsi imread().
  2. Konversi ke Grayscale: Citra dimana dalam skala keabuan menggunakan fungsi rgb2gray().
  3. Pembuatan Masker Awal: Matriks nol dibuat dengan ukuran yang sama dengan citra keabuan. Bagian dari masker tersebut diatur sebagai nilai satu untuk menunjukkan area awal segmentasi.
  4. Segmentasi dengan Active Contour: Fungsi activecontour() digunakan untuk menjalankan proses segmentasi dengan menggunakan citra keabuan dan masker awal yang telah dibuat.
  5. Visualisasi Hasil: Hasil segmentasi ditampilkan bersama dengan citra asli dan masker awal menggunakan fungsi subplot() dan imshow().

4. Contoh Kode MATLAB

% Adi Pamungkas, S.Si, M.Si
% Website: https://pemrogramanmatlab.com/

% Membersihkan tampilan Command Window, membersihkan workspace, dan menutup semua jendela gambar yang terbuka
clc; clear; close all;
% Citra "airplane.jpg" dimuat ke dalam variabel I
I = imread('airplane.jpg');
% Citra I dikonversi dari citra berwarna (RGB) menjadi citra keabuan menggunakan fungsi rgb2gray(). Hasilnya disimpan dalam variabel J
J = rgb2gray(I);
% Membuat matriks nol dengan ukuran yang sama dengan citra keabuan J. Matriks ini akan digunakan sebagai masker awal
m = zeros(size(J,1),size(J,2));
% Mengatur area dalam masker awal menjadi 1 (putih), yang akan menjadi area awal dari segmentasi aktif
m(111:231,123:243) = 1;
% Menjalankan proses segmentasi aktif menggunakan fungsi activecontour(). Argumen pertama adalah citra keabuan (J), argumen kedua adalah masker awal (m), dan argumen ketiga adalah jumlah iterasi maksimum yang diinginkan (dalam hal ini 350 iterasi). Hasil segmentasi disimpan dalam variabel seg
seg = activecontour(J,m,350);
% Membuat gambar baru untuk menampilkan hasil
figure,
% Membuat subplot pertama dengan tata letak 2x2 dan menampilkan citra asli I dengan judul "Input Image"
subplot(2,2,1);imshow(I);title('Input Image');
% Membuat subplot kedua dan menampilkan masker awal m dengan judul "Initialization Mask"
subplot(2,2,2);imshow(m);title('Initialization Mask');
% Membuat subplot ketiga dan menampilkan hasil segmentasi aktif seg dengan judul "Active Contour Segmentation"
subplot(2,2,3);imshow(seg);title('Active Contour Segmentation');
% Membuat subplot keempat dan menampilkan citra asli I dengan judul "Active Contour Segmentation"
subplot(2,2,4);imshow(I);title('Active Contour Segmentation');
% Menahan citra yang ada untuk menambahkan kontur di atasnya
hold on
% Menambahkan kontur dari hasil segmentasi aktif seg ke citra asli I dengan warna kuning ('y') dan ketebalan garis 2 piksel ('LineWidth',2)
contour(seg, 'y','LineWidth',2);

5. Kesimpulan

Metode active contour merupakan salah satu pendekatan yang efektif untuk segmentasi citra. Dalam lingkungan MATLAB, implementasi metode ini dapat dilakukan dengan mudah menggunakan berbagai fungsi bawaan. Dengan demikian, artikel ini memberikan pemahaman yang mendalam tentang konsep dan aplikasi dari metode active contour dalam segmentasi citra.

6. Referensi

  • Osher, S., & Sethian, J. A. (1988). Fronts propagating with curvature-dependent speed: Algorithms based on Hamilton-Jacobi formulations. Journal of computational physics, 79(1), 12-49.
  • MATLAB Documentation: https://www.mathworks.com/help/images/

File lengkap source code beserta data citra pada pemrograman matlab di atas dapat diperoleh melalui halaman berikut ini: Source Code

Posted on February 13, 2024, in Pengolahan Citra and tagged , , , , , , , . Bookmark the permalink. Leave a comment.

Leave a comment