laporan citra belom kelar

Upload: imlie-toyou

Post on 14-Jul-2015

489 views

Category:

Documents


0 download

TRANSCRIPT

BAB I PENDAHULUAN

A. Latar Belakang Peningkatan perbaikan kualitas Citra merupakan salah satu cara yang digunakan guna ntuk perbaikan suat Citra atau gambar. Meskipun sebuah citra kaya informasi, namun seringkali citra yang dimiliki mengalami penurunan mutu (degradasi), misalnya mengandung cacat atau derau (noise), warnanya terlalu kontras, kurang tajam, kabur (blurring), dan sebagainya. Tentu saja citra semacam ini menjadi lebih sulit diinterpretasi karena informasi yang disampaikan oleh citra tersebut menjadi berkurang. Agar citra yang mengalami gangguan mudah diinterpretasi (baik oleh manusia maupun mesin), maka citra tersebut perlu dimanipulasi menjadi citra lain yang kualitasnya lebih baik.Sehingga dalam pembahasan ini kami akan membahas bagaimana "Perbaikan kualitas Citra dalam Domain Spasial " . Operasi inidigunakan untuk memperaiki sebuah citra menjadi lebih baik dari sebelumnya. Secara umum, objek dalam citra dinyatakan sebagai titik yang nilai keabuannyaberbeda.Banyak bentuk kernel/mask yang dapat digunakan sebagai operator dalam perbaikan kualirs Citra, antara lain dengan menggunakan filter filter yang sudah ada seperti LPF (Low Pass Filter), HPF (High Pass Filter), MPF (Median Pass Filter),Gaussian Filter dan bisa juga dapat kita gunakan filter buatan sendiri dan sebagainya. Dalam program Matlab (Matrix Laboratory), beberapa operator sudah ada dalam toolbox-nya, sehingga mudah dalam implementasinya yang penting kita mengetahui sintaksnya. Pengolahan citra digital dapat dilakukan berbagai cara diantaranya adalah representasi dan permodelan citra, peningkatan kualitas citra, restorasi citra, analisis citra, rekonstruksi citra dan kompresi citra. Pada makalah ini, pengolahan citra digital difokuskan pada teknik peningkatan mutu suatu citra dalam domain spasial. Peningkatan kualitas citra bertujuan menghasilkan citra dengan kualitas yang lebih baik dibandingkan dengan citra semula. Analisis citra bertujuan mengidentifikasi parameter yang diasosiasikan dengan ciri dari objek dalam citra, untuk selanjutnya parameter tersebut digunakan dalam menginterpretasi citra.. Penggunaan Filter dalam perbaikan suatu citra sangatlah penting guna memperbaiki kualitas suatu citra,namun apabila dalam penerapannya kita salah menempatkannya maka kualitas citra tersebut tidak akan menghasilkan sebuah citra yang baik sesuai dengan keinginan kita atau dapat dikatakan gagal. Karena itu perbaikan kualitas suatu citra itu sangatlah penting dalam kaitannya dalam kehidupan ini. B. Rumusan Masalah

1

Adapun rumusan massalah yang dibahas dalam tugas ini adalah : Apa yang dimaksud dengan citra digital dan perbaikan kualitas citra dalam domain Spasial. Bagaimana Implementasi perbaikan kualitas dalam domain Spasial dengan Menggunakan MATLAB

A. Tujuan Memberikan pemahaman kepada mahasiswamengenai berbagai teknik perbaikan citra padadomain spasial, antara lain: 1. Mengetahui apa itu citra digital dan perbaikan kualitas citra dalam domain spasial 2. Mengetahui Implementasi perbaikan kualitas dalam domain Spasial dengan Menggunakan MATLAB

BAB II DASAR TEORI

2

Penjelasan Umum Tentang Citra Istilah citra yang pada umumnya digunakan dalam bidang pengolahan citra diartikan sebagai suatu fungsi kontinu dari intensitas cahaya f(x,y) dalam bidang dua dimensi, dengan (x,y) menyatakan suatu koordinat dan nilai f pada setiap titik (x,y) menyatakan intensitas atau tingkat kecerahan (brightness). Suatu citra digital adalah suatu citra kontinu yang diubah ke dalam bentuk diskrit, baik koordinat maupun intensitas cahayanya. Kita dapat menganggap suatu citra digital sebagai suatu matriks, dimana indeks baris dan kolomnya menyatakan koordinat sebuah titik pada citra tersebut dan nilai masing-masing elemennya menyatakan intensitas cahaya pada titik tersebut. Suatu titik pada sebuah citra digital sering disebut sebagai image element (elemen citra), picture element (elemen gambar), pixel ataupun pel. Citra digital yang berupa matrik dengan ukuran M x N digambarkan sebagai berikut:

Gambar 2.1 Citra f (x,y) Berukuran M x N Tetangga-Tetangga Piksel

3

