Anda di halaman 1dari 23

TUGAS

PENGOLAHAN CITRA DIGITAL


APLIKASI PENGOLAH CITRA
Dosen Pengampu : ACHMAD HIDAYATNO, S.T.,M.T.

Disusun Oleh :
Kelompok I
Kurnia Agnawati
Bima Adhi N.
Brilian Dermawan
Maria Fitriana
Agnes Yora Gracia S.
R G Alam Nusantara P H
Ihsan Atmaji
Hafidz Muslim
Muhammad Arif Bayu Aji

21060111120003
21060111120022
21060111130041
21060111130065
21060111130069
21060111110121
21060111130099
21060111140128
21060111140153

JURUSAN TEKNIK ELEKTRO


FAKULTAS TEKNIK
UNIVERSITAS DIPONEGORO
S E M AR AN G
2014

BAB I
1.PENDAHULUAN
1.1.

Latar Belakang
Kebutuhan untuk pengolahan citra secara cepat dan mudah sangat

diperlukan. Banyak sekali aplikasi program untuk editing gambar (citra) yang
menyediakan fungsi-fungsi yang sudah tersedia, artinya pengguna tidak dapat
melakukan kostumisasi terhadap fungsi-fungsi spesifik yang dibutuhkannya.
Penelitian ataupun penerapan di lapangan yang melibatkan proses
pengolahan citra, kadang-kadang menyulitkan dalam bidang pemrograman karena
rutin program yang berhubungan dengan komputer grafik membutuhkan keahlian
khusus dalam implementasinya.
MATLAB sebagai salah satu alat (tools) pemrograman untuk membantu
bidang

pendidikan

dan

penelitian

telah

menyajikan

bermacam-

macam toolbox yang disesuaikan dengan bidang keilmuan masing-masing,


salah satunya adalah Image Processing Toolbox. Dengan memanfaatkan toolbox
tersebut, pengguna dapat dengan mudah melakukan kustomisasi fungsi yang
sesuai dengan topik penelitiannya.
Suatu citra biasanya mengacu ke citra RGB. Sebenarnya bagaimana citra
disimpan dan dimanipulasi dalam komputer diturunkan dari teknologi televisi,
yang pertama kali mengaplikasikannya untuk tampilan grafis komputer. Jika
dilihat dengan kaca pembesar, tampilan monitor komputer akan terdiri dari
sejumlah triplet titik warna merah (RED), hijau (GREEN) dan biru (BLUE).
Tergantung pada pabrik monitornya untuk menentukan apak titik tersebut
merupakan titik bulat atau kotak kecil, tetapi akan selalu terdiri dari 3 triplet red,
green dan blue.
Dalam tugas pengolahan citra kali ini, kami membuat program yang dapat
mengatur ukuran gambar, mengatur contrast, mengatur brightness, memisahkan
komponen RGB (Red, Green, Blue), mengatur rerata histogram, mengubah
gambar ke grayscale.

1.2.

Tujuan

Memenuhi tugas ke 2 mata kuliah Pengolahan Citra Digital

Mempermudahkan pengguna atau user dalam mengedit suatu gambar/citra

Memberikan hasil citra/gambar yang dapat diatur sesuai keinginan

Memberikan effect warna dalam suatu citra/gambar

BAB II
2.DASAR TEORI
2.1.

Deteksi Tepi Metode Canny


Canny merupakan salah satu algoritma deteksi tepi modern. Pada tahun

