Pertemuan ke-11 :
Segmentasi Citra
Tuesday, April 21, 2020 TK36306 Pengolahan Citra ©2018 Halaman 2 dari 17
Deteksi Tepi
Pendekatan yang paling umum untuk pendeteksian diskontinuitas nilai
intensitas,
seperti diskontinuitas yang dideteksi oleh penggunaan turunan pertama dan
kedua.
Menggunakan turunan pertama dalam pengolahan citra (gradien)
f
Gx x
f f
Jarak vektor ini adalah: Gy
y
f mag (f ) Gx Gy
2 2 1/ 2
Tuesday, April 21, 2020 TK36306 Pengolahan Citra ©2018 Halaman 3 dari 17
Operator Deteksi Tepi: Sobel, Prewitt, Robert
Tuesday, April 21, 2020 TK36306 Pengolahan Citra ©2018 Halaman 4 dari 17
Fungsi untuk deteksi tepi di MATLAB:
[g, t] = edge(f, ‘method’, parameters)
Detektor tepi Properti dasar
Sobel Menemukan tepi menggunakan perkiraan Sobel untuk turunannya
dalam Gambar 8.4 (a) dan (b)
Prewitt Menemukan tepi menggunakan perkiraan Prewitt untuk turunannya
dalam Gambar 8.4 (c) dan (d)
Robert Menemukan tepi menggunakan perkiraan Robert untuk turunannya
dalam Gambar 8.4 (e) dan (f)
Laplacian of a Menemukan tepi dengan mencari zero crossing setelah pemfilteran
Gaussian (LoG) f(x,y) dengan filter Gaussian
Zerro crossing Menemukan tepi dengan mencari zero crossing setelah pemfilteran
f(x,y) dengan filter yang didefinisikan user
Canny Menemukan tepi dengan mencari local maxima dari gradien f(x,y).
Gradien dihitung menggunakan turunan filter Gaussian. Metode ini
menggunakan dua threshold untuk mendeteksi tepi yang kuat dan
lemah, dan memasukkan tepi lemah dalam output hanya jika tepi
tersebut terhubung ke tepi yang kuat. Maka, metode ini lebih
memungkinkan untuk mendeteksi tepi yang lemah dengan benar
Tuesday, April 21, 2020 TK36306 Pengolahan Citra ©2018 Halaman 5 dari 17
SOBEL, PREWITT, ROBERT
[g, t] = edge(f, ‘sobel’, T, dir) [g, t] = edge(f, ‘prewitt’, T, dir)
f adalah citra input,
T adalah threshold, [g, t] = edge(f, ‘robert’, T, dir)
dir menetapkan arah yang lebih disukai pada citra
terdeteksi: ‘horizontal’, ‘vertical’, atau ‘both’ (default).
g adalah citra biner yang berisi nilai 1 pada lokasi di
mana tepi terdeteksi dan 0 untuk yang tidak.
Parameter t pada output bersifat opsional, t adalah nilai
threshold yang digunakan oleh fungsi edge
Laplacian of Gaussian CANNY
ungsi Gaussian:
r 2
[g, t] = edge(f, ‘canny’, T, sigma)
h( r ) e
2
2
4
Tuesday, April 21, 2020 TK36306 Pengolahan Citra ©2018 Halaman 6 dari 17
Citra grayscale Hasil deteksi tepi Sobel Hasil deteksi tepi Prewitt
dengan threshold otomatis dengan threshold otomatis
Hasil deteksi tepi Robert Hasil deteksi tepi LoG Hasil deteksi tepi Canny
dengan threshold otomatis dengan threshold otomatis dengan threshold otomatis
Tuesday, April 21, 2020 TK36306 Pengolahan Citra ©2018 Halaman 7 dari 17
Region Growing
Prosedur yang mengelompokkan piksel atau sub-region ke dalam
region yang lebih besar berdasarkan pada kriteria yang sudah
ditentukan untuk pertumbuhannya.
Pendekatan dasarnya adalah memulai dengan sejumlah titik seed dan
dari sini menumbuhkan region oleh penambahan pada setiap seed
piksel tetangga yang mempunyai properti sama dengan seed (seperti
range spesifik dari gray level atau warna).
Sintaks fungsinya adalah:
[g, NR, SI, TI] = regiongrow(f, S, T)
di mana f adalah citra yang disegmentasi
parameter S bisa menjadi array (ukuran sama dengan f) atau skalar.
Jika f adalah skalar, maka harus berisi nilai 1 pada semua koordinat di mana
titik seed ditempatkan dan 0 untuk lainnya.
Jika S skalar, mendefinisikan nilai intensitas seperti bahwa semua titik dalam f
dengan nilai menjadi titik seed.
T bisa menjadi array (ukurannya sama dengan f) atau skalar. Jika T adalah
array, maka berisi nilai threshold untuk setiap lokasi dalam f. Jika T skalar,
maka mendefinisikan global threshold.
Nilai threshold digunakan untuk menguji jika piksel dalam citra cukup sama
dengan seed dengan 8-connected
Tuesday, April 21, 2020 TK36306 Pengolahan Citra ©2018 Halaman 8 dari 17
16000
14000
12000
10000
8000
>> i = imread('defective_weld.tif');
figure, imshow(i);
>> [g, NR, SI, TI] = regiongrow(i, 255, 65);
>> figure, imshow(g);
>> figure, imshow(SI); figure, imshow(TI);
Tuesday, April 21, 2020 TK36306 Pengolahan Citra ©2018 Halaman 9 dari 17
Segmentasi berbasis Watershed
Dalam ilmu geografi, watershed adalah
pertemuan dua lereng yang membagi daerah
yang dikeluarkan oleh sistem sungai yang
berbeda.
Catchment basin adalah daerah goegrafis yang
keluar menuju sungai atau reservoir.
Watershed transform mengaplikasi ide ini untuk
menyelesaikan berbagai masalah segmentasi
citra.
12
Tuesday, April 21, 2020 TK36306 Pengolahan Citra ©2018 Halaman 12 dari 17
Segmentasi dengan K-Means
Segmentasinya berbasis clustering dengan
fitur: R (red), G (green), dan B (blue).
Karena citra berukuran m*n*3 (3 dimensi),
maka harus di-reshape menjadi bentuk tabel
(struktur fitur dalam clustering) berukuran
mn*3 (2 dimensi).
Setelah dilakukan clustering dengan k-
means, didapatkan index dari setiap piksel
yang menyatakan nomor cluster yang diikuti.
Kemudian struktur index (matrik mn*1)
diubah menjadi struktur citra 2 dimensi (m*n)
Tuesday, April 21, 2020 TK36306 Pengolahan Citra ©2018 Halaman 13 dari 17
%Jumlah cluster = 3
>> f = imread('gadung-1-
Citra asli RGB 2.jpg');
>> f = im2double(f);
>> r = f(:,:,1);
>> g = f(:,:,2);
>> b = f(:,:,3);
>> [m,n] = size(r);
>> r = reshape(r,m*n,1);
>> g = reshape(g,m*n,1);
>> b = reshape(b,m*n,1);
>> rgb = cat(2,r,g,b);
Hasil segmentasi dengan 3 cluster (percobaan 1) >> h = kmeans(rgb,3); %3
adalah jumlah cluster
>> h = reshape(h,m,n);
>> h = h/3; %dibagi
dengan jumlah cluster
Tuesday, April 21, 2020 TK36306 Pengolahan Citra ©2018 Halaman 14 dari 17
Minggu Depan.....
KOMPRESI &
watermark CITRA
Tuesday, April 21, 2020 TK36306 Pengolahan Citra ©2018 Halaman 15 dari 17
TERIMA KASIH
Semoga sukses