Sebuah piksel p pada koordinat (x,y) memiliki empat tetangga horisontal dan vertikal dengan koordinat-koordinatnya adalah sebagai berikut : (x+1,y), (x-1,y), (x,y+1), (x,y-1). Himpunan piksel tersebut dinamakan 4 tetangga p atau N4 (p) terdapat pada gambar 2.2(a). Piksel dengan ruang yang lebih gelap adalah N4 (2) yaitu {0,1,0,0}.

Disamping itu juga terdapat empat tetangga diagonal p yang disebut dengan Np (p) dengan koordinat-koordinatnya adalah : (x+1,y+1), (x+1,y-1), (x-1,y+1), (x-1,y-1). Contoh Np (p) terdapat pada gambar 2.2(b). Piksel dengan ruang yang lebih gelap adalah Np (2) yaitu {0,1,1,0}. Sedangkan gabungan N4 (p) dan Np(p) dinamakan dengan N8 (p), koordinat-koordinatnya : (x+1,y), (x-1,y), (x,y-1), (x+1,y-1), (x-1,y+1), (x-1,y-1). Contoh N8 (p) terdapat pada gambar 2.2(c). Piksel dengan ruang yang lebih gelap adalah N8 (2) yaitu {0,1,1,0,1,0,0,0}. Beberapa titik Np (p) atau N8 (p) bisa saja terletak di luar citra jika (x,y) terletak dipinggir citra.

4

Jenis-Jenis Pengolahan citra Mengingat banyak dan luasnya bidang aplikasi dari pengolahan citra, tidaklah mungkin akan kita bahas setiap operasi secara terperinci. Untuk memberikan gambaran umum, maka pembahasan disini dilakukan cara membagi operasi pengolahan citra dalam beberapa kelompok yaitu : 1. 2. 3. 4. 5. Perbaikan Citra (image restoration) Peningkatan kualitas citra (image enhancement) Registrasi citra (image registration) Pemampatan citra (image compression) Pemilahan Citra (image segmentation)

Segmentation Enhancement Registration Restoration Compression

5

Gambar 2.3 Kelompok Pengolahan Citra Perbaikan citra adalah proses untuk mendapatkan kembali (rekontruksi) citra asli dari suatu citra yang telah mengalami proses degradasi. Peningkatan kualitas citra adalah pemrosesan sebuah citra yang ditujukan untuk menghasilkan kondisi tertentu pada citra, metode yang dapat dilakukan berbeda-beda tergantung pada citra yang akan diproses serta kondisi yang diharapkan.Registrasi citra dilakukan berdasarkan beberapa atau banyak citra dari objek yang diambil secara terpisah. Pada proses ini tiap-tiap citra digabungakan menjadi suatu objek agar dapat dianalisa lebih lanjut. Pemampatan citra merupakan proses untuk meminimasi jumlah bit yang diperlukan untuk merepresentasikan suatu citra digital. Pada umumnya citra mempunyai jumlah data yang besar dalam bentuk bitbit pxel, sehingga memerlukan kapasitas media penyimpanan yang besar. Pemilahan citra merupakan proses pemilahan citra menjadi bagian-bagian pokok dari citra tersebut. Proses ini banyak diterapkan pada proses pengenalan citra (image recognition) Peningkatan Kualitas Citra Peningkatan kualitas citra merupakan suatu proses yang dilakukan untuk mendapatkan kondisi tertentu pada citra. Proses tersebut dilakukan dengan menggunakan berbagai macam metode tergantung pada kondisi yang diharapkan pada citra tersebut, misalnya mempertajam bagian tertentu pada citra, menghilangkan gangguan, manipulasi kontras dan skala keabuan, memperbesar dan interpolasi. Secara umum metode-metode yang digunakan dalam peningkatan kualitas citra dapat digolongkan dalam dua kelompok yaitu metode domain

6

frekuensi dan metode domain spasial Pada metode domain frekuensi, teknik pemrosesannya berdasarkan pada modifikasi transformasi Fourier terhadap nilai piksel, teknik yang digunakan pada metode ini seperti highpass filtering yang bertujuan untuk mempertajam citra. Mengenai cara kerja dari metode domain frekuensi ini tidak dibahas lebih lanjut pada tugas besar ini karena penekanannya dititikberatkan pada metode domain spasial.

Metode Yang Terdapat padaDomain Spasial Metode domain spasial adalah suatu proses yang dioperasikan langsung terhadap piksel. Fungsi matematis dari metode domain spasial adalah sebagai berikut : g (x,y) = T [f (x,y)] f (x,y) adalah fungsi citra masukan, g (x,y) adalah citra hasil atau keluaran, sedangkan T adalah operator atas f, yang didefinisikan terhadap kumpulan tetangga-tetangga (x,y). Contoh dari metode ini adalah operasi filtering citra yaitu penghalusan citra dengan cara menghilangkan noise pada citra tersebut. Salah satu filtering citra yang termasuk dalam metode domain spasial adalah Median filter.

1. Low Pass Filter Low pass filter adalahprosesfilter yangmengambilcitradengangradiasiintensitasyang halusdanperbedaanIntensitasyangtinggiakandikurangiataudibuang. Ciri-ciri dari fungsi low pass filter adalah sebagai berikut :