1986 John Canny mengusulkan tiga kriteria yang menjadi basis pengembangan
filter untuk mengoptimalkan pendeteksian tepi pada citra bernoise (Febriani,
2008). Algoritma deteksi tepi Canny dikenal sebagai algoritma yang optimal
dalam melakukan pendeteksian tepi. Untuk meningkatkan metode-metode yang
telah ada dalam pendeteksian tepi, algoritma deteksi tepi Canny mengikuti
beberapa kriteria (Canny, 1986) sebagai berikut:
a. Good detection. Kriteria ini bertujuan memaksimalkan nilai signal to noise
ratio (SNR) sehingga semua tepi dapat terdeteksi dengan baik atau tidak ada
yang hilang.
b. Good localization. tepi yang terdeteksi berada pada posisi yang sebenarnya,
atau dengan kata lain bahwa jarak antara posisi sebenarnya adalah seminimum
mungkin (idealnya adalah 0).
c. Only one response to a single edge (hanya satu respon untuk sebuah tepi).
Artinya detektor tidak memberikan tepi yang bukan tepi sebenarnya.
Berdasarkan pada kriteria ini Canny berhasil melakukan optimalisasi dari
ke 3 kriteria tersebut dan menghasilkan persamaan:

Namun persamaan ini cukup sulit untuk diimplementasikan. Sehingga


pada implementasinya, Canny tetap menggunakan filter Gaussian untuk
mereduksi noise. Fungsi Gaussian dalam satu dimensi dapat direpresentasikan
sebagai berikut:

Proses selanjutnya adalah penghitungan besar gradient dan sudut citra.


Gradien dari suatu citra f (x,y) pada lokasi (x,y) adalah vektor

Biasanya nilai 1==yx, sehingga persamaan di atas menjadi :

Hasil pendeteksian tepi adalah citra tepi g(x,y) yang nilai setiap pixelnya adalah
g(x,y) = G[f (x,y)], sehingga diperoleh:

Untuk menyatakan apakah sebuah citra g(x,y) merupakan citra tepi atau
bukan maka dilakukan dengan pengambangan (thresholding) yang disimbolkan
dengan T. Thresholding digunakan untuk mengubah citra dengan format skala
keabuan, yang mempunyai kemungkinan nilai lebih dari 2 ke citra biner yang
memiliki 2 buah nilai (yaitu 0 dan 1), seperti berikut:

Pengambangan (thresholding) terbagi atas dua jenis, yaitu:


a. Pengambangan Tunggal
Pengambangan tunggal merupakan proses pengambangan yang hanya
memiliki sebuah nilai batas ambang. Fungsi yang digunakan adalah fungsi
transformasi skala keabuan (gray scale transformation/GST). Fungsi GST
adalah fungsi yang memetakan tingkat keabuan input (Ki) ke citra keabuan
citra output (Ko).
Fungsi GST untuk pengambangan tunggal yaitu:

atau:

Gambar 2.1 menunjukkan sebuah citra yang telah mengalami pengambangan


tunggal.

Gambar 2.1 Citra Dengan Pengambang Tunggal

b. Pengambangan Ganda
Memiliki ambang bawah dan ambang atas. Dilakukan untuk menampilkan
titik-titik yang mempunyai rentang nilai skala keabuan tertentu.
Dengan fungsi GST:

Citra yang telah mengalami pengambangan ganda.

Gambar 2.2 Citra Dengan Pengambang Ganda

Metode Canny menggunakan pengambangan (thresholding) ganda yang


mana terdiri atas threshold batas bawah (tlow) dan threshold batas atas (thigh).
Dapat disimpulkan bahwa metode deteksi tepi Canny dilakukan dengan langkahlangkah sebagai berikut:
a.
b.
c.
d.

Menghaluskan citra masukan dengan filter Gaussian


Mengkalkulasi besar gradien dan sudut citra
Mengaplikasikan suppresi nonmaksima pada besaran gradien citra
Menggunakan nilai ambang ganda dan analisa keterhubungan untuk
mendeteksi dan menghubungkan antar tepi.

Berikut adalah blok diagram dari algoritma deteksi tepi Canny :

Metode Canny ini terdiri dari beberapa langkah khusus, Metode Canny
lebih utama dalam mendeteksi tepian yang kurang jelas, yang tidak dapat
diperoleh dengan menggunakan metode lain.

2.2.

