Segmentasi Citra Menggunakan Algoritma Klasifikasi
Segmentasi citra merupakan suatu tahapan untuk mengelompokkan region-region di dalam suatu citra. Pengelompokan tersebut dilakukan agar dapat dilakukan analisis pada region tertentu saja.
Berikut ini merupakan contoh aplikasi pengolahan citra untuk melakukan segmentasi citra menggunakan algoritma klasifikasi. Citra yang digunakan adalah citra ‘plage de carataggio tahiti beach.jpg’ yang akan dikelompokkan dalam 3 kelas region yaitu region laut, region pepohonan, dan region pasir. Algoritma klasifikasi yang digunakan antara lain adalah random forest, k-nearest neighbors, naive bayes, dan decision tree (pohon keputusan).
Langkah-langkah pengolahan citranya adalah sebagai berikut:
1. Membaca citra rgb dan memperkecil ukuran citra
clc; clear; close all; warning off all; % membaca citra rgb Img = imread('plage de carataggio tahiti beach.jpg'); % memperkecil ukuran citra 0,5x semula untuk mempercepat komputasi Img = imresize(Img,0.5); figure, imshow(Img), title('Citra RGB');

2. Mengkonversi ruang warna citra rgb menjadi ycbcr
% mengkonversi ruang warna citra rgb menjadi ycbcr YCbCr = rgb2ycbcr(Img); figure, imshow(YCbCr), title('Citra YCbCr');

3. Melakukan segmentasi citra menggunakan algoritma random forest
% mengekstrak komponen cb dan cr CbCr = double(YCbCr(:,:,2:3)); % mengambil sampel untuk masing2 cluster CbCr1 = reshape(CbCr(61:70,181:190,:),100,2); % region laut CbCr2 = reshape(CbCr(91:100,561:570,:),100,2); % region pepohonan CbCr3 = reshape(CbCr(261:270,521:530,:),100,2); % region pasir % mempersiapkan matriks input dan region cluster X = [CbCr1;CbCr2;CbCr3]; Y = cell(15,1); for a = 1:100 Y{a} = 'laut'; end for b = 101:200 Y{b} = 'pepohonan'; end for c = 201:300 Y{c} = 'pasir'; end % klasifikasi menggunakan algoritma random forest Mdl = random_forest(X,Y); % membaca cluster keluaran nrows = size(CbCr,1); ncols = size(CbCr,2); CbCr = reshape(CbCr,nrows*ncols,2); y = predict(Mdl,CbCr); % menyusun citra hasil clustering Img2 = zeros(nrows,ncols); for n = 1:numel(Img2); if isequal(y{n},'laut') Img2(n) = 1; elseif isequal(y{n},'pepohonan') Img2(n) = 2; elseif isequal(y{n},'pasir') Img2(n) = 3; end end % menampilkan citra hasil clustering figure, imshow(Img2,[]), title('Hasil Clustering');

4. Menampilkan masing-masing region hasil klasifikasi
% menampilkan citra region laut R = Img(:,:,1); G = Img(:,:,2); B = Img(:,:,3); R(Img2~=1) = 0; G(Img2~=1) = 0; B(Img2~=1) = 0; RGB = cat(3,R,G,B); figure, imshow(RGB), title('Region Laut'); % menampilkan citra region pepohonan R = Img(:,:,1); G = Img(:,:,2); B = Img(:,:,3); R(Img2~=2) = 0; G(Img2~=2) = 0; B(Img2~=2) = 0; RGB = cat(3,R,G,B); figure, imshow(RGB), title('Region Pepohonan'); % menampilkan citra region pasir R = Img(:,:,1); G = Img(:,:,2); B = Img(:,:,3); R(Img2~=3) = 0; G(Img2~=3) = 0; B(Img2~=3) = 0; RGB = cat(3,R,G,B); figure, imshow(RGB), title('Region Pasir');



5. Membandingkan hasil segmentasi masing-masing algoritma klasifikasi



Seluruh file lengkap source code dan citra pada pemrograman di atas dapat diperoleh pada halaman berikut ini: Source Code
Posted on July 28, 2019, in Pengolahan Citra and tagged algoritma klustering, algoritma random forest, metode decision tree, metode knn, metode naive bayes, metode pohon keputusan, metode random forest, segmentasi citra. Bookmark the permalink. Leave a comment.
Leave a comment
Comments 0