Sebagai contoh dibuat program Low Pass Filter untuk n=3dan n=5 dengan fungsi filter rata-rata sebagai berikut :

7

Contoh Penerapan Low Pass Filter(a) Gambar Asli, (b)-(f) hasil dari spatial lowpass filtering dengan ukuran mask3,5,7,15,25

2.High Pass Filter High pass filter Adalah proses filter yg mengambil citra dengan gradiasi intensitas yg tinggi dan perbedaanintensitas yg rendah akan dikurangi atau dibuang. Ciri-ciri dari fungsi High pass filter adalah sebagai berikut :

Sebagai contoh dibuat program High Pass Filter untuk n=3 dengan fungsi filter rata-rata sebagai berikut :

3. Median Filter Metode Median filter adalah salah satu teknik filtering citra non linear yang berfungsi untuk memperhalus suatu citra dan menghilangkan noise atau gangguan yang berupa bintik putih. Cara kerja metode ini diakukan dengan

8

mengganti nilai piksel yang diacu dalam suatu bidang operasi dengan suatu formula yang memanfaatkan nilai piksel tetangganya.A B D A A A B D A D A B F B D A A C B C A A D B C A B D A A A B D A D A B B B D A A C B C A A D B C

Gambar 2.4 Proses Kerja Median filter 4. Metode Multilevel Median Filter Metode Multilevel median filter digunakan untuk melakukan proses filtering dan untuk menghaluskan suatu citra digital. Cara kerja filter ini sangat sederhana dimana proses pencarian nilai tengah untuk mengganti nilai piksel dilakukan secara bertahap dengan mencari nilai tengah secara vertikal, horisontal, diagonal dan setelah didapatkan nilai tengahnya selanjutnya diurutkan kembali nilai yang didapatkan dengan nilai piksel yang akan diganti dan diambil nilai tengahnya, nilai tengah yang didapat tersebut akan menjadi nilai yang menggantikan nilai piksel yang akan diganti

9

Gambar 2.5 Contoh Himpunan Dari Bidang W

Misalkan x (,) adalah serangkaian citra digital dan W adalah mask atau bidang operasi dengan ukuran (2N+1)x(2N+1) dengan pusat pada piksel (i,j). Terdapat 4 himpunan dari bidang W yang didefinisikan sebagai berikut : W1(i,j) = {x (i+k,j+k}; -N k N} W2 (i,j) = {x (i+k,j-k}; -N k N} W3 (i,j) = {x (i+k,j}; -N k N} W4 (i,j) = {x (i,j+k}; -N k N} Misalkan Zs (i,j) (s=1,2,3,4) adalah nilai median pada elemenelemen dari keempat himpunan, kemudian dicari nilai minimum (Ymin (i,j)) dan nilai maksimum (Ymax (i,j)) dari Zs (i,j). Ymin (i,j) = min[Z1 (i,j), Z2 (i,j), Z3 (i,j), Z4 (i,j)] Ymax (i,j) = max[Z1 (i,j), Z2 (i,j), Z3 (i,j), Z4 (i,j)]

10

Nilai piksel yang didapat dari metode Multievel median filter ini (Y (i,j)) adalah nilai median dari Ymin (i,j), Ymax (i,j), dan nilai piksel yang lama (x (i,j)). Y (i,j) = Med [Ymin (i,j), Ymax (i,j), (x (i,j))] Kriteria Penilaian Kualitas Citra Analisa terhadap citra yang telah diproses dapat dilakukan baik dengan cara objektif. Penilaian secara objektif yaitu dengan menggunakan suatu ukuran tertentu.Kriteria objektif didasarkan pada error yang terdapat pada citra yang telah diolah. Untuk citra asal f (x,y) dan citra hasil proses g (x,y) dengan ukuran piksel M x N, maka beberapa parameter yang dijasikan sebagai kriteria penilaian objektif adalah sebagai berikut: 1. Mean Square Error (MSE) MSE = 1 MNM 1 x =0

(f (x,y) g (x,y))2

y =0

N 1

2. Root Mean Square Error (RMSE) RMSE =

MSE1. Signal to Noise Ratio (PSNR) PSNR = 20 Log 10 255 MSE

BAB III PEMBAHASAN Citra Digital Citra (image) bisa didefinisikan sebagai fungsi dua dimensi f(x,y) di mana x dan y adalah koordinat spasial dan amplitudo f pada setiap pasang (x,y) disebut intensitas (gray level) citra pada titik tersebut. Jika x dan y berhingga (finite) dan

11

