Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Segmentasi Citra Pengolahan Citra Digital Materi 6 Eko Prasetyo Teknik Informatika UMG-UPN Veteran Jatim 2012.

Presentasi serupa


Presentasi berjudul: "Segmentasi Citra Pengolahan Citra Digital Materi 6 Eko Prasetyo Teknik Informatika UMG-UPN Veteran Jatim 2012."— Transcript presentasi:

1 Segmentasi Citra Pengolahan Citra Digital Materi 6 Eko Prasetyo Teknik Informatika UMG-UPN Veteran Jatim 2012

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. Tujuannya 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. 2

3 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) Jarak vektor ini adalah: Atau dengan nilai absolutnya: Turunan kedua dalam pengolahan citra umumnya dihitung menggunakan Laplacian 3

4 Operator Deteksi Tepi: Sobel, Prewitt, Robert 4

5 5 Fungsi untuk deteksi tepi di MATLAB: [g, t] = edge(f, ‘method’, parameters) Detektor tepiProperti 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 CannyMenemukan 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 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 Gaussian fungsi Gaussian: di mana r 2 = x 2 + y 2 dan  adalah standard deviasi Laplacian dari fungsi ini (turunan kedua terhadap r) adalah: [g, t] = edge(f, ‘log’, T, sigma) CANNY [g, t] = edge(f, ‘canny’, T, sigma)

7 7 Citra grayscaleHasil 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 8

9 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 grayscaleSeed points yang ditemukan (gray level = 255) (SI) Citra biner yang telah melewati pengujian threshold (TI) Citra yang mempunyai hubungan 8-connected terhadap seed (g) Intensitas 255 menjadi titik seed Threshold terbaik ada di titik intensitas 190 Maka = 65 (nilai T yang digunakan untuk segmentasi)

10 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. 10 Citra grayscalePermukaan 3-D citra

11 Segmentasi berbasis Watershed M 1, M 2, …, M R menyatakan koordinat titik-titik regional minimal dari citra g(x,y). C(M i ) adalah himpunan yang menyatakan koordinat titik-titik dalam catchment basin yang diasosiasikan dengan regional minimum M i (membentuk komponen terkoneksi). T[n] merepresentasikan himpunan koordinat (s,t) di mana g(s,t) < n. Oleh sebab itu: ◦ T[n] = {(s,t)|g(s,t) < n} ◦ Secara geometris, T[n] adalah sekumpulan koordinat titik- titik g(x,y) yang berada di bawah plane g(x,y) = n. 11 Citra grayscalePermukaan 3-D citra

12 Watershed dengan transformasi jarak Watershed dalam penggunaan dikonjungsi dengan teknik yang lain, seperti: transformasi jarak, gradien, dsb. Transformasi jarak dari citra biner adalah jarak dari setiap piksel ke nilai piksel non-zero terdekat. ◦ Toolbox: D = bwdist(f) 12 >> g = im2bw(i, graythresh(i)); >> gc = ~g; >> D = bwdist(gc); >> L = watershed(-D); >> w = L == 0; >> g2 = g & ~w;

13 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) 13

14 14 %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)

15 ANY QUESTION ? To Be Continued … Materi 7 – Kompresi Citra 15


Download ppt "Segmentasi Citra Pengolahan Citra Digital Materi 6 Eko Prasetyo Teknik Informatika UMG-UPN Veteran Jatim 2012."

Presentasi serupa


Iklan oleh Google