% --- Executes on button press in btn_gsn. function btn_gsn_callback(hobject, eventdata, handles) GaussianSpeckleNoise close AiSoftware;

Similar documents
LISTING PROGRAM. % UIWAIT makes pertama wait for user response (see UIRESUME) % uiwait(handles.figure1);

LAMPIRAN 1. Percobaan

% Edit the above text to modify the response to help Video_Player. % Last Modified by GUIDE v May :38:12

Signal and Systems. Matlab GUI based analysis. XpertSolver.com

LISTING PROGRAM. % Edit the above text to modify the response to help cover. % Last Modified by GUIDE v Jun :24:43

LAMPIRAN LISTING PROGRAM

LISTING PROGRAM. if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); else gui_mainfcn(gui_state, varargin{:}); end

GUI code for different sections is in following sections

1. Peralatan LAMPIRAN

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

LAMPIRAN A LISTINGPROGRAM

1.Matlab Image Encryption Code

Supplementary Information

Lampiran 1. Script M-File Global Ridge

Homeworks on FFT Instr. and Meas. for Communication Systems- Gianfranco Miele. Name Surname

LAMPIRAN A PROGRAM PELATIHAN DAN PENGUJIAN

OMR Sheet Recognition

MV 1:00 1:05 1:00 1:05

Ear Recognition. By: Zeyangyi Wang

We are IntechOpen, the world s leading publisher of Open Access books Built by scientists, for scientists. International authors and editors

A NEW MACHINING COST CALCULATOR (MC 2 )

Akkad Bakad Bambai Bo

ECE Fall 05. Undergraduate Research: Digital Signal Processing & Quantization Effects

Lithium-Ion Battery Data. Management

Finding a Minimum Covering Circle Based on Infinity Norms

Main Form visual Studio

COMPLETELY AUTOMATED PUBLIC TURING TEST TO TELL COMPUTERS AND HUMANS APART

PROGRAMMING IN MATLAB

Airfoil Boundary Layer Separation Prediction

Solving Sudoku with MATLAB

.., 7. References. [ 1] 1 mage Analysis and Mathematical Morphology:J.Serra. [2] Erosion, dilation and related operators,by Mariusz Jankowski

Parallel-connected solar arrays

GUI Signal Analysis and Filtering Design

Contents INTERFACING MATLAB WITH EMBEDDED SYSTEMS

TREBALL FINAL DE GRAU

Implementation of a Motion Detection System

ALGORITHMS AND INTERFACE FOR OCEAN ACOUSTIC RAY-TRACING (Developed in MATLAB)

Accepted by... John H. Lienhard V

LOK-Viewer : Graphical Interface Application for Geomagnetic Data in Observatory Geomagnetic Lombok

MEASURING INTERFACIAL TENSION WITH THE PENDANT DROP METHOD

IMAGE STEGANOGRAPHY USING DISCRETE COSINE TRNASFORM ALGORITHM

Real-Time IIR Digital Filters

LISTING PROGRAM. 1. Module SkripsiUmri.py. import sys, operator, codecs, time. class Timer(object): def init (self): self.t1= time.

UNIVERSITÀ DEGLI STUDI DI PADOVA

LAMPIRAN A LISTING PROGRAM

GENDER ESTIMATION BASED ON FACIAL IMAGE AZLIN BT YAJID UNIVERSITI TEKNOLOGI MALAYSIA