diskrit (tdk kontinyu) maka disebut citra digital. Citra digital terdiri dari sejumlah elemen berhingga yang masing-masing mempunyai lokasi dan nilai. Elemen-elemen x dan y disebut elemen citra / pels / pixel. Citra digital adalah citra dengan f(x,y) yang nilainya didigitalisasi-kan (dibuat diskrit) baik dalam koordinat spasialnya maupun dalam gray level nya. Digitalisasi dari koordinat spasial citra disebut dengan image sampling, sedangkan digitalisasi dari gray-level citra disebut dengan gray-level quantization.Citra digital dapat dibayangkan sebagai suatu matriks dimana baris dan kolomnya menunjukkan gray level di titik tersebut.Elemen-elemen dari citra digital tersebut biasanya disebut dengan pixel, yang merupakan singkatan dari picture elements. Tujuan pengolahan citra digital adalah untuk mendapatkan citra baru yang lebih sesuai untuk digunakan dalam aplikasi tertentu. Dasar Warna RGB adalah suatu model warna yang terdiri dari merah, hijau, dan biru, digabungkan dalam membentuk suatu susunan warna yang luas.Setiap warna dasar, misalnya merah, dapat diberi rentang-nilai. Untuk monitor komputer, nilai rentangnya paling kecil = 0 dan paling besar = 255. Pilihan skala 256 ini didasarkan pada cara mengungkap 8 digit bilangan biner yang digunakan oleh mesin komputer. Dengan cara ini, akan diperoleh warna campuran sebanyak 256 x 256 x 256 = 1677726 jenis warna. Sebuah jenis warna, dapat dibayangkan sebagai sebuah vektor di ruang 3 dimensi yang biasanya dipakai dalam matematika, koordinatnya dinyatakan dalam bentuk tiga bilangan, yaitu komponen-x, komponen-y dan komponen-z. Misalkan sebuah vektor dituliskan sebagai r = (x,y,z). Untuk warna, komponen-komponen tersebut digantikan oleh komponen R(ed), G(reen), B(lue). Jadi, sebuah jenis warna dapat dituliskan sebagai berikut: warna = RGB(30, 75, 255). Putih = RGB (255,255,255), sedangkan untuk hitam= RGB(0,0,0).

12

Citra Gray Graysacale adalah warna-warna piksel yang berada dalam rentang gradasi warna hitam dan putih.sebagai contoh, jika kita mempunyai gambar berukuran 200x300 pixel, maka jumlah byter yang terpakai di memory adalah 200x300x2 = 120000bit. Citra Biner Citra biner diperoleh melalui proses pemisahan piksel-piksel berdasarkan derajat keabuan yang dimilikinya. Piksel yang memiliki derajat keabuan lebih kecil dari nilai batas yang ditentukan akan diberikan nilai 0, sementara piksel yang memiliki derajat keabuan yang lebih besar dari batas akan diubah menjadi bernilai 1. Jadi untuk gambar yang biasanya berwarna hitam puth, nilai nya 0 dan 1. sebagai contoh, jika kita mempunyai gambar berukuran 200x300 pixel, maka jumlah byter yang terpakai di memory adalah 200x300x1 = 60000bit. Perbaikkan Kualitas Citra (image enhancement) Perbaikan kualitas citra merupakan suatu proses yang dilakukan untuk mendapatkan kondisi tertentu pada citra. Proses tersebut dilakukan dengan menggunakan berbagai macam metode tergantung pada kondisi yang diharapkan pada citra tersebut, misalnya mempertajam bagian tertentu pada citra, menghilangkan gangguan, manipulasi kontras dan skala keabuan, memperbesar dan interpolasi. Secara umum metode-metode yang digunakan dalam peningkatan

13

kualitas citra dapat digolongkan dalam dua kelompok yaitu metode domain frekuensi dan metode domain spasial Image enhancement bertujuan untuk memperbaiki citra dengan cara memanipulasi parameter -parameter citra. Dengan operasi ini, ciri-ciri khusus yang terdapat didalam citra lebih ditonjolkan. Contoh-contoh operasi perbaikan kualitas citra: a. Perbaikkan kontras gelap/terang b. Perbaikkan tepian objek (edge enhancement) c. Penajaman (sharpening) d. Pemberian warna semu (pseudocoloring) e. Penapisan derau (noise filtering) Pemugaran Citra (image restoration) Operasi ini bertujuan menghilangkan cacat pada citra. Tujuan pemugaran citra hampir sama dengan operasi perbaikkan citra. Bedanya, pada pemugaran citra penyebab degradasi gambar diketahui. Contoh-contoh operasi pemugaran citra : a. Penghilangan kesamaran (deblurring) b. Penghilangan derau (noise) Implementasi perbaikan kualitas dengan Menggunakan MatLab Pada MATLAB, perbaikan kualitas citra terdapat pada toolbox image processing. Berikut adalah cara membuat GUI (GeneralUser Interface) perbaikan citra menggunakan MatLab : 1. Pertama buka program MATLAB 2. Kemudian setelah masuk ke program MATLAB, pilih File New GUI atau bisa ketik guide di Command Windows Kemudian Enter. 3. Setelah tampil GUIDE quick start, seperti gambar dibawah ini, pilih Blank GUI.

14

4. Selanjutnya akan muncul tampilan jendela GUIDE layout editor untukmempermudah kita dalam membuat antar muka grafis.

15

