MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan...

17
MODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas https://pemrogramanmatlab.wordpress.com/

Transcript of MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan...

Page 1: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

MODUL PRAKTIKUM

Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB

“Histogram Citra”

Adi Pamungkas

https://pemrogramanmatlab.wordpress.com/

Page 2: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

I. Tujuan

1. Mengetahui pengertian citra digital beserta elemen pembentuk citra

2. Memahami konsep citra sebagai matriks

3. Memahami histogram citra

II. Teori Dasar

2.1 Citra Digital

Picture element (pixel) dapat diartikan sebagai elemen pembentuk citra

dalam bidang dua dimensi yang memiliki koordinat dan amplitudo

. Koordinat merupakan letak/posisi piksel dalam citra,

sedangkan amplitudo merupakan nilai intensitas citra. Salah satu

jenis citra adalah citra grayscale. Representasi citra grayscale ditunjukkan

pada Gambar 1.

Gambar 1. Penggambaran piksel dalam citra grayscale

Citra pada Gambar 1 termasuk dalam kelas grayscale 8-bit yang artinya

derajat warna antara hitam dan putih dibagi sebanyak derajat

keabuan (0-255). Kelas tersebut merepresentasikan intensitas warna

hitam sempurna dengan nilai 0 dan putih sempurna dengan nilai 255.

Pada gambar tersebut, piksel dengan koordinat (1,1) memiliki nilai

Page 3: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

intensitas 122, piksel dengan koordinat (2,1) memiliki nilai intensitas 92,

dst. Oleh sebab itu, citra dapat pula dinyatakan sebagai matriks.

Pada citra berwarna, misalnya citra RGB truecolor 24-bit, tersusun atas

tiga buah matriks yang berasal dari komponen warna red, green, dan

blue. Representasi citra RGB truecolor 24-bit ditunjukkan pada Gambar 2.

Gambar 2. Penggambaran piksel dalam citra truecolor

Setiap piksel pada citra RGB truecolor 24-bit memiliki tiga nilai intensitas

yaitu Red (R), Green (G), dan Blue (B). Ketiga nilai intensitas tersebut

dapat dikonversi menjadi satu nilai intensitas saja sehingga citra yang

terbentuk adalah citra grayscale. Persamaan yang digunakan untuk

mengkonversi citra RGB truecolor 24-bit menjadi citra grayscale 8-bit

adalah

0.2989 * R + 0.5870 * G + 0.1140 * B

Citra hasil konversi RGB menjadi grayscale ditunjukkan pada Gambar 3.

Page 4: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

Gambar 3. Citra hasil konversi RGB menjadi grayscale

2.2 Histogram Citra

Histogram citra merupakan diagram yang menggambarkan distribusi

frekuensi nilai intensitas piksel dalam suatu citra. Sumbu horizontal

merupakan nilai intensitas piksel sedangkan sumbu vertical merupakan

frekuensi/jumlah piksel. Histogram dari sebuah citra ditunjukkan pada

Gambar 4.

Gambar 4. Citra dan Histogramnya

Citra yang terang, histogramnya akan cenderung menumpuk di sebelah

kanan, dan citra yang gelap, histogramnya akan menumpuk di sebelah

kiri.

Page 5: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

III. Petunjuk Praktikum

1. Bukalah Program Matlab sehingga muncul desktop Matlab seperti pada

gambar di bawah ini

2. Untuk menampilkan GUI Matlab, Klik New >> Graphical User Interface atau

ketik guide pada Command Window

Page 6: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

3. Untuk membuat GUI baru, klik OK

Sehingga akan muncul tampilan seperti gambar di bawah ini

Page 7: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

4. Untuk menampilkan nama pada komponen palette, klik File >> Preferences

kemudian centang Show names in component palette lalu klik OK

Page 8: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

Sehingga tampilan GUI akan seperti pada gambar di bawah ini

4. Buatlah 1 buah static text, 1 push button, 4 radio button, 1 button group,

dan 2 axes

Page 9: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

5. Untuk mengubah isi properti suatu komponen, klik kanan komponen yang

ingin diubah propertinya lalu pilih Property Inspector, atau double click

komponen tersebut. Ubahlah isi properti setiap komponen sesuai dengan

tabel di bawah ini

No. Nama Komponen Property Isi Property

1. Static Text String Citra & Histogram

FontSize 12

2. Push Button String Buka Citra

Tag pushbutton1

FontSize 12

3. Radio Button String Kanal Merah

Tag radiobutton1

FontSize 12

4. Radio Button String Kanal Hijau

Tag radiobutton2

FontSize 12

5. Radio Button String Kanal Biru

Tag radiobutton3

FontSize 12

6. Radio Button String Grayscale

Tag radiobutton4

FontSize 12

7. Button Group Title Histogram

FontSize 12

8. Axes Tag axes1

Xtick <kosongkan>

Ytick <kosongkan>

Ztick <kosongkan>

8. Axes Tag axes2

Xtick <kosongkan>

