Kamis, 15 Desember 2022

Thresholding Citra

Citra digital merupakan representasi dari fungsi intensitas cahaya dalam bidang dua dimensi. Berdasarkan jenis warnanya, citra dapat dikelompokkan menjadi tiga jenis yaitu citra RGB, citra grayscale, dan citra biner.

Citra RGB merupakan citra yang tersusun oleh tiga kanal warna yaitu kanal merah, kanal hijau, dan kanal biru. Pada citra RGB 24-bit, masing-masing kanal warna memiliki nilai intensitas piksel dengan kedalaman bit sebesar 8-bit yang artinya memiliki variasi warna sebanyak 2^8 = 256 derajat warna (0 s.d 255). Setiap piksel pada citra RGB memiliki nilai intensitas yang merupakan kombinasi dari nilai R, G, dan B. Variasi warna pada setiap piksel pada citra RGB adalah sebanyak 256 x 256 x 256 = 16.777.216.

Citra Grayscale merupakan citra yang hanya memiliki satu kanal warna. Pada citra grayscale 8-bit, setiap piksel memiliki nilai intensitas warna yang memiliki variasi sebanyak 2^8 = 256 derajat warna (0 s.d 255). Nilai intensitas pada citra ini merupakan representasi dari derajat keabuan di mana nilai 0 menyatakan warna hitam sempurna dan nilai 255 menyatakan warna putih sempurna. Nilai intensitas antara 0 s.d 255 merupakan warna abu-abu.

Sama seperti citra grayscale, citra biner juga merupakan citra yang hanya memiliki satu kanal warna. Citra biner memiliki kedalaman bit sebesar 1-bit. Nilai intensitas warna pada setiap piksel citra biner dibagi menjadi 2^1 = 2 warna yaitu warna hitam yang dinyatakan oleh nilai 0 dan warna putih yang dinyatakan oleh nilai 1.

Berikut ini merupakan listing program citra berwarna (RGB) menjadi hitam putih (biner) menggunakan Graphical User Interface  (GUI) MATLAB

function varargout = Tresholdingcitra(varargin)

% TRESHOLDINGCITRA MATLAB code for Tresholdingcitra.fig

%      TRESHOLDINGCITRA, by itself, creates a new TRESHOLDINGCITRA or raises the existing

%      singleton*.

%

%      H = TRESHOLDINGCITRA returns the handle to a new TRESHOLDINGCITRA or the handle to

%      the existing singleton*.

%

%      TRESHOLDINGCITRA('CALLBACK',hObject,eventData,handles,...) calls the local

%      function named CALLBACK in TRESHOLDINGCITRA.M with the given input arguments.

%

%      TRESHOLDINGCITRA('Property','Value',...) creates a new TRESHOLDINGCITRA or raises the

%      existing singleton*.  Starting from the left, property value pairs are

%      applied to the GUI before Tresholdingcitra_OpeningFcn gets called.  An

%      unrecognized property name or invalid value makes property application

%      stop.  All inputs are passed to Tresholdingcitra_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 Tresholdingcitra

 

% Last Modified by GUIDE v2.5 14-Dec-2022 11:49:36

 

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name',       mfilename, ...

                   'gui_Singleton',  gui_Singleton, ...

                   'gui_OpeningFcn', @Tresholdingcitra_OpeningFcn, ...

                   'gui_OutputFcn',  @Tresholdingcitra_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 Tresholdingcitra is made visible.

function Tresholdingcitra_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 Tresholdingcitra (see VARARGIN)

 

% Choose default command line output for Tresholdingcitra

handles.output = hObject;

 

% Update handles structure

guidata(hObject, handles);

 

% UIWAIT makes Tresholdingcitra wait for user response (see UIRESUME)

% uiwait(handles.figure1);

 

 

% --- Outputs from this function are returned to the command line.

function varargout = Tresholdingcitra_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;*.jpeg','Files of type (*.bmp,*.jpg,*.tif,*.jpeg)';

    '*.bmp','File Bitmap (*.bmp)';...

    '*.jpg','File jpeg (*.jpg)';

    '*.tif','File Tif (*.tif)';

    '*.jpeg','File jpeg (*.jpeg)';

    '*.*','All Files (*.*)'},...

    '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)

image1 = handles.data1;

gray = rgb2gray(image1);

axes(handles.axes3);

imshow(gray);

handles.data2 = gray;

guidata(hObject,handles);

 

% --- 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)

thresh = handles.data3;

[name_file_save,path_save] = uiputfile( ...

    {'*.bmp','File Bitmap (*.bmp)';...

    '*.jpg','File jpeg (*.jpg)';

    '*.tif','File Tif (*.tif)';

    '*.jpeg','File jpeg (*.jpeg)';

    '*.*','All Files (*.*)'},...

    'Save Image');

if ~isequal(name_file_save,0)

    imwrite(thresh,fullfile(path_save,name_file_save));

else

    return

end

 

% --- 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)

 

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

%        get(hObject,'Min') and get(hObject,'Max') to determine range of slider

gray = handles.data2;

value = get(handles.slider1,'value');

thresh = imcomplement(im2bw(gray,value/255));

axes(handles.axes3);

imshow(thresh);

handles.data3 = thresh;

guidata(hObject,handles);

set(handles.edit1,'String',value)

 

 

% --- 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

 

Ketika di run maka tampilan GUI akan tampak seperti pada gambar dibawah ini


berikut hasil running dari listing program diatas





Tidak ada komentar:

Posting Komentar