Desain tampilan sesuai dengan aplikasi yang akan kita buat. Gunakan komponenkomponen yang ada pada bagian kiri layar dengan cara mengklik dan menarik komponen yang akan digunakan ke dalam area rancangan. Setelah melakukan desain rancangan seperti yang terlihat pada gambar dibawah ini, simpan program dengan nama UAS_Citra.fig, maka secara otomatis akan terbentuk m-file matlab dengan nama yang sama, yaitu UAS_Citra.m yang merupakan editor untuk memasukkan script program ke dalam rancangan yang telah kita buat sebelumnya.

5. Run Aplikasi ini dengan mengklik icon

atau menekan F5

16

6. Klik button Pilih Gambar untuk pilih gambar yang akan kita gunakan

7. Setelah pilih gambar, gambar tersebut otomatis akan diresize menjadi 512 x 512. Selanjutnya kita akan diberi pilihan untuk mengubah gambar tersebut menjadi Grayscale atau tetap RGB.

8. Gambar yang di masukkan diberi noise terlebih dahulu dan kemudian akan melakukan pemfilteran. Untuk mengetahui nilai PSNR serta MSE dari gambar hasil filter tersebut, cukup memilih button maka akan muncul nilai PSNR dan MSEnya.

17

9. Kalau kita pilih Grayscale maka akan tampil seperti di bawah ini

10. Gambar tersebut akan diberi noise dan kemudian akan melakukan pemfilteran, kemudian klik button PSNR & MSE untuk menghitung PSNR dan MSEnya.

18

BAB IV PENUTUP Kesimpulan Citra digital adalah fungsi dua dimensi f(x,y) di mana x dan y adalah koordinat spasial dan amplitudo f pada setiap pasang (x,y) disebut intensitas (gray level) citra pada titik tersebut, dimana x dan y berhingga (finite) dan diskrit (tdk kontinyu). Perbaikan kualitas citra merupakan suatu proses yang dilakukan untuk mendapatkan kondisi tertentu pada citra. Proses tersebut dilakukan dengan menggunakan berbagai macam metode tergantung pada kondisi yang diharapkan pada citra tersebut, yang bertujuan untuk mendapatkan suatu citra hasil yang lebih baik dari sebelumnya. Contoh-contoh operasi perbaikan kualitas citra: a. Perbaikkan kontras gelap/terang b. Perbaikkan tepian objek (edge enhancement) c. Penajaman (sharpening) d. Pemberian warna semu (pseudocoloring) e. Penapisan derau (noise filtering) Untuk membuat aplikasi perbaikan kualitas citra dapat digunakan program MATLAB dimana sudah tersedia Toolboxtoolbox yang dapat digunakan, pada

19

kasus ini digunakan pengolahan citra dimana secara otomatis matlab melakukan pengolahan terhadap citra sesuai dengan syntaksnya. Saran Penulis menyadari laporan ini masih memiliki banyak kekurangan, oleh karena itu penulis dapat memberikan saran kepada pembaca yang mungkin lebih mengerti dalam menggunakan MATLAB, hendaknya dalam pembuatan programnya dibuat output yang lebih detail pada setiap tahap perbaikan kualitas citra, dengan tujuan agar dapat lebih mudah dipahami bagi pembaca lainnya.