LISTING PROGRAM. namespace vigenere_des { public partial class MainPage : PhoneApplicationPage { public MainPage() { InitializeComponent(); }

Design of Automated Digital Eye Palpation Exam for Intraocular Pressure Measurement

LISTING PROGRAM. a = b; b = c; c = a + b; } fibs.reverse(); for (int i = 0; i < fibs.count; i++) { if (n >= fibs[i]) { n = n - fibs[i];

LISTING PROGRAM. // // TODO: Add constructor code after the InitializeComponent()

Keywords: Learning automata, Vertex multicoloring.

LISTING PROGRAM. private void filetoolstripmenuitem_click(object sender, EventArgs e) { this.hide(); Form2 fr = new Form2(); fr.

LAMPIRAN A: LISTING PROGRAM

MATLAB. Creating Graphical User Interfaces Version 7. The Language of Technical Computing

LISTING PROGRAM. mainform.vb A-1. Universitas Sumatera Utara

1 Lab 3, Simulation of crank-piston system

LISTING PROGRAM. void FilteringToolStripMenuItemClick(object sender, EventAr s e) { Filtering a = new Filtering(); this.hide(); a.

LISTING CODE A-1. Indo_to_jawa_Fragments.java. package studio.arti.kamusjawaindonesia;

LAMPIRAN FORM 1 Universitas Sumatera Universitas Utara

A-1 LAMPIRAN A LISTING PROGRAM. Kode Program Form Main: Universitas Sumatera Utara

Lampiran 2 MASTER TABEL

Interactive Programs

Sandia National Laboratories: Implementation of and Experimenting with a Clustering Tool

1 >> Lecture 3 2 >> 3 >> -- Functions 4 >> Zheng-Liang Lu 169 / 221

Blind to Change. More on Graphical User Interfaces. Exploring change blindness

Ultraplatjoslas radaru izmantošana automašīnu skaitīšanai

Matlab for Engineers

LISTING PROGRAM. void KOMPRESIToolStripMenuItemClick(object sender, EventArgs e) { Kompresi k = new Kompresi(); k.show(); this.

Listing Progam. Universitas Sumatera Utara

ANEXO G. % Se calcula el valor de la señal cuando a llegado % al 28.3% y 63.2% de su de su cambio total.

1 >> Lecture 3 2 >> 3 >> -- Functions 4 >> Zheng-Liang Lu 172 / 225

LAMPIRAN A : LISTING PROGRAM

Chapter 6 User-Defined Functions. dr.dcd.h CS 101 /SJC 5th Edition 1

Flow Control. Spring Flow Control Spring / 26

Flow Control and Functions

LAMPIRAN. Private Sub FrmSkinDetect_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load IndikatorHandle(False) End Sub

An Implementation of RC4 + Algorithm and Zig-zag Algorithm in a Super Encryption Scheme for Text Security

The Language of Technical Computing. Computation. Visualization. Programming. Creating Graphical User Interfaces Version 1

Special Topics II: Graphical User Interfaces (GUIs)

privateint m, n, smithitemcount, raitaitemcount;

LISTING PROGRAM. com.example.jessicatamara.myapplication4;

IKI30820 Logic Programming Negation as Failure Slide 06

September 18, B Math Test Chapter 1 Name: x can be expressed as: {y y 0, y R}.

Anisotropy analysis: the MATLAB code

Computational Methods of Scientific Programming

W1005 Intro to CS and Programming in MATLAB. Data Structures. Fall 2014 Instructor: Ilia Vovsha. hep://

Listing Program. private void exittoolstripmenuitem_click(object sender, EventArgs e) { Application.Exit(); }

Hybrid learning vector quantization (LVQ) algorithm on face recognition using webcam

Transformations with Fred Functions- Packet 1

ANALYSIS OF LABOR EMPLOYMENT ASSESMENT ON PRODUCTION MACHINE TO MINIMIZE TIME PRODUCTION

MATLAB for the Sciences

Spring 2010 Instructor: Michele Merler.

Nonparametric Density Estimation

Rationale. Instructional Task

A-1 LISTING PROGRAM. 1. Form1.cs. Universitas Sumatera Utara

Introduction To MATLAB Interactive Graphics

Analysis of labor employment assessment on production machine to minimize time production

Image segmentation based on gray-level spatial correlation maximum between-cluster variance

A comparative study of Message Digest 5(MD5) and SHA256 algorithm

Journal of Physics: Conference Series PAPER OPEN ACCESS. To cite this article: B E Zaiwani et al 2018 J. Phys.: Conf. Ser.

Transcription:

A-2 'gui_openingfcn', @AiSoftware_OpeningFcn,... 'gui_outputfcn', @AiSoftware_OutputFcn,... 'gui_layoutfcn', [],... 'gui_callback', []); if nargin && ischar(varargin{1}) gui_state.gui_callback = str2func(varargin{1}); if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); gui_mainfcn(gui_state, varargin{:}); % End initialization code - DO NOT EDIT % --- Executes just before AiSoftware is made visible. function AiSoftware_OpeningFcn(hObject, eventdata, handles, varargin) % Choose default command line output for AiSoftware handles.output = hobject; % Update handles structure guidata(hobject, handles); % UIWAIT makes AiSoftware wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = AiSoftware_OutputFcn(hObject, eventdata, handles) citra_asli=imread('logofak.png'); citra_hasil=double(citra_asli); citra_hasil=uint8(citra_hasil); axes(handles.axes_logo); imshow(citra_hasil); % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in btn_gsn. function btn_gsn_callback(hobject, eventdata, handles) GaussianSpeckleNoise close AiSoftware; % --- Executes on button press in btn_sgn. function btn_sgn_callback(hobject, eventdata, handles) SpeckleGaussianNoise close AiSoftware; % --- Executes on button press in btn_gn. function btn_gn_callback(hobject, eventdata, handles) GaussianNoise close AiSoftware; % --- Executes on button press in btn_sn. function btn_sn_callback(hobject, eventdata, handles) SpeckleNoise close AiSoftware; % --- Executes on button press in btn_exit. function btn_exit_callback(hobject, eventdata, handles) selection=questdlg(['are You Sure?'],... ['Exit Application'],... 'Yes','No','Yes'); if strcmp(selection,'no')

A-3 return; delete(handles.figure1) % ------------------------------------------------------------------- - function howtousemenu_callback(hobject, eventdata, handles) HowToUse % ------------------------------------------------------------------- - function helpmenu_callback(hobject, eventdata, handles) % ------------------------------------------------------------------- - function menu_deskripsi_callback(hobject, eventdata, handles) Description description.m function varargout = Description(varargin) % Begin initialization code - DO NOT EDIT gui_singleton = 1; gui_state = struct('gui_name', mfilename,... 'gui_singleton', gui_singleton,... 'gui_openingfcn', @Description_OpeningFcn,... 'gui_outputfcn', @Description_OutputFcn,... 'gui_layoutfcn', [],... 'gui_callback', []); if nargin && ischar(varargin{1}) gui_state.gui_callback = str2func(varargin{1}); if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); gui_mainfcn(gui_state, varargin{:}); % End initialization code - DO NOT EDIT % --- Executes just before Description is made visible. function Description_OpeningFcn(hObject, eventdata, handles, varargin) % Choose default command line output for Description handles.output = hobject; % Update handles structure guidata(hobject, handles); % UIWAIT makes Description wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = Description_OutputFcn(hObject, eventdata, handles) % Get default command line output from handles structure varargout{1} = handles.output; % ------------------------------------------------------------------- - function menu_home_des_callback(hobject, eventdata, handles) AiSoftware close Description;

A-4 GaussianSpeckleNoise.m function varargout = GaussianSpeckleNoise(varargin) % Begin initialization code - DO NOT EDIT gui_singleton = 1; gui_state = struct('gui_name', mfilename,... 'gui_singleton', gui_singleton,... 'gui_openingfcn', @GaussianSpeckleNoise_OpeningFcn,... 'gui_outputfcn', @GaussianSpeckleNoise_OutputFcn,... 'gui_layoutfcn', [],... 'gui_callback', []); if nargin && ischar(varargin{1}) gui_state.gui_callback = str2func(varargin{1}); if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); gui_mainfcn(gui_state, varargin{:}); % End initialization code - DO NOT EDIT % --- Executes just before GaussianSpeckleNoise is made visible. function GaussianSpeckleNoise_OpeningFcn(hObject, eventdata, handles, varargin) % Choose default command line output for GaussianSpeckleNoise handles.output = hobject; % Update handles structure guidata(hobject, handles); % UIWAIT makes GaussianSpeckleNoise wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = GaussianSpeckleNoise_OutputFcn(hObject, eventdata, handles) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in btn_ed_mh. function btn_ed_mh_callback(hobject, eventdata, handles) citra_asli=handles.citra3; mh_output=deteksimarrhil(citra_asli); axes(handles.axes_mh1); imshow(mh_output); citragray = rgb2gray(handles.citra3); citrahistomh = edge(citragray,'marr'); axes(handles.axes_histomh); imhist(citrahistomh); % ------------------------------------------------------------------- - function backmenu_callback(hobject, eventdata, handles) AiSoftware close GaussianSpeckleNoise; function edit_meang_callback(hobject, eventdata, handles) function edit_meang_createfcn(hobject, eventdata, handles)

A-5 function edit_varianceg_callback(hobject, eventdata, handles) % Hints: get(hobject,'string') returns contents of edit_varianceg as text % str2double(get(hobject,'string')) returns contents of edit_varianceg as a double function edit_varianceg_createfcn(hobject, eventdata, handles) function edit_variances_callback(hobject, eventdata, handles) % Hints: get(hobject,'string') returns contents of edit_variances as text % str2double(get(hobject,'string')) returns contents of edit_variances as a double function edit_variances_createfcn(hobject, eventdata, handles) % --- Executes on button press in btn_noisingg. function btn_noisingg_callback(hobject, eventdata, handles) mg = length(get(handles.edit_meang, 'String')); vg = length(get(handles.edit_varianceg, 'String')); if (mg <= 0 vg == 0) h = msgbox('mean dan Variance harus diinput!'); citra_asli=handles.citra; mean=str2num(get(handles.edit_meang,'string')); variance=str2num(get(handles.edit_varianceg,'string')); citra_gaussian = imnoise(citra_asli,'gaussian',mean,variance); axes(handles.axes_gsn); imshow(citra_gaussian); handles.citra2=citra_gaussian; guidata(hobject,handles); % --- Executes on button press in btn_noisings. function btn_noisings_callback(hobject, eventdata, handles) vg = length(get(handles.edit_variances, 'String')); if (vg == 0) h = msgbox('variance harus diinput!'); citra_asli=handles.citra2;

A-6 variance=str2num(get(handles.edit_variances,'string')); citra_speckle = imnoise(citra_asli,'speckle',variance); axes(handles.axes_gsn); imshow(citra_speckle); handles.citra3=citra_speckle; guidata(hobject,handles); size(citra_speckle) % --- Executes on button press in btn_mse1. function btn_mse1_callback(hobject, eventdata, handles) citraasli=getimage(handles.axes_browse); citraasli=deteksimarrhil(citraasli); CitraHasil = double(getimage(handles.axes_mh1)); set(handles.edit_mse1,'string',mseval); % --- Executes on button press in btn_psnr1. function btn_psnr1_callback(hobject, eventdata, handles) citraasli=getimage(handles.axes_browse); citraasli=deteksimarrhil(citraasli); CitraHasil = double(getimage(handles.axes_mh1)); set(handles.edit_psnr1,'string',psnrval); function edit_mse1_callback(hobject, eventdata, handles) % Hints: get(hobject,'string') returns contents of edit_mse1 as text % str2double(get(hobject,'string')) returns contents of edit_mse1 as a double function edit_mse1_createfcn(hobject, eventdata, handles) function edit_psnr1_callback(hobject, eventdata, handles) % Hints: get(hobject,'string') returns contents of edit_psnr1 as text % str2double(get(hobject,'string')) returns contents of edit_psnr1 as a double function edit_psnr1_createfcn(hobject, eventdata, handles) % --- Executes on button press in btn_mse2. function btn_mse2_callback(hobject, eventdata, handles) citraasli=double(edge(citraasli,'log'));

A-7 CitraHasil = double(getimage(handles.axes_log1)); set(handles.edit_mse2,'string',mseval); % --- Executes on button press in btn_psnr2. function btn_psnr2_callback(hobject, eventdata, handles) CitraHasil = double(getimage(handles.axes_log1)); set(handles.edit_psnr2,'string',psnrval); function edit_mse2_callback(hobject, eventdata, handles) % Hints: get(hobject,'string') returns contents of edit_mse2 as text % str2double(get(hobject,'string')) returns contents of edit_mse2 as a double function edit_mse2_createfcn(hobject, eventdata, handles) function edit_psnr2_callback(hobject, eventdata, handles) % Hints: get(hobject,'string') returns contents of edit_psnr2 as text % str2double(get(hobject,'string')) returns contents of edit_psnr2 as a double function edit_psnr2_createfcn(hobject, eventdata, handles) % --- Executes on button press in btn_mse3. function btn_mse3_callback(hobject, eventdata, handles) citraasli=double(edge(citraasli,'prewitt')); CitraHasil = double(getimage(handles.axes_p1)); set(handles.edit_mse3,'string',mseval); % --- Executes on button press in btn_psnr3. function btn_psnr3_callback(hobject, eventdata, handles) CitraHasil = double(getimage(handles.axes_p1));

A-8 set(handles.edit_psnr3,'string',psnrval); function edit_mse3_callback(hobject, eventdata, handles) % Hints: get(hobject,'string') returns contents of edit_mse3 as text % str2double(get(hobject,'string')) returns contents of edit_mse3 as a double function edit_mse3_createfcn(hobject, eventdata, handles) function edit_psnr3_callback(hobject, eventdata, handles) % Hints: get(hobject,'string') returns contents of edit_psnr3 as text % str2double(get(hobject,'string')) returns contents of edit_psnr3 as a double function edit_psnr3_createfcn(hobject, eventdata, handles) % --- Executes on button press in btn_save1. function btn_save1_callback(hobject, eventdata, handles) [filename,pathname] = uiputfile(... {'*.bmp;*','file Image (*.bmp)';'*.*','all File (*.*)'},'Save Image'); NamaFile = strcat(pathname,'\',filename) [a a]=size(namafile) if (a~=1) axes(handles.axes_mh1); Citra = getimage(handles.axes_mh1); imwrite(citra,filename); return % --- Executes on button press in btn_save2. function btn_save2_callback(hobject, eventdata, handles) [filename,pathname] = uiputfile(... {'*.bmp;*','file Image (*.bmp)';'*.*','all File (*.*)'},'Save Image'); NamaFile = strcat(pathname,'\',filename) [a a]=size(namafile) if (a~=1) axes(handles.axes_log1); Citra = getimage(handles.axes_log1); imwrite(citra,filename); return

A-9 % --- Executes on button press in btn_save3. function btn_save3_callback(hobject, eventdata, handles) [filename,pathname] = uiputfile(... {'*.bmp;*','file Image (*.bmp)';'*.*','all File (*.*)'},'Save Image'); NamaFile = strcat(pathname,'\',filename) [a a]=size(namafile) if (a~=1) axes(handles.axes_p1); Citra = getimage(handles.axes_p1); imwrite(citra,filename); return % --- Executes on button press in btn_browse. function btn_browse_callback(hobject, eventdata, handles) [nama_file,nama_path] = uigetfile({'*.bmp','file bmp (*.bmp)'},'buka File Citra'); if ~isequal(nama_file,0) handles.citra=imread(fullfile(nama_path,nama_file)); guidata(hobject,handles); axes(handles.axes_browse); imshow(handles.citra); axes(handles.axes_browse); imshow(handles.citra); guidata(hobject,handles); axes(handles.axes_histoasli); imhist(handles.citra(:,:,1)); imhist(handles.citra(:,:,2)); imhist(handles.citra(:,:,3)); return; ; % --- Executes on button press in btn_ed_log. function btn_ed_log_callback(hobject, eventdata, handles) citra_asli=handles.citra3; gray=rgb2gray(citra_asli); ED_LOG=edge(gray,'log'); axes(handles.axes_log1); imshow(ed_log); citragray = rgb2gray(handles.citra3); citrahistolog = edge(citragray,'log'); axes(handles.axes_histolog); imhist(citrahistolog); % --- Executes on button press in btn_ed_p. function btn_ed_p_callback(hobject, eventdata, handles) citra_asli=handles.citra3; citrap=rgb2gray(citra_asli); [x y]=size(citrap); %Prewitt H1 = [-1 0 1; -1 0 1; -1 0 1]; H2 = [-1-1 -1; 0 0 0; 1 1 1];

A-10 fx = conv2(citrap,double(h1)); fy = conv2(citrap,double(h2)); %Arah Tepian [x,y]=size(fx); count=0; avg=0; for i=1:1:x for j=1:1:y output(i,j)=sqrt(fx(i,j)*fx(i,j)+fy(i,j)*fy(i,j)); count=count+output(i,j); avg=4*count/(x*y); for i=1:1:x for j=1:1:y if output(i,j)<avg output(i,j)=0; output(i,j)=255; prewitt_output=edge(citrap,'prewitt'); axes(handles.axes_p1); imshow(prewitt_output); citragray = rgb2gray(handles.citra3); citrahistop = edge(citragray,'prewitt'); axes(handles.axes_histop); imhist(citrahistop); % --- Executes on button press in btn_histogram1. function btn_histogram1_callback(hobject, eventdata, handles) histogram1 citra_mh = imread(handles.axes_mh1); citra_histo1 =double(citra_mh); imhist(citra_histo1); imshow(citra_histo1); axes(handles.axes1); [counts, bincenters] = hist(sort(averspectrum),500); axes(handles.whateveraxesyouwant); bar(bincenters, counts, 'BarWidth', 1); grid on SpeckleGaussianNoise.m function varargout = SpeckleGaussianNoise(varargin) gui_singleton = 1; gui_state = struct('gui_name', mfilename,... 'gui_singleton', gui_singleton,...

A-11 'gui_openingfcn', @SpeckleGaussianNoise_OpeningFcn,... 'gui_outputfcn', @SpeckleGaussianNoise_OutputFcn,... 'gui_layoutfcn', [],... 'gui_callback', []); if nargin && ischar(varargin{1}) gui_state.gui_callback = str2func(varargin{1}); if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); gui_mainfcn(gui_state, varargin{:}); % --- Executes just before SpeckleGaussianNoise is made visible. function SpeckleGaussianNoise_OpeningFcn(hObject, eventdata, handles, varargin) % Choose default command line output for SpeckleGaussianNoise handles.output = hobject; % Update handles structure guidata(hobject, handles); % UIWAIT makes SpeckleGaussianNoise wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = SpeckleGaussianNoise_OutputFcn(hObject, eventdata, handles) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in btn_gotoed. function btn_gotoed_callback(hobject, eventdata, handles) % --- Executes on button press in btn_mse1. function btn_mse1_callback(hobject, eventdata, handles) citraasli=getimage(handles.axes_browse); citraasli=deteksimarrhil(citraasli); CitraHasil = double(getimage(handles.axes_mh2)); set(handles.edit_mse1,'string',mseval); % --- Executes on button press in btn_psnr1. function btn_psnr1_callback(hobject, eventdata, handles) citraasli=getimage(handles.axes_browse); citraasli=deteksimarrhil(citraasli); CitraHasil = double(getimage(handles.axes_mh2)); set(handles.edit_psnr1,'string',psnrval); function edit_mse1_callback(hobject, eventdata, handles) function edit_mse1_createfcn(hobject, eventdata, handles)

A-12 function edit_psnr1_callback(hobject, eventdata, handles) % Hints: get(hobject,'string') returns contents of edit_psnr1 as text % str2double(get(hobject,'string')) returns contents of edit_psnr1 as a double function edit_psnr1_createfcn(hobject, eventdata, handles) % --- Executes on button press in btn_mse2. function btn_mse2_callback(hobject, eventdata, handles) citraasli=double(edge(citraasli,'log')); CitraHasil = double(getimage(handles.axes_log2)); set(handles.edit_mse2,'string',mseval); % --- Executes on button press in btn_psnr2. function btn_psnr2_callback(hobject, eventdata, handles) CitraHasil = double(getimage(handles.axes_log2)); set(handles.edit_psnr2,'string',psnrval); function edit_mse2_callback(hobject, eventdata, handles) % Hints: get(hobject,'string') returns contents of edit_mse2 as text % str2double(get(hobject,'string')) returns contents of edit_mse2 as a double function edit_mse2_createfcn(hobject, eventdata, handles) function edit_psnr2_callback(hobject, eventdata, handles) % Hints: get(hobject,'string') returns contents of edit_psnr2 as text % str2double(get(hobject,'string')) returns contents of edit_psnr2 as a double function edit_psnr2_createfcn(hobject, eventdata, handles)

A-13 % --- Executes on button press in btn_mse3. function btn_mse3_callback(hobject, eventdata, handles) citraasli=double(edge(citraasli,'prewitt')); CitraHasil = double(getimage(handles.axes_p2)); set(handles.edit_mse3,'string',mseval); % --- Executes on button press in btn_psnr3. function btn_psnr3_callback(hobject, eventdata, handles) CitraHasil = double(getimage(handles.axes_p2)); set(handles.edit_psnr3,'string',psnrval); function edit_mse3_callback(hobject, eventdata, handles) % Hints: get(hobject,'string') returns contents of edit_mse3 as text % str2double(get(hobject,'string')) returns contents of edit_mse3 as a double function edit_mse3_createfcn(hobject, eventdata, handles) function edit_psnr3_callback(hobject, eventdata, handles) % Hints: get(hobject,'string') returns contents of edit_psnr3 as text % str2double(get(hobject,'string')) returns contents of edit_psnr3 as a double function edit_psnr3_createfcn(hobject, eventdata, handles) % --- Executes on button press in btn_save1. function btn_save1_callback(hobject, eventdata, handles) [filename,pathname] = uiputfile(... {'*.bmp;*','file Image (*.bmp)';'*.*','all File (*.*)'},'Save Image'); NamaFile = strcat(pathname,'\',filename) [a a]=size(namafile) if (a~=1) axes(handles.axes_mh2); Citra = getimage(handles.axes_mh2); imwrite(citra,filename);

A-14 return % --- Executes on button press in btn_save2. function btn_save2_callback(hobject, eventdata, handles) [filename,pathname] = uiputfile(... {'*.bmp;*','file Image (*.bmp)';'*.*','all File (*.*)'},'Save Image'); NamaFile = strcat(pathname,'\',filename) [a a]=size(namafile) if (a~=1) axes(handles.axes_log2); Citra = getimage(handles.axes_log2); imwrite(citra,filename); return % --- Executes on button press in btn_save3. function btn_save3_callback(hobject, eventdata, handles) [filename,pathname] = uiputfile(... {'*.bmp;*','file Image (*.bmp)';'*.*','all File (*.*)'},'Save Image'); NamaFile = strcat(pathname,'\',filename) [a a]=size(namafile) if (a~=1) axes(handles.axes_p2); Citra = getimage(handles.axes_p2); imwrite(citra,filename); return % --- Executes on button press in btn_browse. function btn_browse_callback(hobject, eventdata, handles) [nama_file,nama_path] = uigetfile({'*.bmp','file bmp (*.bmp)'},'buka File Citra'); if ~isequal(nama_file,0) handles.citra=imread(fullfile(nama_path,nama_file)); guidata(hobject,handles); axes(handles.axes_browse); imshow(handles.citra); axes(handles.axes_browse); imshow(handles.citra); axes(handles.axes_histoasli); imhist(handles.citra(:,:,1)); imhist(handles.citra(:,:,2)); imhist(handles.citra(:,:,3)); return; ; function edit_meang_callback(hobject, eventdata, handles) function edit_meang_createfcn(hobject, eventdata, handles)

A-15 function edit_varianceg_callback(hobject, eventdata, handles) function edit_varianceg_createfcn(hobject, eventdata, handles) function edit_variances_callback(hobject, eventdata, handles) function edit_variances_createfcn(hobject, eventdata, handles) % --- Executes on button press in btn_noisings. function btn_noisings_callback(hobject, eventdata, handles) vg = length(get(handles.edit_variances, 'String')); if (vg == 0) h = msgbox('variance harus diinput!'); citra_asli=handles.citra; variance=str2num(get(handles.edit_variances,'string')); citra_speckle = imnoise(citra_asli,'speckle',variance); axes(handles.axes_sgn); imshow(citra_speckle); handles.citra2=citra_speckle; guidata(hobject,handles); % --- Executes on button press in btn_noisingg. function btn_noisingg_callback(hobject, eventdata, handles) mg = length(get(handles.edit_meang, 'String')); vg = length(get(handles.edit_varianceg, 'String')); if (mg <= 0 vg == 0) h = msgbox('mean dan Variance harus diinput!'); citra_asli=handles.citra2; mean=str2num(get(handles.edit_meang,'string')); variance=str2num(get(handles.edit_varianceg,'string')); citra_gaussian = imnoise(citra_asli,'gaussian',mean,variance); axes(handles.axes_sgn); imshow(citra_gaussian); handles.citra3=citra_gaussian; guidata(hobject,handles); % ------------------------------------------------------------------- - function backmenu_callback(hobject, eventdata, handles) AiSoftware close SpeckleGaussianNoise; % --- Executes on button press in btn_ed_mh.

A-16 function btn_ed_mh_callback(hobject, eventdata, handles) citra_asli=handles.citra3; mh_output=deteksimarrhil(citra_asli); axes(handles.axes_mh2); imshow(mh_output); citragray = rgb2gray(handles.citra3); citrahistomh = edge(citragray,'marr'); axes(handles.axes_histomh); imhist(citrahistomh); % --- Executes on button press in btn_ed_log. function btn_ed_log_callback(hobject, eventdata, handles) citra_asli=handles.citra3; gray=rgb2gray(citra_asli); ED_LOG=edge(gray,'log'); axes(handles.axes_log2); imshow(ed_log); citragray = rgb2gray(handles.citra3); citrahistolog = edge(citragray,'log'); axes(handles.axes_histolog); imhist(citrahistolog); % --- Executes on button press in btn_ed_p. function btn_ed_p_callback(hobject, eventdata, handles) citra_asli=handles.citra3; citrap=rgb2gray(citra_asli); [x y]=size(citrap); %Prewitt H1 = [-1 0 1; -1 0 1; -1 0 1]; H2 = [-1-1 -1; 0 0 0; 1 1 1]; fx = conv2(citrap,double(h1)); fy = conv2(citrap,double(h2)); %Arah Tepian [x,y]=size(fx); count=0; avg=0; for i=1:1:x for j=1:1:y output(i,j)=sqrt(fx(i,j)*fx(i,j)+fy(i,j)*fy(i,j)); count=count+output(i,j); avg=4*count/(x*y); for i=1:1:x for j=1:1:y if output(i,j)<avg output(i,j)=0; output(i,j)=255; prewitt_output=edge(citrap,'prewitt'); axes(handles.axes_p2); imshow(prewitt_output);

A-17 citragray = rgb2gray(handles.citra3); citrahistop = edge(citragray,'prewitt'); axes(handles.axes_histop); imhist(citrahistop); GaussianNoise.m function varargout = GaussianNoise(varargin) gui_singleton = 1; gui_state = struct('gui_name', mfilename,... 'gui_singleton', gui_singleton,... 'gui_openingfcn', @GaussianNoise_OpeningFcn,... 'gui_outputfcn', @GaussianNoise_OutputFcn,... 'gui_layoutfcn', [],... 'gui_callback', []); if nargin && ischar(varargin{1}) gui_state.gui_callback = str2func(varargin{1}); if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); gui_mainfcn(gui_state, varargin{:}); % End initialization code - DO NOT EDIT % --- Executes just before GaussianNoise is made visible. function GaussianNoise_OpeningFcn(hObject, eventdata, handles, varargin) % Choose default command line output for GaussianNoise handles.output = hobject; % Update handles structure guidata(hobject, handles); % UIWAIT makes GaussianNoise wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = GaussianNoise_OutputFcn(hObject, eventdata, handles) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in bnt_gotoed. function bnt_gotoed_callback(hobject, eventdata, handles) % --- Executes on button press in btn_mse1. function btn_mse1_callback(hobject, eventdata, handles) citraasli=getimage(handles.axes_browse); citraasli=deteksimarrhil(citraasli); CitraHasil = double(getimage(handles.axes_mh3)); set(handles.edit_mse1,'string',mseval); % --- Executes on button press in btn_psnr1. function btn_psnr1_callback(hobject, eventdata, handles) citraasli=getimage(handles.axes_browse); citraasli=deteksimarrhil(citraasli); CitraHasil = double(getimage(handles.axes_mh3));

A-18 set(handles.edit_psnr1,'string',psnrval); function edit_mse1_callback(hobject, eventdata, handles) function edit_mse1_createfcn(hobject, eventdata, handles) function edit_psnr1_callback(hobject, eventdata, handles) function edit_psnr1_createfcn(hobject, eventdata, handles) % --- Executes on button press in btn_mse2. function btn_mse2_callback(hobject, eventdata, handles) citraasli=double(edge(citraasli,'log')); CitraHasil = double(getimage(handles.axes_log3)); set(handles.edit_mse2,'string',mseval); % --- Executes on button press in btn_psnr2. function btn_psnr2_callback(hobject, eventdata, handles) CitraHasil = double(getimage(handles.axes_log3)); set(handles.edit_psnr2,'string',psnrval); function edit_mse2_callback(hobject, eventdata, handles) function edit_mse2_createfcn(hobject, eventdata, handles) function edit_psnr2_callback(hobject, eventdata, handles) function edit_psnr2_createfcn(hobject, eventdata, handles)

A-19 % --- Executes on button press in btn_mse3. function btn_mse3_callback(hobject, eventdata, handles) citraasli=double(edge(citraasli,'prewitt')); CitraHasil = double(getimage(handles.axes_p3)); set(handles.edit_mse3,'string',mseval); % --- Executes on button press in btn_psnr3. function btn_psnr3_callback(hobject, eventdata, handles) CitraHasil = double(getimage(handles.axes_p3)); set(handles.edit_psnr3,'string',psnrval); function edit_mse3_callback(hobject, eventdata, handles) function edit_mse3_createfcn(hobject, eventdata, handles) function edit_psnr3_callback(hobject, eventdata, handles) function edit_psnr3_createfcn(hobject, eventdata, handles) % --- Executes on button press in btn_save1. function btn_save1_callback(hobject, eventdata, handles) [filename,pathname] = uiputfile(... {'*.bmp;*','file Image (*.bmp)';'*.*','all File (*.*)'},'Save Image'); NamaFile = strcat(pathname,'\',filename) [a a]=size(namafile) if (a~=1) axes(handles.axes_mh3); Citra = getimage(handles.axes_mh3); imwrite(citra,filename); return % --- Executes on button press in btn_save2. function btn_save2_callback(hobject, eventdata, handles) [filename,pathname] = uiputfile(... {'*.bmp;*','file Image (*.bmp)';'*.*','all File (*.*)'},'Save Image'); NamaFile = strcat(pathname,'\',filename) [a a]=size(namafile) if (a~=1)

A-20 axes(handles.axes_log3); Citra = getimage(handles.axes_log3); imwrite(citra,filename); return % --- Executes on button press in btn_save3. function btn_save3_callback(hobject, eventdata, handles) [filename,pathname] = uiputfile(... {'*.bmp;*','file Image (*.bmp)';'*.*','all File (*.*)'},'Save Image'); NamaFile = strcat(pathname,'\',filename) [a a]=size(namafile) if (a~=1) axes(handles.axes_p3); Citra = getimage(handles.axes_p3); imwrite(citra,filename); return % --- Executes on button press in btn_browse. function btn_browse_callback(hobject, eventdata, handles) [nama_file,nama_path] = uigetfile({'*.bmp','file bmp (*.bmp)'},'buka File Citra'); if ~isequal(nama_file,0) handles.citra=imread(fullfile(nama_path,nama_file)); guidata(hobject,handles); axes(handles.axes_browse); imshow(handles.citra); axes(handles.axes_browse); imshow(handles.citra); axes(handles.axes_histoasli); imhist(handles.citra(:,:,1)); imhist(handles.citra(:,:,2)); imhist(handles.citra(:,:,3)); return; ; function edit_meang_callback(hobject, eventdata, handles) function edit_meang_createfcn(hobject, eventdata, handles) function edit_varianceg_callback(hobject, eventdata, handles) function edit_varianceg_createfcn(hobject, eventdata, handles)

A-21 % --- Executes on button press in btn_noisingg. function btn_noisingg_callback(hobject, eventdata, handles) mg = length(get(handles.edit_meang, 'String')); vg = length(get(handles.edit_varianceg, 'String')); if (mg <= 0 vg == 0) h = msgbox('mean dan Variance harus diinput!'); citra_asli=handles.citra; mean=str2num(get(handles.edit_meang,'string')); variance=str2num(get(handles.edit_varianceg,'string')); citra_gaussian = imnoise(citra_asli,'gaussian',mean,variance); axes(handles.axes_gn); imshow(citra_gaussian); handles.citra2=citra_gaussian; guidata(hobject,handles); function backmenu_callback(hobject, eventdata, handles) AiSoftware close GaussianNoise; % --- Executes on button press in btn_ed_mh. function btn_ed_mh_callback(hobject, eventdata, handles) citra_asli=handles.citra2; mh_output=deteksimarrhil(citra_asli); axes(handles.axes_mh3); imshow(mh_output); citragray = rgb2gray(handles.citra2); citrahistomh = edge(citragray,'marr'); axes(handles.axes_histomh); imhist(citrahistomh); % --- Executes on button press in btn_ed_log. function btn_ed_log_callback(hobject, eventdata, handles) citra_asli=handles.citra2; gray=rgb2gray(citra_asli); ED_LOG=edge(gray,'log'); axes(handles.axes_log3); imshow(ed_log); citragray = rgb2gray(handles.citra2); citrahistolog = edge(citragray,'log'); axes(handles.axes_histolog); imhist(citrahistolog); % --- Executes on button press in btn_ed_p. function btn_ed_p_callback(hobject, eventdata, handles) citra_asli=handles.citra2; citrap=rgb2gray(citra_asli); [x y]=size(citrap); %Prewitt H1 = [-1 0 1; -1 0 1; -1 0 1]; H2 = [-1-1 -1; 0 0 0; 1 1 1]; fx = conv2(citrap,double(h1)); fy = conv2(citrap,double(h2));

A-22 %Arah Tepian [x,y]=size(fx); count=0; avg=0; for i=1:1:x for j=1:1:y output(i,j)=sqrt(fx(i,j)*fx(i,j)+fy(i,j)*fy(i,j)); count=count+output(i,j); avg=4*count/(x*y); for i=1:1:x for j=1:1:y if output(i,j)<avg output(i,j)=0; output(i,j)=255; prewitt_output=edge(citrap,'prewitt'); axes(handles.axes_p3); imshow(prewitt_output); citragray = rgb2gray(handles.citra2); citrahistop = edge(citragray,'prewitt'); axes(handles.axes_histop); imhist(citrahistop); SpeckleNoise.m function varargout = SpeckleNoise(varargin) gui_singleton = 1; gui_state = struct('gui_name', mfilename,... 'gui_singleton', gui_singleton,... 'gui_openingfcn', @SpeckleNoise_OpeningFcn,... 'gui_outputfcn', @SpeckleNoise_OutputFcn,... 'gui_layoutfcn', [],... 'gui_callback', []); if nargin && ischar(varargin{1}) gui_state.gui_callback = str2func(varargin{1}); if nargout [varargout{1:nargout}] = gui_mainfcn(gui_state, varargin{:}); gui_mainfcn(gui_state, varargin{:}); % End initialization code - DO NOT EDIT % --- Executes just before SpeckleNoise is made visible. function SpeckleNoise_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hobject; % Update handles structure guidata(hobject, handles); % UIWAIT makes SpeckleNoise wait for user response (see UIRESUME) % uiwait(handles.figure1);

A-23 % --- Outputs from this function are returned to the command line. function varargout = SpeckleNoise_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; % --- Executes on button press in btn_gotoed. function btn_gotoed_callback(hobject, eventdata, handles) % --- Executes on button press in btn_mse1. function btn_mse1_callback(hobject, eventdata, handles) citraasli=getimage(handles.axes_browse); citraasli=deteksimarrhil(citraasli); CitraHasil = double(getimage(handles.axes_mh4)); set(handles.edit_mse1,'string',mseval); % --- Executes on button press in btn_psnr1. function btn_psnr1_callback(hobject, eventdata, handles) citraasli=getimage(handles.axes_browse); citraasli=deteksimarrhil(citraasli); CitraHasil = double(getimage(handles.axes_mh4)); set(handles.edit_psnr1,'string',psnrval); function edit_mse1_callback(hobject, eventdata, handles) function edit_mse1_createfcn(hobject, eventdata, handles) function edit_psnr1_callback(hobject, eventdata, handles) function edit_psnr1_createfcn(hobject, eventdata, handles) % --- Executes on button press in btn_mse2. function btn_mse2_callback(hobject, eventdata, handles) citraasli=double(edge(citraasli,'log')); CitraHasil = double(getimage(handles.axes_log4)); set(handles.edit_mse2,'string',mseval); % --- Executes on button press in btn_psnr2. function btn_psnr2_callback(hobject, eventdata, handles)

A-24 CitraHasil = double(getimage(handles.axes_log4)); set(handles.edit_psnr2,'string',psnrval); function edit_mse2_callback(hobject, eventdata, handles) function edit_mse2_createfcn(hobject, eventdata, handles) function edit_psnr2_callback(hobject, eventdata, handles) function edit_psnr2_createfcn(hobject, eventdata, handles) % --- Executes on button press in btn_mse3. function btn_mse3_callback(hobject, eventdata, handles) citraasli=double(edge(citraasli,'prewitt')); CitraHasil = double(getimage(handles.axes_p4)); set(handles.edit_mse3,'string',mseval); % --- Executes on button press in btn_psnr3. function btn_psnr3_callback(hobject, eventdata, handles) CitraHasil = double(getimage(handles.axes_p4)); set(handles.edit_psnr3,'string',psnrval); function edit_mse3_callback(hobject, eventdata, handles) function edit_mse3_createfcn(hobject, eventdata, handles) function edit_psnr3_callback(hobject, eventdata, handles) function edit_psnr3_createfcn(hobject, eventdata, handles)

A-25 % --- Executes on button press in btn_save1. function btn_save1_callback(hobject, eventdata, handles) [filename,pathname] = uiputfile(... {'*.bmp;*','file Image (*.bmp)';'*.*','all File (*.*)'},'Save Image'); NamaFile = strcat(pathname,'\',filename) [a a]=size(namafile) if (a~=1) axes(handles.axes_mh4); Citra = getimage(handles.axes_mh4); imwrite(citra,filename); return % --- Executes on button press in btn_save2. function btn_save2_callback(hobject, eventdata, handles) [filename,pathname] = uiputfile(... {'*.bmp;*','file Image (*.bmp)';'*.*','all File (*.*)'},'Save Image'); NamaFile = strcat(pathname,'\',filename) [a a]=size(namafile) if (a~=1) axes(handles.axes_log4); Citra = getimage(handles.axes_log4); imwrite(citra,filename); return % --- Executes on button press in btn_save3. function btn_save3_callback(hobject, eventdata, handles) [filename,pathname] = uiputfile(... {'*.bmp;*','file Image (*.bmp)';'*.*','all File (*.*)'},'Save Image'); NamaFile = strcat(pathname,'\',filename) [a a]=size(namafile) if (a~=1) axes(handles.axes_p4); Citra = getimage(handles.axes_p4); imwrite(citra,filename); return % --- Executes on button press in btn_browse. function btn_browse_callback(hobject, eventdata, handles) [nama_file,nama_path] = uigetfile({'*.bmp','file bmp (*.bmp)'},'buka File Citra'); if ~isequal(nama_file,0) handles.citra=imread(fullfile(nama_path,nama_file)); guidata(hobject,handles); axes(handles.axes_browse); imshow(handles.citra); axes(handles.axes_browse);

A-26 imshow(handles.citra); axes(handles.axes_histoasli); imhist(handles.citra(:,:,1)); imhist(handles.citra(:,:,2)); imhist(handles.citra(:,:,3)); return; ; function edit_variances_callback(hobject, eventdata, handles) function edit_variances_createfcn(hobject, eventdata, handles) % --- Executes on button press in btn_noisings. function btn_noisings_callback(hobject, eventdata, handles) vg = length(get(handles.edit_variances, 'String')); if (vg == 0) h = msgbox('variance harus diinput!'); citra_asli=handles.citra; variance=str2num(get(handles.edit_variances,'string')); citra_speckle = imnoise(citra_asli,'speckle',variance); axes(handles.axes_sn); imshow(citra_speckle); handles.citra2=citra_speckle; guidata(hobject,handles); % ------------------------------------------------------------------- - function backmenu_callback(hobject, eventdata, handles) AiSoftware close SpeckleNoise; % --- Executes on button press in btn_ed_mh. function btn_ed_mh_callback(hobject, eventdata, handles) citra_asli=handles.citra2; mh_output=deteksimarrhil(citra_asli); axes(handles.axes_mh4); imshow(mh_output); citragray = rgb2gray(handles.citra2); citrahistomh = edge(citragray,'marr'); axes(handles.axes_histomh); imhist(citrahistomh); % --- Executes on button press in btn_ed_log. function btn_ed_log_callback(hobject, eventdata, handles) citra_asli=handles.citra2; gray=rgb2gray(citra_asli); ED_LOG=edge(gray,'log'); axes(handles.axes_log4); imshow(ed_log); citragray = rgb2gray(handles.citra2); citrahistolog = edge(citragray,'log'); axes(handles.axes_histolog); imhist(citrahistolog);

A-27 % --- Executes on button press in btn_ed_p. function btn_ed_p_callback(hobject, eventdata, handles) citra_asli=handles.citra2; citrap=rgb2gray(citra_asli); [x y]=size(citrap); %Prewitt H1 = [-1 0 1; -1 0 1; -1 0 1]; H2 = [-1-1 -1; 0 0 0; 1 1 1]; fx = conv2(citrap,double(h1)); fy = conv2(citrap,double(h2)); %Arah Tepian [x,y]=size(fx); count=0; avg=0; for i=1:1:x for j=1:1:y output(i,j)=sqrt(fx(i,j)*fx(i,j)+fy(i,j)*fy(i,j)); count=count+output(i,j); avg=4*count/(x*y); for i=1:1:x for j=1:1:y if output(i,j)<avg output(i,j)=0; output(i,j)=255; prewitt_output=edge(citrap,'prewitt'); axes(handles.axes_p4); imshow(prewitt_output); citragray = rgb2gray(handles.citra2); citrahistop = edge(citragray,'prewitt'); axes(handles.axes_histop); imhist(citrahistop); deteksimarrhil.m function hasil=deteksimarrhil(citra_asli); citramh=rgb2gray(citra_asli); [x y]=size(citramh); mh_output=zeros(x,y); %MarrHildreth sigma=2; m=ceil(sigma*3)*2+1; h=fspecial('log',m,sigma); h=h-sum(h(:))/(m^2); diff2=zeros(x,y); dt=ceil((m-1)/2); for i=1:x

A-28 for j=1:y for k=1:m for l=1:m xp=i-k+1+dt; yp=j-l+1+dt; if((xp>=1)&&(xp<=x)&&(yp>=1)&&(yp<=y)) diff2(i,j)=diff2(i,j)+h(k,l)*double(citramh(xp,yp)); th=0.75*mean2(abs(diff2(2:x-1,2:y-1))); for i=2:x-1 for j=2:y-1 if(diff2(i,j)<0) if((diff2(i,j-1)>0)&&(diff2(i,j-1)- diff2(i,j)>th)) mh_output(i,j)=1; if((diff2(i,j+1)>0)&&(diff2(i,j+1)- diff2(i,j)>th)) mh_output(i,j)=1; if((diff2(i-1,j)>0)&&(diff2(i-1,j)- diff2(i,j)>th)) mh_output(i,j)=1; if((diff2(i+1,j)>0)&&(diff2(i+1,j)- diff2(i,j)>th)) mh_output(i,j)=1; if(diff2(i,j)==0) if((diff2(i,j- 1)<0)&&(diff2(i,j+1)>0)&&(diff2(i,j+1)-diff2(i,j-1)>2*th)) mh_output(i,j)=1; if((diff2(i,j- 1)>0)&&(diff2(i,j+1)<0)&&(diff2(i,j-1)-diff2(i,j+1)>2*th)) mh_output(i,j)=1; if((diff2(i- 1,j)<0)&&(diff2(i+1,j)>0)&&(diff2(i+1,j)-diff2(i-1,j)>2*th)) mh_output(i,j)=1; if((diff2(i-1,j)>0)&&(diff2(i+1,j)<0)&&(diff2(i- 1,j)-diff2(i+1,j)>2*th)) mh_output(i,j)=1; hasil=mh_output; CURRICULUM VITAE Nama : Nur Ainun Alamat : Jl. Pusaka No.921, Pasar XI Tembung, Medan, 20371. Telp/Hp : 085760933254 Email : ainunkhan@gmail.com Riwayat Pidikan

B-2 2009-2013 : S1 Ilmu Komputer, Medan 2006-2009 : MAN 1 Medan 2003-2006 : MTsN 2 Medan 1997-2003 : SD Pahlawan Nasional, Medan Riwayat Organisasi Periode Nama Organisasi Lingkup Jabatan 2005-2006 OSIS Mtsn 2 Medan Sekolah Anggota Dept. Agama 2007-2009 Tarung Derajat Satlat MAN 1 Medan Sekolah Sekretaris 2007-2008 OSIS MAN 1 Medan Sekolah Sekretaris Ketua II 2008-2009 OSIS MAN 1 Medan Sekolah Ketua II 2009-2011 BKM Al-Khuwarizmi Program Studi Anggota Biro Administrasi. Sekretaris Bidang Syiar 2010-2011 PEMA F-MIPA USU Fakultas Anggota Dept. Agama Islam 2010-2011 IMILKOM USU Program Studi Sekretaris Bidang Kemahasiswaan 2011-2012 IMILKOM USU Program Studi Sekretaris Umum 2012-2013 IMILKOM USU Program Studi Ketua Dept. Dana dan Usaha 2012-2013 PEMA Fasilkom-TI Fakultas Anggota Dept. Kemahasiswaan 2013-2014 IMILKOM USU Program Studi Dewan Penasehat