Program Segmentasi Gambar Dengan Metode Thresholding Menggunakan Matlab
Desember 18, 2017
Add Comment
Hello world, pada pagi yang dingin ini saya akan mencoba menjelaskan tentang cara membuat program segmentasi gambar dengan metode thresholding menggunakan matlab.
Apa segmentasi itu?
Segmentasi adalah proses pemisahan objek yang satu dengan objek yang lain dalam suatu gambar (citra) menjadi objek-objek berdasarkan karakteristik tertentu.
Apa thresholding itu?
Thresholding adalah salah satu metode segmentasi citra yang memisahkan antara objek dengan background dalam suatu citra berdasarkan pada perbedaan tingkat kecerahannya atau gelap terangnya.
Region/wilayah citra yang cenderung gelap akan dibuat semakin gelap (hitam sempurna dengan nilai intensitas sebesar 0), sedangkan region/wilayah citra yang cenderung terang akan dibuat semakin terang (putih sempurna dengan nilai intensitas sebesar 1). Oleh karena itu, keluaran dari proses segmentasi dengan metode thresholding ini berupa citra biner dengan nilai intensitas piksel sebesar 0 atau 1.
Berikut langkah-langkah pemrograman segmentasi gambar dengan metode thresholding menggunakan matlab.
:: Membaca dan menampilkan citra asli.
sehingga diperoleh tampilan sebagai berikut.
:: Mengkonversi ruang warna citra dari RGB menjadi Greyscale.
Citra Greyscale yang dihasilkan sebagai berikut.
:: Melakukan segmentasi citra menggunakan metode thresholding.
Apa segmentasi itu?
Segmentasi adalah proses pemisahan objek yang satu dengan objek yang lain dalam suatu gambar (citra) menjadi objek-objek berdasarkan karakteristik tertentu.
Apa thresholding itu?
Thresholding adalah salah satu metode segmentasi citra yang memisahkan antara objek dengan background dalam suatu citra berdasarkan pada perbedaan tingkat kecerahannya atau gelap terangnya.
Region/wilayah citra yang cenderung gelap akan dibuat semakin gelap (hitam sempurna dengan nilai intensitas sebesar 0), sedangkan region/wilayah citra yang cenderung terang akan dibuat semakin terang (putih sempurna dengan nilai intensitas sebesar 1). Oleh karena itu, keluaran dari proses segmentasi dengan metode thresholding ini berupa citra biner dengan nilai intensitas piksel sebesar 0 atau 1.
Berikut langkah-langkah pemrograman segmentasi gambar dengan metode thresholding menggunakan matlab.
:: Membaca dan menampilkan citra asli.
Img = imread('superman.jpg');
axes(handles.axes1);
imshow(Img);
sehingga diperoleh tampilan sebagai berikut.
:: Mengkonversi ruang warna citra dari RGB menjadi Greyscale.
Gray = rgb2gray(Img);
axes(handles.axes3);
imshow(Gray);
Citra Greyscale yang dihasilkan sebagai berikut.
:: Melakukan segmentasi citra menggunakan metode thresholding.
bw = im2bw(Gray,240/255);
axes(handles.axes4);
imshow(bw);
Hasil segmentasi yang diperoleh adalah sebagai berikut.
:: Melakukan operasi komplemen agar objek yang bernilai 1 (berwarna putih), sedangkan background yang bernilai 0 (berwarna hitam) dan melakukan operasi morfologi untuk menyempurnakan bentuk objek pada citra biner hasil segmentasi. Operasi morfologi yang dilakukakn yaitu berupa fillinf holes, area opening, dan erosi.
bw = imcomplement(bw);
bw1 = imfill(bw,'holes');
bw1 (end,:) = 1;
bw1 = imfill(bw,'holes');
bw1 (end,:) = 0;
bw2 = imerode(bw1,strel('disk',1));
axes(handles.axes5);
imshow(bw);
Sehingga hasil yang diperoleh adalah sebagai berikut.
Img2 = imread('background.jpg');
axes(handles.axes2);
imshow(Img2);
Tampilan citra background adalah sebagai berikut.
:: Mengimplementasikan citra biner hasil segmentasi untuk mengubah background citra asli.
R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
R2 = Img2(:,:,1);
G2 = Img2(:,:,2);
B2 = Img2(:,:,3);
R2(bw2) = R(bw2);
G2(bw2) = G(bw2);
B2(bw2) = B(bw2);
RGB = cat(3,R2,G2,B2);
axes(handles.axes6);
imshow(RGB);
Hasil segmentasi yang diperoleh adalah sebagai berikut.
Berikut code lengkap dari program segmentasi gambar dengan metode thresholding menggunakan matlab.
function varargout = Tugas_4PCD_ImageSegmentation(varargin)
% TUGAS_4PCD_IMAGESEGMENTATION M-file for Tugas_4PCD_ImageSegmentation.fig
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Tugas_4PCD_ImageSegmentation_OpeningFcn, ...
'gui_OutputFcn', @Tugas_4PCD_ImageSegmentation_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 Tugas_4PCD_ImageSegmentation is made visible.
function Tugas_4PCD_ImageSegmentation_OpeningFcn(hObject, eventdata, handles, varargin)
% Choose default command line output for Tugas_4PCD_ImageSegmentation
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% --- Outputs from this function are returned to the command line.
function varargout = Tugas_4PCD_ImageSegmentation_OutputFcn(hObject, eventdata, handles)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in BtnThresholding.
function BtnThresholding_Callback(hObject, eventdata, handles)
%Object
Img = imread('superman.jpg');
axes(handles.axes1);
imshow(Img);
%Mengkonversi ruang warna citra RGB menjadi Grayscale
Gray = rgb2gray(Img);
axes(handles.axes3);
imshow(Gray);
%Melakukan segmentasi citra menggunakan metode thresholding
bw = im2bw(Gray,240/255);
axes(handles.axes4);
imshow(bw);
%Melakukan operasi komplemen agar objek yang bernilai 1 (berwarna putih),
%sedangkan background yang bernilai 0 (berwarna hitam)
bw = imcomplement(bw);
%Melakukan operasi morfologi untuk menyempurnakan bentuk objek pada citra
%biner hasil segmentasi. Operasi morfologi yang dilakukan adalah berupa filling holes, area opening, dan erosi
bw1 = imfill(bw,'holes');
bw1 (end,:) = 1;
bw1 = imfill(bw,'holes');
bw1 (end,:) = 0;
bw2 = imerode(bw1,strel('disk',1));
axes(handles.axes5);
imshow(bw);
% Background
Img2 = imread('background.jpg');
axes(handles.axes2);
imshow(Img2);
%Mengimplementasikan citra biner hasil segmentasi untuk mengubah background
%citra asli
R = Img(:,:,1);
G = Img(:,:,2);
B = Img(:,:,3);
R2 = Img2(:,:,1);
G2 = Img2(:,:,2);
B2 = Img2(:,:,3);
R2(bw2) = R(bw2);
G2(bw2) = G(bw2);
B2(bw2) = B(bw2);
RGB = cat(3,R2,G2,B2);
axes(handles.axes6);
imshow(RGB);
% --- Executes on button press in BtnExit.
function BtnExit_Callback(hObject, eventdata, handles)
msgbox('Thanks for using Image Editor tool');
pause(1);
close();
close();
Dan berikut screenshoot hasil running program.
:: Tampilan awal
:: Thresholding
:: Exit
0 Response to "Program Segmentasi Gambar Dengan Metode Thresholding Menggunakan Matlab"
Posting Komentar