Membuat Game Petualangan Spiderman Menggunakan Greenfoot
Membuat Game Battleship Dengan Javascript
Cara Membuat Aplikasi Kalkulator Dengan Netbeans IDE
Program Segmentasi Gambar Dengan Metode Thresholding Menggunakan Matlab
Membuat Game Tetris Dengan Java Menggunakan Netbeans IDE

Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab

Assalamualaikum warohmatullahi wabarokatuh

Programmer Bojonegoro - Semangat pagi temen-temen, pada senin pagi yang cerah ini, kembali saya akan membagikan tutorial coding tentang segmentasi citra menggunakan matlab.

Kalau sebelumnya saya telah menjelaskan tentang segmentasi citra dengan metode thresholding, kali ini saya tetap akan menjelaskan tentang segmentasi citra, namun menggunakan metode K-Means Clustering.

Metode K-Means Clustering  sendiri digunakan untuk memisahkan antar region dalam citra berdasarkan pada perbedaan warna.

Citra asli yang semula dalam ruang warna RBG di konversi menjadi ruang warna L*a*b kemudian dilakukan klustering dengan menggunakan komponen a dan b.

Berikut langkah-langkah pemrograman segmentasi citra dengan metode K-Means Clustering menggunakan matlab.

:: Membaca dan menampilkan citra asli.

Img = imread('orange.jpg');
axes(handles.axes1);
imshow(Img);

Sehingga diperoleh tampilan sebagai berikut.

Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab
:: Mengkonversi ruang warna citra yang semula berada pada ruang warna RBG menjadi ruang warna L*a*b

cform = makecform('srgb2lab');
lab = applycform(Img,cform);
axes(handles.axes2);
imshow(lab);

Hasil konversi ruang warna citra adalah sebagai berikut.
Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab

:: Melakukan klustering dengan masukan berupa komponen a dan b dari citra L*a*b. Jumlah kluster yang digunakan adalah 3.

ab = double(lab(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
ab = reshape(ab,nrows*ncols,2);
 
nColors = 3;
[cluster_idx, cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean', ...
                                      'Replicates',3);
 
pixel_labels = reshape(cluster_idx,nrows,ncols);
RGB = label2rgb(pixel_labels);
axes(handles.axes3);
imshow(RGB,[]), title('image labeled by cluster index');

Hasil segmentasi yang diperoleh adalah sebagai berikut.
Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab

:: Menampilkan hasil segmentasi pada masing-masing kluster.

segmented_images = cell(1,3);
rgb_label = repmat(pixel_labels,[1 1 3]);
 
for k = 1:nColors
    color = Img;
    color(rgb_label ~= k) = 0;
    segmented_images{k} = color;
    figure,imshow(segmented_images{k}), title(strcat(['objects in cluster ',num2str(k)]));
end

Hasil yang diperoleh adalah sebagai berikut.
Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab
Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab
Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab

Berikut code lengkap Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab.

function varargout = KMeans(varargin)
% KMEANS M-file for KMeans.fig
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @KMeans_OpeningFcn, ...
                   'gui_OutputFcn',  @KMeans_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before KMeans is made visible.
function KMeans_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% Choose default command line output for KMeans
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% --- Outputs from this function are returned to the command line.
function varargout = KMeans_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);

% Get default command line output from handles structure
varargout{1} = handles.output;

% --- Executes on button press in KMeans.
function KMeans_Callback(hObject, eventdata, handles)
% hObject    handle to KMeans (see GCBO)
Img = imread('orange.jpg');
axes(handles.axes1);
imshow(Img);

%Mengkonversi ruang warna citra yang semula berada pada ruang warna RGB menjadi ruang warna L*a*b
cform = makecform('srgb2lab');
lab = applycform(Img,cform);
axes(handles.axes2);
imshow(lab);

%Melakukan klustering dengan masukan berupa komponen a dan b dari citra
%L*a*b. Jumlah kluster yang digunakan adalah 3
ab = double(lab(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
ab = reshape(ab,nrows*ncols,2);
 
nColors = 3;
[cluster_idx, cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean', ...
                                      'Replicates',3);
 
pixel_labels = reshape(cluster_idx,nrows,ncols);
RGB = label2rgb(pixel_labels);
axes(handles.axes3);
imshow(RGB,[]), title('image labeled by cluster index');
%Menampilkan hasil segmentasi pada masing-masing kluster
segmented_images = cell(1,3);
rgb_label = repmat(pixel_labels,[1 1 3]);
 
for k = 1:nColors
    color = Img;
    color(rgb_label ~= k) = 0;
    segmented_images{k} = color;
    figure,imshow(segmented_images{k}), title(strcat(['objects in cluster ',num2str(k)]));
end

% --- Executes on button press in Exit.
function Exit_Callback(hObject, eventdata, handles)
% hObject    handle to Exit (see GCBO)
msgbox('Thanks for using Image Editor tool');
pause(1);
close();
close();

Berikut screenshoot hasil running program.
:: Tampilan awal
Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab
:: K-Means
Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab
Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab
Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab
Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab

:: Exit
Program Segmentasi Citra Dengan Metode K-Means Clustering Menggunakan Matlab

Alhamdulillah, itulah tutorial membuat program segmentasi citra dengan metode K-Means Clustering menggunakan matlab.
Baca juga: Program Segmentasi Citra Dengan Metode Thresholding Menggunakan Matlab.
Terimakasih dan semoga bermanfaat.

Wassalamualaikum warohmatullahi wabarokatuh

Previous
Next Post »
Thanks for your comment