Ytick <kosongkan>

Ztick <kosongkan>

Page 10: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

Setelah isi properti masing-masing komponen diubah, maka tampilan GUI akan

seperti pada gambar di bawah ini

6. Klik tombol Run Figure , simpan dengan nama Histogram

Page 11: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

7. Listing programnya adalah sebagai berikut:

function varargout = Histogram(varargin) % HISTOGRAM MATLAB code for Histogram.fig % HISTOGRAM, by itself, creates a new HISTOGRAM or raises the

existing % singleton*. % % H = HISTOGRAM returns the handle to a new HISTOGRAM or the

handle to % the existing singleton*. % % HISTOGRAM('CALLBACK',hObject,eventData,handles,...) calls

the local % function named CALLBACK in HISTOGRAM.M with the given input

arguments. % % HISTOGRAM('Property','Value',...) creates a new HISTOGRAM

or raises the % existing singleton*. Starting from the left, property

value pairs are % applied to the GUI before Histogram_OpeningFcn gets called.

An % unrecognized property name or invalid value makes property

application % stop. All inputs are passed to Histogram_OpeningFcn via

varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows

only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help Histogram

% Last Modified by GUIDE v2.5 14-Aug-2013 00:42:54

% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Histogram_OpeningFcn, ... 'gui_OutputFcn', @Histogram_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

Page 12: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

% --- Executes just before Histogram is made visible. function Histogram_OpeningFcn(hObject, eventdata, handles,

varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Histogram (see VARARGIN)

% Choose default command line output for Histogram handles.output = hObject;

% Update handles structure guidata(hObject, handles); movegui(hObject,'center');

% UIWAIT makes Histogram wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = Histogram_OutputFcn(hObject, eventdata,

handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

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

% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA) [nama_file,nama_path] =

uigetfile({'*.jpg';'*.bmp';'*.png';'*.tif'},... 'Buka Citra'); if ~isequal(nama_file,0) handles.data1 = imread(fullfile(nama_path,nama_file)); guidata(hObject,handles); axes(handles.axes1) imshow(handles.data1); title('Citra Asli'); else return end

Page 13: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

% --- Executes on button press in radiobutton1. function radiobutton1_Callback(hObject, eventdata, handles) % hObject handle to radiobutton1 (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton1 set(handles.radiobutton2,'value',0); set(handles.radiobutton3,'value',0); set(handles.radiobutton4,'value',0); citra = handles.data1; IR = citra(:,:,1); IG = citra(:,:,2); IB = citra(:,:,3); axes(handles.axes1) imshow(cat(3,IR,IG.*0,IB.*0)); title('Kanal Merah'); axes(handles.axes2) imhist(IR); title('Histogram Kanal Merah');

% --- Executes on button press in radiobutton2. function radiobutton2_Callback(hObject, eventdata, handles) % hObject handle to radiobutton2 (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton2 set(handles.radiobutton1,'value',0); set(handles.radiobutton3,'value',0); set(handles.radiobutton4,'value',0); citra = handles.data1; IR = citra(:,:,1); IG = citra(:,:,2); IB = citra(:,:,3); axes(handles.axes1) imshow(cat(3,IR.*0,IG,IB.*0)); title('Kanal Hijau'); axes(handles.axes2) imhist(IG); title('Histogram Kanal Hijau');

% --- Executes on button press in radiobutton3. function radiobutton3_Callback(hObject, eventdata, handles) % hObject handle to radiobutton3 (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton3

Page 14: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

set(handles.radiobutton1,'value',0); set(handles.radiobutton2,'value',0); set(handles.radiobutton4,'value',0); citra = handles.data1; IR = citra(:,:,1); IG = citra(:,:,2); IB = citra(:,:,3); axes(handles.axes1) imshow(cat(3,IR.*0,IG.*0,IB)); title('Kanal Biru'); axes(handles.axes2) imhist(IB); title('Histogram Kanal Biru');

% --- Executes on button press in radiobutton4. function radiobutton4_Callback(hObject, eventdata, handles) % hObject handle to radiobutton4 (see GCBO) % eventdata reserved - to be defined in a future version of

MATLAB % handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton4 set(handles.radiobutton1,'value',0); set(handles.radiobutton2,'value',0); set(handles.radiobutton3,'value',0); citra = handles.data1; gray = rgb2gray(citra); axes(handles.axes1) imshow(gray); title('Grayscale'); axes(handles.axes2) imhist(gray); title('Histogram Grayscale');

Page 15: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

8. Ketika program dijalankan, maka hasil tampilannya sebagai berikut

Page 16: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas
Page 17: MODUL PRAKTIKUM - pemrogramanmatlab.files.wordpress.com fileMODUL PRAKTIKUM Dasar-Dasar Pengolahan Citra Digital menggunakan GUI MATLAB “Histogram Citra” Adi Pamungkas

Materi dan Source Code dalam modul ini dapat diunduh

pada https://pemrogramanmatlab.wordpress.com/