Segmentasi Citra dengan Metode Thresholding


Thresholding merupakan salah satu metode segmentasi citra yang memisahkan antara objek dengan background dalam suatu citra berdasarkan pada perbedaan tingkat kecerahannya atau gelap terang nya. Region citra yang cenderung gelap akan dibuat semakin gelap (hitam sempurna dengan nilai intensitas sebesar 0), sedangkan region citra yang cenderung terang akan dibuat semakin terang (putih sempurna dengan nilai intensitas sebesar 1). Oleh karena itu, keluaran dari proses segmentasi dengan metode thresholding adalah berupa citra biner dengan nilai intensitas piksel sebesar 0 atau 1. Setelah citra sudah tersegmentasi atau sudah berhasil dipisahkan objeknya dengan background, maka citra biner yang diperoleh dapat dijadikan sebagai masking utuk melakukan proses cropping sehingga diperoleh tampilan citra asli tanpa background atau dengan background yang dapat diubah-ubah.

Berikut ini merupakan contoh pemrograman matlab mengenai aplikasi dari metode thresholding untuk melakukan segmentasi terhadap citra digital. Setelah objek berhasil disegmentasi, proses selanjutnya adalah mengganti-ganti background citra rgb asli

Langkah pemrogramannya adalah sebagai berikut:
1. Membaca dan menampilkan citra asli

clc; clear; close all;

% Object
Img = imread('the mario bros.jpg');
figure, imshow(Img);

Sehingga diperoleh tampilan

2. Mengkonversi ruang warna citra RGB menjadi Grayscale

Gray = rgb2gray(Img);
figure, imshow(Img);

Citra grayscale yang dihasilkan adalah

3. Melakukan segmentasi citra menggunakan metode thresholding

bw = im2bw(Gray,.99);
figure, imshow(bw);

Hasil segmentasi yang diperoleh adalah

4. Melakukan operasi komplemen agar objek yang bernilai 1 (berwarna putih), sedangkan background yang bernilai 0 (berwarna hitam)

bw = imcomplement(bw);
figure, imshow(bw);

Hasil operasi komplemen

5. Melakukan operasi morfologi untuk menyempurnakan bentuk objek pada citra biner hasil segmentasi. Operasi morfologi yang dilakukan adalah berupa filling holes, area opening, dan erosi.

bw = imfill(bw,'holes');
bw = bwareaopen(bw,100);
str = strel('disk',5);
bw = imerode(bw,str);
figure, imshow(bw);

Hasil operasi morfologi yang diperoleh adalah

6. Membaca dan menampilkan citra yang akan digunakan sebagai background

% Background
Img2 = imread('background 1.jpg');
figure, imshow(Img2);

Tampilan citra background adalah

7. Mengimplementasikan citra biner hasil segmentasi untuk mengubah background citra asli

R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);

R2 = Img2(:,:,1);
G2 = Img2(:,:,2);
B2 = Img2(:,:,3);

R2(bw) = R(bw);
G2(bw) = G(bw);
B2(bw) = B(bw);

RGB = cat(3,R2,G2,B2);
figure, imshow(RGB);

Hasil implementasi yang diperoleh adalah

Beberapa tampilan contoh implementasi penggantian background terhadap citra asli di antaranya adalah sebagai berikut:

Citra dan Source Code pada pemrograman matlab di atas dapat diunduh pada halaman berikut ini: Source Code

Posted on April 8, 2017, in Pengolahan Citra and tagged , , , , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink. 11 Comments.

  1. Septyadi Agung N

    Mas minta tolong, ada reverensi untuk ekstraksi ciri tekstur dengan nilai GLCM gk? Sama ekstraksi ciri warna dari RGB ke nilai Hue, Saturation, Value. Saya lgi proses pembuatan program skripsi mas, judulnya Indentifikasi kesegaran ikan nila untuk pengolahan citranya pakek itu, mohon bantuannya, terima kasih

  2. Mas minta tolong, ada reverensi untuk ekstraksi suatu objek dari suatu bacground yang menggunakan layar hijau kah?
    mohon bantuannya, terima kasih.

  3. mas, minta tolong dong coding untuk merubah Background dari merah/putih menjadi Background hitam tetapi warna gambar/citra tetap seperti aslinya. trims mas adi atas bantuannya

  4. Kalo misalnya cuma mau diubah backgroundnya jadi warna merah misalnya. Itu gimana ya mas ? Jadi ga perlu ada gambar ke-2. Thx

  5. mas, kalau segmentasi menggunakan triclass tresholding itu bagaimana ya? pernah tau gak mas? mohon bantuannya ya mas, saya masih baru di matlab soalnya. trimakasih sebelumnya

  6. Mas saya mau tanya mengenai adaptive thresholding, apakah sama atau tidak dengan thresholding yang dijelaskan diatas? Kalo beda, pembedanya apa mas? Mohon pencerahannya terima kasih..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: