271 likes | 869 Views
Segmentasi Citra. Pengolahan Citra Digital Materi 7. Eko Prasetyo Teknik Informatika Universitas Muhamamdiyah Gresik 2011. Konsep Segmentasi. Segmentasi membagi citra ke dalam sejumlah region atau obyek . Level untuk pembagian tergantung pada masalah yang diselesaikan .
E N D
Segmentasi Citra Pengolahan Citra Digital Materi 7 Eko Prasetyo TeknikInformatika UniversitasMuhamamdiyah Gresik 2011
KonsepSegmentasi • Segmentasimembagicitrakedalamsejumlah region atauobyek. Level untukpembagiantergantungpadamasalah yang diselesaikan. • Prosessegmentasiberhentiketikaobyek yang diinginkandalamaplikasitelahterisolasi. • Misal, pemeriksaanotomatispadarakitanprodukelektronik. Yang diinginkanadalahanalisiscitraprodukdengantujuanuntukmengetahuiadaatautidaknyapenyimpangantertentu, sepertisalahkomponen, ataulintasanhubungan yang putus • Algoritmaumumnyadidasarkanpadasatudariduapropertinilaiintensitas: diskontinuitasdansimilaritas. • Kategoripertama, pendekatannyaadalahmemecah/memilahcitraberdasarkanperubahankasardalamintensitas, sepertitepidalamcitra. • Kategorikeduadidasarkanpadapemecahancitrakedalam region yang samamenurutsejumlahkriteria yang didefinisikan, sepertithresholding, region growing, region splitting and merging.
DeteksiTepi • Merupakanpendekatan yang paling umumuntukpendeteksiandiskontinuitasnilaiintensitas, sepertidiskontinuitas yang dideteksiolehpenggunaanturunanpertamadankedua. • Menggunakanturunanpertamadalampengolahancitra (gradien) • Jarakvektoriniadalah: • Ataudengannilaiabsolutnya: • TurunankeduadalampengolahancitraumumnyadihitungmenggunakanLaplacian
Fungsiuntukdeteksitepidi MATLAB: [g, t] = edge(f, ‘method’, parameters)
SOBEL, PREWITT, ROBERT [g, t] = edge(f, ‘sobel’, T, dir) f adalahcitra input, T adalah threshold, dir menetapkanarah yang lebihdisukaipadacitraterdeteksi: ‘horizontal’, ‘vertical’, atau ‘both’ (default). g adalahcitrabiner yang berisinilai 1 padalokasidimanatepiterdeteksidan 0 untuk yang tidak. Parameter t pada output bersifatopsional, t adalahnilai threshold yang digunakanolehfungsi edge [g, t] = edge(f, ‘prewitt’, T, dir) [g, t] = edge(f, ‘robert’, T, dir) CANNY [g, t] = edge(f, ‘canny’, T, sigma) Laplacian of Gaussian fungsi Gaussian: dimana r2 = x2 + y2danadalah standard deviasi Laplaciandarifungsiini (turunankeduaterhadap r) adalah: [g, t] = edge(f, ‘log’, T, sigma)
Citra grayscale HasildeteksitepiSobeldengan threshold otomatis Hasildeteksitepi Prewitt dengan threshold otomatis Hasildeteksitepi Canny dengan threshold otomatis Hasildeteksitepi Robert dengan threshold otomatis HasildeteksitepiLoGdengan 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);
Region Growing • Prosedur yang mengelompokkanpikselatau sub-region kedalam region yang lebihbesarberdasarkanpadakriteria yang sudahditentukanuntukpertumbuhannya. • Pendekatandasarnyaadalahmemulaidengansejumlahtitikseeddandarisinimenumbuhkan region olehpenambahanpadasetiap seed pikseltetangga yang mempunyaipropertisamadengan seed (seperti range spesifikdari gray level atauwarna). • Sintaksfungsinyaadalah: • [g, NR, SI, TI] = regiongrow(f, S, T) • dimana f adalahcitra yang disegmentasi • parameter S bisamenjadi array (ukuransamadengan f) atauskalar. • Jika f adalahskalar, makaharusberisinilai 1 padasemuakoordinatdimanatitik seed ditempatkandan 0 untuklainnya. • Jika S skalar, mendefinisikannilaiintensitassepertibahwasemuatitikdalam f dengannilaimenjadititik seed. • T bisamenjadi array (ukurannyasamadengan f) atauskalar. Jika T adalah array, makaberisinilai threshold untuksetiaplokasidalam f. Jika T skalar, makamendefinisikan global threshold. • Nilai threshold digunakanuntukmengujijikapikseldalamcitracukupsamadengan seed dengan 8-connected
Citra grayscale Seed points yang ditemukan (gray level = 255) (SI) Citra biner yang telahmelewatipengujian threshold (TI) Citra yang mempunyaihubungan 8-connected terhadap seed (g) >> 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);
Segmentasidengan K-means • Segmentasinyaberbasis clustering denganfitur: R (red), G (green), dan B (blue). • Karenacitraberukuran m*n*3 (3 dimensi), makaharusdi-reshape menjadibentuktabel (strukturfiturdalam clustering) berukuranmn*3 (2 dimensi). • Setelahdilakukan clustering dengan k-means, didapatkan index darisetiappiksel yang menyatakannomor cluster yang diikuti. • Kemudianstruktur index (matrikmn*1) diubahmenjadistrukturcitra 2 dimensi (m*n)
%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 adalahjumlah cluster >> h = reshape(h,m,n); >> h = h/3; %dibagidenganjumlah cluster Citra asli RGB Hasilsegmentasidengan 3 cluster (percobaan 1) Hasilsegmentasidengan 3 cluster (percobaan 2)
Saatnyapresentasi paper ANY QUESTION ?