Skip to main content

Cara Membuat Program Sederhana Grayscale Dengan Matlab


MATLAB adalah kependekan dari MATrix LABoratory dikarenakan setiap data pada MATLAB menggunakan dasar matriks. MATLAB adalah bahasa pemrograman tinggi, tertutup, dan case sensitive dalam lingkungan komputasi numerik yang dikembangkan oleh MathWorks. Salah satu kelebihannya yang paling populer adalah kemampuan membuat grafik dengan visualisasi terbaik. MATLAB mempunyai banyak tools yang dapat membantu berbagai disiplin ilmu. Ini merupakan salah satu penyebab industri menggunakan MATLAB. Selain itu MATLAB mempunyai banyak library yang sangat membantu untuk menyelesaikan permasalahan matematika seperti membuat simulasi fungsi, pemodelan matematika dan perancangan GUI.

Grayscale atau abu-abu pada sebuah image digital adalah image yang pada setiap pixelnya hanya berisikan informasi intensitas warna putih dan hitam.
Image Grayscale memiliki banyak variasi nuansa abu-abu sehingga berbeda dengan image hitam-putih.
Grayscale juga disebut monokromatik karna tidak memiliki warna lain selain variasi intensitas putih dan hitam.
Sebuah image yang dijadikan Grayscale akan terkesan berbeda bila dibandingkan dengan image berwarna.

Pada postingan ini akan memberikan sedikit ilmu pengetahuan tentang membuat program Grayscale dengan aplikasi Matlab.

Langkah-langkah dalam membuat program greyscale "MATLAB"

1. Buka aplikasi MATLAB.
2. Klik menu HOME, lalu klik NEW.
3. Klik GUIDE Quick Start, lalu pilih Blank GUI lalu pilih Browser sebagai tempat simpan program.
4. Klik OK.
5. Buatlah seperi contoh di bawah ini :


Dimana terdapat fitur Axes1, Axes2, pushbutton1 dengan nama "Open Image", pushbutton2 dengan nama "Greyscale", pushbutton3 dengan nama "Save", pushbutton4 dengan nama "Close",tambahkan textbox pada fitur Edit Text dan Slider.

Untuk coding pada fiture tersebut, klik kanan pada pushbutton1 ("Open Image") lalu pilih view callbacks lalu pilih callback.
Pastikan Gui nya sama dengan gambar diatas. Jika sudah sama dengan GUI diatas maka tinggal blok semua code yang ada pada default editor. Lalu copy source code dibawah ini :

function varargout = Button1(varargin)
% BUTTON1 MATLAB code for Button1.fig
%      BUTTON1, by itself, creates a new BUTTON1 or raises the existing
%      singleton*.
%
%      H = BUTTON1 returns the handle to a new BUTTON1 or the handle to
%      the existing singleton*.
%
%      BUTTON1('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in BUTTON1.M with the given input arguments.
%
%      BUTTON1('Property','Value',...) creates a new BUTTON1 or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before Button1_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to Button1_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

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

% Last Modified by GUIDE v2.5 26-Feb-2020 09:35:06

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @Button1_OpeningFcn, ...
                   'gui_OutputFcn',  @Button1_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 Button1 is made visible.
function Button1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to Button1 (see VARARGIN)

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

% Update handles structure
guidata(hObject, handles);

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


% --- Outputs from this function are returned to the command line.
function varargout = Button1_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

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


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
[name_file1,name_path1] = uigetfile(...
    {'*.bmp;*.jpg;*.tif','File of type (*.bmp,*.jpg,*.tif)';
    '*.bmp','File Bitmap (*.bmp)';...
    '*.jpg','File jpeg (*.jpg)';
    '*.tif','File Tif (*.tif)';
    '*.*','All File (*.*)'},...
    'Open Image');

if ~isequal (name_file1,0)
    handles.data1 = imread(fullfile(name_path1,name_file1));
    guidata(hObject,handles);
    axes(handles.axes1);
    imshow(handles.data1);
   
else
    return;
end

% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% 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)
close;


% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% 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)
image1 = handles.data1;
gray = rgb2gray(image1);
axes(handles.axes2);
imshow(gray);
handless.data2 = gray;
guidata(hObject,handles);

% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)
% hObject    handle to slider1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
gray = handles.data1;
value = get(handles.slider1,'value');
thresh = imcomplement(im2bw(gray,value/255));
axes(handles.axes2);
imshow(thresh);
handles.data3 = thresh;
guidata(hObject,handles);
set(handles.edit1,'string',value)
% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider


% --- Executes during object creation, after setting all properties.
function slider1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to slider1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background.
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end



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

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


% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit 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 pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% 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)
thresh = handles.data3;
[name_file_save,path_save] = uiputfile(...
{'*.bmp','File Bitmap (*.bmp)';...
 '*.jpg','File jpeg (*.jpg)';
 '*.tif','File Tif (*.tif)';
 '*.*','All File (*.*)'},...
 'Save Image');

if ~isequal(name_file_save,0)
    imwrite(thresh,fullfile(path_save,name_file_save));
   
else
    return
end


Jika sudah selesai menempelkan code diatas, kemudian klik save. Dan sekarang program siap dijalankan.
Berikut tampilan running programnya ;


Save project gambar yang telah dibuat, dan dibawah ini gambar yang sudah di simpan ;


Itulah program dan source code grayscale dengan matlab beserta hasil gambar citra grayscale nya.
Sekian sharing ilmu pada postingan ini, semoga bermanfaat dan jika ada yang ingin ditanyakan tinggal pesan di kolom komentar. Terima Kasih :)

Comments