Brightness
Brightness adalah proses untuk kecerahan citra, jika intensitas pixel

dikurangi dengan nilai tertentu maka citra akan menjadi lebih gelap, dan
sebaliknya jika intensitas pixelnya ditambah dengan nilai tertentu maka akan lebih
terang.
Adapun rumus brightness adalah sebagai berikut:

dimana
f0(x,y)
fi(x,y)
k
Rumus diatas

: Nilai pixel pada titik x,y setelah brightness


: Nilai Pixel pada titik x,y citra asli
: Nilai Penguatan kecerahan
digunakan untuk citra grayscale, namaun jika digunakan untuk

RGB maka rumusnya menjadi :

Dengan aturan jika intensitas pixel berada antara 0-255 maka, jika pixel
>255 diset menjadi 255 dan jika pixel<0 diset menjadi 0.
Contoh hasil penambahan kecerahan:

Gambar 2.3 Contoh Hasil Penambahan Kecerahan

BAB III
3.PEMBAHASAN
3.1.

Pembahasan Program Aplikasi

1. Pertama buat rancangan GUI terlebih dahulu dengan cara klik File pada Menu
bar-New-GUI-Blank GUI-Ok.

Gambar 3.4 Tampilan New GUI

Gambar 3.5 Tampilan Guide Quick Start

2. Selanjutnya buatlah sebuah rancangan GUI, jika sudah selesai simpan file
dengan ekstensi (.fig). berikut ini merupakan tampilan dari rancangan GUI
yang telah kami buat

Gambar 3.6 Tampilan GUI

3. Langkah selanjutnya adalah membuat listing program pada m-file editor.


Berikut adalah listing program pada m-file editor yang telah kami buat.
1. function varargout = Tugas2(varargin)
2. % TUGAS2 M-file for Tugas2.fig
3. %
TUGAS2, by itself, creates a new TUGAS2 or raises the
existing
singleton*.

4. %
5. %
6. %

H = TUGAS2 returns the handle to a new TUGAS2 or the


handle to
7. %
the existing singleton*.
8. %
9. %
TUGAS2('CALLBACK',hObject,eventData,handles,...)
calls the local
10.
%
function named CALLBACK in TUGAS2.M with the
given input arguments.
11.
%
12.
%
TUGAS2('Property','Value',...) creates a new
TUGAS2 or raises the
13.
%
existing singleton*. Starting from the left,
property value pairs are
14.
%
applied to the GUI before Tugas2_OpeningFcn
gets called. An
15.
%
unrecognized property name or invalid value
makes property application
16.
%
stop. All inputs are passed to
Tugas2_OpeningFcn via varargin.
17.
%

18.

%
*See GUI Options on GUIDE's Tools menu.
"GUI allows only one
19.
%
instance to run (singleton)".
20.
%
21.
% See also: GUIDE, GUIDATA, GUIHANDLES

22.
23.

Choose

% Edit the above text to modify the response to help

Tugas2

24.
25.
26.
27.
28.
29.
30.

% Last Modified by GUIDE v2.5 16-Jun-2014 02:32:46


% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton,

...

31.

'gui_OpeningFcn',

@Tugas2_OpeningFcn, ...

32.

'gui_OutputFcn',

@Tugas2_OutputFcn, ...

33.
34.
35.
36.
37.
38.
39.
40.

'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{:});
41.
else
42.
gui_mainfcn(gui_State, varargin{:});
43.
end
44.
% End initialization code - DO NOT EDIT

45.
46.
47.
48.

% --- Executes just before Tugas2 is made visible.


function Tugas2_OpeningFcn(hObject, eventdata,
handles, varargin)
49.
% This function has no output args, see OutputFcn.
50.
% hObject
handle to figure
51.
% eventdata reserved - to be defined in a future
version of MATLAB
52.
% handles
structure with handles and user data (see
GUIDATA)
53.
% varargin
command line arguments to Tugas2 (see
VARARGIN)