LAMPIRAN Lampiran Script Matlab GUI (UAS_CITRA)function varargout = UAS_Citra(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @UAS_Citra_OpeningFcn, ... 'gui_OutputFcn', @UAS_Citra_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 UAS_Citra is made visible. function UAS_Citra_OpeningFcn(hObject, eventdata, handles, varargin) %set(handles.Tampil,'visible','off') set(handles.Tampil,'visible','off') % Choose default command line output for UAS_Citra handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes UAS_Citra wait for user response (see UIRESUME) % uiwait(handles.figure1);

20

% --- Outputs from this function are returned to the command line. function varargout = UAS_Citra_OutputFcn(hObject, eventdata, handles) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) proyek=guidata(gcbo); [namafile,direktori]=uigetfile({'*.jpg';'*.bmp';'*.';'*.tif'},'Buk a Gambar') if isequal(namafile,0)png return; end eval(['cd ''' direktori ''';']); R=imread(namafile); I=imresize(R,[512 512],'bilinear'); set(proyek.figure1,'CurrentAxes',proyek.axes1); set(imshow(I)); set(proyek.figure1,'Userdata',I); set(proyek.axes1,'Userdata',I); %set(handles.Tampil,'visible','on') set(handles.Tampil,'visible','on') set(handles.Tampil,'string','Gambar Asli Telah Diresize Menjadi 512 x 512'); % 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) % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) hello_world; %proyek=guidata(gcbo); %I=get(proyek.axes1,'Userdata'); %if isequal(I,[]) %msgbox('Belum ada gambar!','Peringatan','warn'); %else %PSF=fspecial('unsharp'); %A=imnoise(I,'salt & pepper'); %set(proyek.figure1,'CurrentAxes',proyek.axes2); %set(imshow(A)); %set(proyek.axes2,'Userdata',A); %redo_Callback(hObject, eventdata, handles); %end % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) proyek=guidata(gcbo);

21

[namafile,direktori]=uiputfile({'*.jpg';'*.*'},'Simpan Citra'); I=get(proyek.axes2,'Userdata'); if isequal(I,[]) msgbox('Maaf Belum disimpan karena Belum ada gambar!','Peringatan','warn'); else imwrite(I,strcat(direktori,namafile)); end % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) proyek=guidata(gcbo); set(proyek.figure1,'CurrentAxes',proyek.axes1); cla; set(proyek.figure1,'CurrentAxes',proyek.axes2); cla; set(proyek.figure1,'CurrentAxes',proyek.axes4); cla; set(proyek.figure1,'CurrentAxes',proyek.axes5); cla; % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on selection change in mode. function mode_Callback(hObject, eventdata, handles) proyek=guidata(gcbo); Y=get(proyek.axes5,'Userdata'); idMode = get (hObject, 'Value'); if idMode ==5 if isequal(Y,[]) msgbox('Maaf Belum Diberi Noise karena Belum Ada Gambar...!!!','Peringatan','warn'); else A=imnoise(Y,'poisson'); set(proyek.figure1,'CurrentAxes',proyek.axes2); set(imshow(A)); set(proyek.axes2,'Userdata',A); end else if idMode ==4 if isequal(Y,[]) msgbox('Maaf Belum Diberi Noise karena Belum Ada Gambar...!!!','Peringatan','warn'); else PSF=fspecial('unsharp'); A=imnoise(Y,'speckle'); set(proyek.figure1,'CurrentAxes',proyek.axes2); set(imshow(A)); set(proyek.axes2,'Userdata',A); end

22

else if idMode == 3 if isequal(Y,[]) msgbox('Maaf Belum Diberi Noise karena Belum Ada Gambar...!!!','Peringatan','warn'); else PSF=fspecial('unsharp'); A=imnoise(Y,'salt & pepper'); set(proyek.figure1,'CurrentAxes',proyek.axes2); set(imshow(A)); set(proyek.axes2,'Userdata',A); end else if idMode == 2 if isequal(Y,[]) msgbox('Maaf Belum Diberi Noise karena Belum Ada Gambar...!!!','Peringatan','warn'); else A=imnoise(Y,'gaussian'); set(proyek.figure1,'CurrentAxes',proyek.axes2); set(imshow(A)); set(proyek.axes2,'Userdata',A); end else if idMode == 1 msgbox('Maaf Silahkan Pilih Noise Ke-1, Ke-2, atau Ke3...!!!','Peringatan','warn') end end end end end % hObject handle to mode (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns mode contents as cell array % contents{get(hObject,'Value')} returns selected item from mode % --- Executes during object creation, after setting all properties. function mode_CreateFcn(hObject, eventdata, handles) % hObject handle to mode (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

23

% --- Executes on selection change in mode1. function mode1_Callback(hObject, eventdata, handles) proyek=guidata(gcbo); A=get(proyek.axes2,'Userdata'); idMode = get (hObject, 'Value'); if idMode ==7 if isequal(A,[]) msgbox('Maaf Belum Difilter karena Belum Ada Gambar...!!!','Peringatan','warn'); else J=[1/20 1/20 1/20; 1/50 1/50 1/50;1/20 1/20 1/20;]; B=filter2(J,A); set(proyek.figure1,'CurrentAxes',proyek.axes4); set(imshow(B,'DisplayRange',[])); set(proyek.axes4,'Userdata',B); end else if idMode == 6 if isequal(A,[]) msgbox('Maaf Belum Difilter karena Belum Ada Gambar...!!!','Peringatan','warn'); else J=fspecial('average',[3 3]); B=imfilter(A,J); set(proyek.figure1,'CurrentAxes',proyek.axes4); set(imshow(B)); set(proyek.axes4,'Userdata',B); end else if idMode ==5 if isequal(A,[]) msgbox('Maaf Belum Difilter karena Belum Ada Gambar...!!!','Peringatan','warn'); else J=fspecial('gaussian',[4,4],15) B=imfilter(A,J,'symmetri','conv'); set(proyek.figure1,'CurrentAxes',proyek.axes4); set(imshow(B)); set(proyek.axes4,'Userdata',B); end else if idMode == 4 if isequal(A,[]) msgbox('Maaf Belum Difilter karena Belum Ada Gambar...!!!','Peringatan','warn'); else B=medfilt2(A,[4 4]); set(proyek.figure1,'CurrentAxes',proyek.axes4); set(imshow(B)); set(proyek.axes4,'Userdata',B); end else if idMode == 3 if isequal(A,[])

24

msgbox('Maaf Belum Difilter karena Belum Ada Gambar...!!!','Peringatan','warn'); else %High Pass Filter J=[-1 -1 -1; -1 9 -1; -1 -1 -1]; B=filter2(J,A); set(proyek.figure1,'CurrentAxes',proyek.axes4); set(imshow(B,'DisplayRange',[])); set(proyek.axes4,'Userdata',B); end

else if idMode == 2 if isequal(A,[]) msgbox('Maaf Belum Difilter karena Belum Ada Gambar...!!!','Peringatan','warn'); else %Low Pass Filter J=[1/9 1/9 1/9; 1/9 1/9 1/9;1/9 1/9 1/9]; B=filter2(J,A); set(proyek.figure1,'CurrentAxes',proyek.axes4); set(imshow(B,'DisplayRange',[])); set(proyek.axes4,'Userdata',B); end else if idMode == 1 msgbox('Maaf Silahkan Difilter Ke-1, Ke-2, Ke-3 Atau Ke4...!!!','Peringatan','warn') end end end end end end end % hObject handle to mode1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns mode1 contents as cell array % contents{get(hObject,'Value')} returns selected item from mode1 % --- Executes during object creation, after setting all properties. function mode1_CreateFcn(hObject, eventdata, handles) % hObject handle to mode1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows.

25

% See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes during object creation, after setting all properties. function axes4_CreateFcn(hObject, eventdata, handles) % hObject handle to axes4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: place code in OpeningFcn to populate axes4 % --- Executes on button press in pushbutton5. function pushbutton5_Callback(hObject, eventdata, handles) proyek=guidata(gcbo); [namafile,direktori]=uiputfile({'*.jpg';'*.*'},'Simpan Citra'); I=get(proyek.axes4,'Userdata'); if isequal(I,[]) msgbox('Maaf Belum disimpan karena Belum ada gambar!','Peringatan','warn'); else imwrite(I,strcat(direktori,namafile)); end % hObject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on selection change in mode3. function mode3_Callback(hObject, eventdata, handles) proyek=guidata(gcbo); I=get(proyek.axes1,'Userdata'); idMode = get (hObject, 'Value'); if idMode == 2 if isequal(I,[]) msgbox('Maaf Belum Belum Ada Gambar...!!!','Peringatan','warn'); else Y=rgb2gray(I); set(proyek.figure1,'CurrentAxes',proyek.axes5); set(imshow(Y)); set(proyek.axes5,'Userdata',Y); end else if idMode == 1 if isequal(I,[]) msgbox('Maaf Belum Ada Gambar...!!!','Peringatan','warn');

26

else Y=I; set(proyek.figure1,'CurrentAxes',proyek.axes5); set(imshow(Y)); set(proyek.axes5,'Userdata',Y); end end end

% hObject % eventdata MATLAB % handles

handle to mode3 (see GCBO) reserved - to be defined in a future version of structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns mode3 contents as cell array % contents{get(hObject,'Value')} returns selected item from mode3 % --- Executes during object creation, after setting all properties. function mode3_CreateFcn(hObject, eventdata, handles) % hObject handle to mode3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on selection change in mode4. function mode4_Callback(hObject, eventdata, handles) proyek=guidata(gcbo); A=get(proyek.axes2,'Userdata'); idMode = get (hObject, 'Value'); if idMode ==6 if isequal(A,[]) msgbox('Maaf Belum Difilter karena Belum Ada Gambar...!!!','Peringatan','warn'); else citra = A; size(citra); baris= size(citra,1); kolom = size(citra,2); %matriks High Pass Filter

27

matriksHPF =[1 0 1; 0 5 0; 1 0 1]; citra = double(citra); for warna = 1 : 3 for i = 2 : (baris-1) for j = 2 : (kolom-1) hasilcitra(i,j,warna) = ... citra(i-1,j-1,warna) + citra(i-1,j,warna) + citra(i-1,j+1,warna) + citra(i,j-1,warna)+citra(i,j,warna) +citra(i,j+1,warna)+ citra(i+1,j-1,warna)+citra(i+1,j,warna)+ citra(i+1,j+1,warna); hasilcitra=double(hasilcitra); hasilcitra(i,j,warna) = hasilcitra(i,j,warna)/9; end end end %Blok display citra hasilcitra=uint8(hasilcitra); set(proyek.figure1,'CurrentAxes',proyek.axes4); set(imshow(hasilcitra)); set(proyek.axes4,'Userdata',hasilcitra); end else if idMode == 5 if isequal(A,[]) msgbox('Maaf Belum Difilter karena Belum Ada Gambar...!!!','Peringatan','warn'); else J=fspecial('average',[3 3]); B=imfilter(A,J); set(proyek.figure1,'CurrentAxes',proyek.axes4); set(imshow(B)); set(proyek.axes4,'Userdata',B); end else if idMode ==4 if isequal(A,[]) msgbox('Maaf Belum Difilter karena Belum Ada Gambar...!!!','Peringatan','warn'); else J=fspecial('gaussian',[4,4],15) B=imfilter(A,J,'symmetri','conv'); set(proyek.figure1,'CurrentAxes',proyek.axes4); set(imshow(B)); set(proyek.axes4,'Userdata',B); end else if idMode == 3 if isequal(A,[]) msgbox('Maaf Belum Difilter karena Belum Ada Gambar...!!!','Peringatan','warn'); else citra = A; size(citra); baris= size(citra,1);

28

kolom = size(citra,2); %matriks High Pass Filter matriksHPF =[-1 -1 -1; -1 8 -1; -1 -1 -1]; citra = double(citra); for warna = 1 : 3 for i = 2 : (baris-1) for j = 2 : (kolom-1) hasilcitra(i,j,warna) = ... citra(i-1,j-1,warna) + citra(i-1,j,warna) + citra(i-1,j+1,warna) + citra(i,j-1,warna)+citra(i,j,warna) +citra(i,j+1,warna)+ citra(i+1,j-1,warna)+citra(i+1,j,warna)+ citra(i+1,j+1,warna); hasilcitra=double(hasilcitra); hasilcitra(i,j,warna) = hasilcitra(i,j,warna)/9; end end end %Blok display citra hasilcitra=uint8(hasilcitra); set(proyek.figure1,'CurrentAxes',proyek.axes4); set(imshow(hasilcitra)); set(proyek.axes4,'Userdata',hasilcitra); end else if idMode == 2 if isequal(A,[]) msgbox('Maaf Belum Difilter karena Belum Ada Gambar...!!!','Peringatan','warn'); else citra = A; size(citra); baris= size(citra,1); kolom = size(citra,2); %matriks Low Pass Filter matriksLPF =[1/4 1/4; 1/4 1/4]; % 1/9 1/9 1/9]; citra = double(citra); for warna = 1 : 3 for i = 2 : (baris-1) for j = 2 : (kolom-1) hasilcitra(i,j,warna) = ... citra(i-1,j-1,warna) + citra(i-1,j,warna) + citra(i-1,j+1,warna) + citra(i,j-1,warna)+citra(i,j,warna) +citra(i,j+1,warna)+ citra(i+1,j-1,warna)+citra(i+1,j,warna)+ citra(i+1,j+1,warna); hasilcitra=double(hasilcitra); hasilcitra(i,j,warna) = hasilcitra(i,j,warna)/9; end end end %Blok display citra hasilcitra=uint8(hasilcitra); set(proyek.figure1,'CurrentAxes',proyek.axes4);

29

end

set(imshow(hasilcitra)); set(proyek.axes4,'Userdata',hasilcitra);

else if idMode == 1 msgbox('Maaf Silahkan Difilter Ke-1, Ke-2, Ke-3 Atau Ke4...!!!','Peringatan','warn') end end end end end end % hObject % eventdata MATLAB % handles handle to mode4 (see GCBO) reserved - to be defined in a future version of structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns mode4 contents as cell array % contents{get(hObject,'Value')} returns selected item from mode4 % --- Executes during object creation, after setting all properties. function mode4_CreateFcn(hObject, eventdata, handles) % hObject handle to mode4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in pushbutton6. function pushbutton6_Callback(hObject, eventdata, handles) proyek=guidata(gcbo); A=get(proyek.axes5,'Userdata'); B=get(proyek.axes4,'Userdata'); [rows columns] = size(A); for i=0.1:0.4 %for j=1:4 %noisyImage = imnoise(grayImage, 'salt & pepper',i); mseImage = (double(A) - double(B)) .^ 2; mse = sum(sum(mseImage)) / (rows * columns) PSNR = 10 * log10( 256^2 / mse) %for j=1:4 %subplot(1,4,j); %imshow(noisyImage,[]);

30

%PSNR = 10*log10(1/mean((A(:)-B(:)).^2)) set(handles.PS,'string', PSNR); set(handles.MSEE,'string',mse); end %set(proyek.figure1,'CurrentAxes',proyek.axes6); %set(imshow(A)); %set(proyek.axes2,'Userdata',PSNR); % hObject % eventdata MATLAB % handles handle to pushbutton6 (see GCBO) reserved - to be defined in a future version of structure with handles and user data (see GUIDATA)

% --- Executes during object creation, after setting all properties. % hObject handle to text7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % --- Executes on button press in pushbutton7. function pushbutton7_Callback(hObject, eventdata, handles) selection=questdlg(['Keluar Dari ' get(handles.figure1,'Name')''],... ['Keluar ' get(handles.figure1,'Name')''],... 'Ya','Tidak','Ya'); if strcmp(selection,'Tidak') return; end delete(handles.figure1)

31

Referensi http://shinigamirulez.blogspot.com/2009/01/pengolahan-citra-digital.html SuhendraAdang, Catatan Kuliah Pengantar Pengolahan Citra. Ebook. 2012. Emy, PENINGKATAN MUTU CITRA (IMAGE ENHANCEMENT) PADA DOMAIN SPATIAL. Ebook, 2007. R.C. Gonzalez, R.E.Woods, Digital Image Processing. Ebook, 2006. W. Prasetyo Eri, Peningkatan Mutu Citra. Ebook Pertemuan ke 5, 2012. Blnchet Gerard and Charbit Maurice, Digital Signal And Image Proccesing using MATLAB. Digital signal and image proccesing series. 2001. http://www.mathworks.com/

32