Program Segmentasi Gambar Dengan Metode Thresholding Menggunakan Matlab

Share:
Assalamualaikum warohmatullahi wabarokatuh

Programmer Bojonegoro - 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.

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

sehingga diperoleh tampilan sebagai berikut.
Program Segmentasi Gambar Dengan Metode Thresholding Menggunakan Matlab

:: Mengkonversi ruang warna citra dari RGB menjadi Greyscale.

Gray = rgb2gray(Img);
axes(handles.axes3);
imshow(Gray);

Citra Greyscale yang dihasilkan sebagai berikut.
Program Segmentasi Gambar Dengan Metode Thresholding Menggunakan Matlab

:: Melakukan segmentasi citra menggunakan metode thresholding.

bw = im2bw(Gray,240/255);
axes(handles.axes4);
imshow(bw);

Hasil segmentasi yang diperoleh adalah sebagai berikut.
Program Segmentasi Gambar Dengan Metode Thresholding Menggunakan Matlab

:: 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.
Program Segmentasi Gambar Dengan Metode Thresholding Menggunakan MatlabImg2 = imread('background.jpg');
axes(handles.axes2);
imshow(Img2);


Tampilan citra background adalah sebagai berikut.
Program Segmentasi Gambar Dengan Metode Thresholding Menggunakan Matlab
:: 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.
Program Segmentasi Gambar Dengan Metode Thresholding Menggunakan Matlab

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
Program Segmentasi Gambar Dengan Metode Thresholding Menggunakan Matlab

:: Thresholding
Program Segmentasi Gambar Dengan Metode Thresholding Menggunakan Matlab

:: Exit
Program Segmentasi Gambar Dengan Metode Thresholding Menggunakan Matlab

Alhamdulillah, itulah proses dalam pembuatan program segmentasi gambar dengan metode thresholding menggunakan matlab.
Baca juga: Program Segmentasi CitraDengan Metode K-Means Clustering Menggunakan Matlab.
Terimakasih dan semoga bermanfaat.

Wassalamualaikum warohmatullahi wabarokatuh

No comments