54.
55.
56.
57.
58.

% Choose default command line output for Tugas2


handles.output = hObject;
set(handles.axes4,'Visible','off');
set(handles.axes1,'Visible','off');

59.
60.
61.
62.

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes Tugas2 wait for user response (see


UIRESUME)
63.
% uiwait(handles.figure1);

64.
65.
66.

% --- Outputs from this function are returned to the


command line.
67.
function varargout = Tugas2_OutputFcn(hObject,
eventdata, handles)
68.
% varargout cell array for returning output args (see
VARARGOUT);
69.
% hObject
handle to figure
70.
% eventdata reserved - to be defined in a future
version of MATLAB
71.
% handles
structure with handles and user data (see
GUIDATA)

72.
73.

% Get default command line output from handles


structure
74.
varargout{1} = handles.output;

75.
76.
77.
78.

% --- Executes on button press in pushbutton1.


function pushbutton1_Callback(hObject, eventdata,
handles)
79.
global x
80.
[filename, pathname] = uigetfile('*.jpg','Load
Image');
81.
if filename==0
82.
msgbox('Please choose image','Error','Error')
83.
return
84.
end

85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.

x=imread(filename);
axes(handles.axes4);
imshow(x);
set(handles.edit1,'string',filename);
set(handles.edit2,'string',pathname);

function edit1_Callback(hObject, eventdata, handles)


% hObject
handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future
version of MATLAB
97.
% handles
structure with handles and user data (see
GUIDATA)

98.

99.

% Hints: get(hObject,'String') returns contents of


edit1 as text
100.
%
str2double(get(hObject,'String')) returns
contents of edit1 as a double

101.
102.
103.

% --- Executes during object creation, after setting


all properties.
104.
function edit1_CreateFcn(hObject, eventdata, handles)
105.
% hObject
handle to edit1 (see GCBO)
106.
% eventdata reserved - to be defined in a future
version of MATLAB
107.
% handles
empty - handles not created until after
all CreateFcns called

108.
109.

% Hint: edit controls usually have a white background


on Windows.
110.
%
See ISPC and COMPUTER.
111.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
112.
set(hObject,'BackgroundColor','white');
113.
end

114.
115.
116.
117.
118.
119.

function edit2_Callback(hObject, eventdata, handles)


% hObject
handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future
version of MATLAB
120.
% handles
structure with handles and user data (see
GUIDATA)

121.
122.

% Hints: get(hObject,'String') returns contents of


edit2 as text
123.
%
str2double(get(hObject,'String')) returns
contents of edit2 as a double

124.
125.
126.

% --- Executes during object creation, after setting


all properties.
127.
function edit2_CreateFcn(hObject, eventdata, handles)
128.
% hObject
handle to edit2 (see GCBO)
129.
% eventdata reserved - to be defined in a future
version of MATLAB
130.
% handles
empty - handles not created until after
all CreateFcns called

131.
132.

% Hint: edit controls usually have a white background


on Windows.
133.
%
See ISPC and COMPUTER.
134.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))

135.
136.
137.
138.
139.
140.

set(hObject,'BackgroundColor','white');
end

% --- Executes on selection change in popupmenu1.


function popupmenu1_Callback(hObject, eventdata,
handles)
141.
% hObject
handle to popupmenu1 (see GCBO)
142.
% eventdata reserved - to be defined in a future
version of MATLAB
143.
% handles
structure with handles and user data (see
GUIDATA)

144.
145.

% Hints: contents = get(hObject,'String') returns


popupmenu1 contents as cell array
146.
%
contents{get(hObject,'Value')} returns
selected item from popupmenu1
147.
global x
148.
contents = get(hObject,'Value')
149.
switch contents
150.
case 1
151.
axes(handles.axes1);
152.
y1=imshow(x);

153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.

case 2
y2=imresize(x,0.5)
axes(handles.axes1);
imshow(y2);
case 3
y3=imresize(x,0.2)
axes(handles.axes1);
imshow(y3);

