Post on 15-Feb-2016
description
Segmentasi CitraPengolahan Citra DigitalMateri 7
Eko PrasetyoTeknik Informatika
Universitas Muhamamdiyah Gresik2011
2
Konsep Segmentasi Segmentasi membagi citra ke dalam sejumlah region atau
obyek. Level untuk pembagian tergantung pada masalah yang diselesaikan.
Proses segmentasi berhenti ketika obyek yang diinginkan dalam aplikasi telah terisolasi. ◦ Misal, pemeriksaan otomatis pada rakitan produk elektronik. Yang
diinginkan adalah analisis citra produk dengan tujuan untuk mengetahui ada atau tidaknya penyimpangan tertentu, seperti salah komponen, atau lintasan hubungan yang putus
Algoritma umumnya didasarkan pada satu dari dua properti nilai intensitas: diskontinuitas dan similaritas. ◦ Kategori pertama, pendekatannya adalah memecah/memilah citra
berdasarkan perubahan kasar dalam intensitas, seperti tepi dalam citra.
◦ Kategori kedua didasarkan pada pemecahan citra ke dalam region yang sama menurut sejumlah kriteria yang didefinisikan, seperti thresholding, region growing, region splitting and merging.
3
Deteksi Tepi Merupakan 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)
Jarak vektor ini adalah:
Atau dengan nilai absolutnya:
Turunan kedua dalam pengolahan citra umumnya dihitung menggunakan Laplacian
yfxf
GG
y
xf
2/122)( yx GGmagf f
yx GGf
2
2
2
22 ),(),(),(
yyxf
xyxfyxf
4
Operator Deteksi Tepi: Sobel, Prewitt, Robert
5
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 Gaussian (LoG)
Menemukan tepi dengan mencari zero crossing setelah pemfilteran 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
6
SOBEL, PREWITT, ROBERT[g, t] = edge(f, ‘sobel’, T, dir)f adalah citra input, T adalah threshold, 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
[g, t] = edge(f, ‘prewitt’, T, dir)[g, t] = edge(f, ‘robert’, T, dir)
Laplacian of Gaussianfungsi Gaussian:
di mana r2 = x2 + y2 dan adalah standard deviasi
2
2
2)(
r
erh
Laplacian dari fungsi ini (turunan kedua terhadap r) adalah: 2
2
24
222 )(
r
errh
[g, t] = edge(f, ‘log’, T, sigma)
CANNY[g, t] = edge(f, ‘canny’, T, sigma)
7
Citra grayscale Hasil deteksi tepi Sobel dengan threshold otomatis
Hasil deteksi tepi Prewitt dengan threshold otomatis
Hasil deteksi tepi Robert dengan threshold otomatis
Hasil deteksi tepi LoG dengan threshold otomatis
Hasil deteksi tepi Canny dengan threshold otomatis
>> [g_sobel_default, ts] = edge(f, 'sobel'); >> [g_log_default, tlog] = edge(f, 'log'); >> [g_canny_default, tcan] = edge(f, 'canny');
>> g_sobel_best = edge(i, 'sobel', 0.05);>> g_log_best = edge(i, 'log', 0.003, 2.25);>> g_canny_best = edge(i, 'canny', [0.04, 0.10], 1.5);
8
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
9
>> 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);
Citra grayscale Seed points yang ditemukan (gray level = 255) (SI)
Citra biner yang telah melewati pengujian threshold (TI)
Citra yang mempunyai hubungan 8-connected terhadap seed (g)
10
Segmentasi dengan K-meansSegmentasinya 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)
11
%Jumlah cluster = 3>> f = imread('gadung-1-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);>> h = kmeans(rgb,3); %3 adalah jumlah cluster>> h = reshape(h,m,n);>> h = h/3; %dibagi dengan jumlah cluster
Citra asli RGB
Hasil segmentasi dengan 3 cluster (percobaan 1)
Hasil segmentasi dengan 3 cluster (percobaan 2)
12
ANY QUESTION ?Saatnya presentasi paper