case 4
y4=imresize(x,0.1)
axes(handles.axes1);
imshow(y4);
case 5
y5=imresize(x,0.05)
axes(handles.axes1);
imshow(y5);
case 6
y6=imresize(x,0.01)
axes(handles.axes1);
imshow(y6);

180.
181.
182.
183.
184.

otherwise
end

% --- Executes during object creation, after setting


all properties.
185.
function popupmenu1_CreateFcn(hObject, eventdata,
handles)
186.
% hObject
handle to popupmenu1 (see GCBO)
187.
% eventdata reserved - to be defined in a future
version of MATLAB
188.
% handles
empty - handles not created until after
all CreateFcns called

189.
190.

% Hint: popupmenu controls usually have a white


background on Windows.
191.
%
See ISPC and COMPUTER.
192.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
193.
set(hObject,'BackgroundColor','white');
194.
end

195.
196.
197.
198.

% --- Executes on button press in pushbutton2.


function pushbutton2_Callback(hObject, eventdata,
handles)
199.
global x
200.
contents = get(hObject,'Value')
201.
z=rgb2gray(x);
202.
axes(handles.axes1);
203.
imshow(z);
204.
figure,imhist(z);

205.
206.
207.
208.

% --- Executes on button press in pushbutton3.


function pushbutton3_Callback(hObject, eventdata,
handles)
209.
global x
210.
contents = get(hObject,'Value')
211.
z=rgb2gray(x);
212.
k=edge(z,'canny');
213.
axes(handles.axes1);
214.
imshow(k);

215.
216.
217.
218.
219.
220.

% --- Executes on slider movement.


function slider1_Callback(hObject, eventdata, handles)
% hObject
handle to slider1 (see GCBO)

221.

% eventdata
version of MATLAB
222.
% handles
GUIDATA)

223.
224.

reserved - to be defined in a future


structure with handles and user data (see

% Hints: get(hObject,'Value') returns position of

slider

225.

%
get(hObject,'Min') and get(hObject,'Max') to
determine range of slider
226.
global x
227.
contents = get(hObject,'Value')
228.
set(handles.slider1,'Max',250);
229.
set(handles.slider1,'Min',-250);
230.
nil_brigh = get(handles.slider1,'Value');
231.
val=x+nil_brigh;
232.
imshow(val,'Parent',handles.axes1);

233.
234.
235.
236.

% --- Executes during object creation, after setting


all properties.
237.
function slider1_CreateFcn(hObject, eventdata,
handles)
238.
% hObject
handle to slider1 (see GCBO)
239.
% eventdata reserved - to be defined in a future
version of MATLAB
240.
% handles
empty - handles not created until after
all CreateFcns called

241.
242.

% Hint: slider controls usually have a light gray


background.
243.
if isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
244.
set(hObject,'BackgroundColor',[.9 .9 .9]);
245.
end

246.
247.
248.
249.
250.

% --- Executes on button press in pushbutton7.


function pushbutton7_Callback(hObject, eventdata,
handles)
251.
global x
252.
contents = get(hObject,'Value')
253.
m=x(:,:,1);
254.
axes(handles.axes1)
255.
imshow(m);
256.
figure,imhist(m);

257.
258.
259.

% --- Executes on button press in pushbutton8.

260.

function pushbutton8_Callback(hObject, eventdata,


handles)
261.
global x
262.
contents = get(hObject,'Value')
263.
n=x(:,:,2);
264.
axes(handles.axes1)
265.
imshow(n);
266.
figure,imhist(n);

267.
268.
269.

% --- Executes on button press in pushbutton10.


function pushbutton10_Callback(hObject, eventdata,
handles)
270.
global x
271.
contents = get(hObject,'Value')
272.
o=x(:,:,3);
273.
axes(handles.axes1)
274.
imshow(o);
275.
figure,imhist(o);

276.
277.
278.
279.

% --- Executes on button press in pushbutton13.


function pushbutton13_Callback(hObject, eventdata,
handles)
280.
global x
281.
contents = get(hObject,'Value')
282.
z=rgb2gray(x);
283.
figure,imhist(z);
284.
v=histeq(z);
285.
figure,imhist(v),axis tight;

286.
287.
288.
289.
290.
291.
292.
293.

% --- Executes on slider movement.


function slider3_Callback(hObject, eventdata, handles)
% hObject
handle to slider3 (see GCBO)
% eventdata reserved - to be defined in a future
version of MATLAB
294.
% handles
structure with handles and user data (see
GUIDATA)

295.
296.

% Hints: get(hObject,'Value') returns position of

slider

297.

%
get(hObject,'Min') and get(hObject,'Max') to
determine range of slider
298.
global x
299.
contents = get(hObject,'Value')
300.
m=x(:,:,1);
301.
n=x(:,:,2);
302.
o=x(:,:,3);

303.
304.
305.
306.
307.
308.
309.
310.
311.
312.

set(handles.slider3,'Max',50);
set(handles.slider3,'Min',-50);
nil_con = get(handles.slider3,'Value');
s=immultiply(histeq(m),nil_con);
t=immultiply(histeq(n),nil_con);
u=immultiply(histeq(o),nil_con);
w=cat(3,s,t,u);
imshow(w ,'Parent', handles.axes1);

% --- Executes during object creation, after setting


all properties.
313.
function slider3_CreateFcn(hObject, eventdata,
handles)
314.
% hObject
handle to slider3 (see GCBO)
315.
% eventdata reserved - to be defined in a future
version of MATLAB
316.
% handles
empty - handles not created until after
all CreateFcns called

317.
318.

% Hint: slider controls usually have a light gray


background.
319.
if isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
320.
set(hObject,'BackgroundColor',[.9 .9 .9]);
321.
end

322.
323.
324.
4. Setelah semua listing program ditulis, ketik RUN untuk mejlankan program,
dan berikut adalah hasilnya.

Gambar 3.7 Tampilan Program

5. Mulai dengan me-load image gambar dari computer, nama file serta lokasi file
akan tercantum pada kolom edit text yang ada dibawah.

Gambar 3.8 Tampilan Program Setelah Load Image

6. Mulai dengan fitur yang pertama, yaitu deteksi tepi, deteksi tepi dapat
dilakukan dengan cara meng-klik tombol edge detector yang ada pada
aplikasi tersebut. Berikut adalah hasilnya.

Gambar 3.9 Tampilan Edge Detector

7. Dilanjutkan dengan fitur yang kedua, yaitu pengatur brightness. Kita bisa
mengatur brightness pada gambar dengan cara menggeser slider brightness
yang ada di aplikasi tersebut. Berikut adalah contoh penerapannya.

Gambar 3.10 Tampilan Pengaturan Brightness

8. Fitur selanjutnya adalah pengatur contrast. Sama seperti brightness,


pengaturan contrast pada gambar dapat dilakukan dengan cara menggeser
slider contrast yang ada pada aplikasi tersebut.

Gambar 3.11 Tampilan Pengturan Contrast

9. Selanjutnya adalah fitur pererata histogram. Fitur ini dapat dijalankan dengan
cara menekan tombol ekualisasi histogram pada aplikasi tersebut. Berikut
adalah contohnya.

Gambar 3.12 Tampilan Pererata Histogram

10. Selain itu ada pula fitur-fitur tambahan yang terdapat pada aplikasi tersebut.
Seperti pengubah ukuran gambar, Red effect, Green Effect, serta Blue Effect.
Berikut adalah contohnya :

Gambar 3.13 Tampilan Image Size

Gambar 3.14 Tampilan Red Effect

Gambar 3.15 Tampilan Green Effect

Gambar 3.16 Tampilan Blue Effect

Anda mungkin juga menyukai