Kamis, 06 Oktober 2016

Pengolahan Citra Dan Cara Menampilkan Gambar Dengan Menggunakan Matlab

Pengolahan Citra

Pengolahan citra adalah salah satu cabang dari ilmu informatika. Pengolahan citra berkutat pada usaha untuk melakukan transformasi suatu citra/gambar menjadi citra lain dengan menggunakan teknik tertentu. Pengolahan citra merupakan bidang yang bersifat multidisiplin, yang terdiri dari banyak aspek, antara lain fisika, elektronika, matematika, seni dan teknologi komputer. Pengolahan citra (image processing) memiliki hubungan yang sangat erat dengan disiplin ilmu yang lain. jika sebuah ilmu disiplin ilmu dinyatakan dengan bentuk proses suatu input menjadi output, maka pengolahan citra memiliki input berupa citra serta output juga berupa citra.

Pengolahan citra adalah istilah umum untuk berbagai teknik yang keberadaannya untuk memanipulasi dan memodifikasi citra dengan berbagai cara. Foto adalah contoh gambar berdimensi dua yang bisa diolah dengan mudah.Setiap foto dalam bentuk citra digital (misalnya berasal dari kamera digital) dapat diolah melalui perangkat-lunak tertentu. Pengolahan citra merupakan bagian penting yang mendasari berbagai aplikasi nyata, seperti pengenalan pola, penginderaan jarak-jauh melalui satelit atau pesawat udara, dan machine vision.

Berikut prinsip dasar dalam pengolahan citra:

1. Peningkatan kecerahan dan kontras
Citra yang diproses seringkali dalam keadaan terdistorsi atau mengandung derau, untuk kepentingan tertentu derau tersebut perlu dibersihkan terlebih dahulu. Dalam pengolahan citra metode yang dapat dipakai untuk keperluan tersebut salah satunya cara yang dilaksanakan melalui filter notch.

2. Penghilangan derau
Untuk kepentingan mengenali suatu objek di dalam citra, objek perlu dipisahkan terlebih dahulu dari latar belakangnya. Salah satu pendekatan yang umum dipakai untuk keperluan ini adalah penemuan batas objek. Dalam hal ini batas objek berupa bagian tepi objek. Setelah tepi objek diketahui pencarian ciri terhadap objek dapat dilaksanakan.

3. Pencarian bentuk objek
Untuk kepentingan mengenali suatu objek di dalam citra, objek perlu dipisahkan terlebih dahulu dari latar belakangnya. Salah satu pendekatan yang umum dipakai untuk keperluan ini adalah penemuan batas objek. Dalam hal ini batas objek berupa bagian tepi objek. Setelah tepi objek diketahui pencarian ciri terhadap objek dapat dilaksanakan.

Cara Membuat dan Menampilkan Gambar Dengan Menggunakan Matlab

GUI merupakan salah satu fitur dalam matlab yang digunakan untuk menyajikan tampilan yang mudah untuk digunakan atau dibaca oleh pengguna (dalam istilahnya disebut juga aplikasi yang user friendly). GUI (Grapichal User Interface) sering digunakan untuk membuat simulasi aplikasi dekstop. Banyak orang yang menggunakan fitur ini sebagai medianya. Pada kesempatan kali ini, kita akan belajar cara membuka (browse) image dan menampilkannya dengan menggunakan GUI pada Matlab. Langkah pertama tentu saja jita harus membuat framework GUI Matlab terlebih dahulu.

Berikut ini merupakan tutorial cara membuat citra berwarna (RGB) menjadi hitam putih (biner) menggunakan Graphical User Interface  (GUI) MATLAB:


1. Buatlah rancangan GUI MATLAB yang terdiri dari 2 axes, 3 pushbutton, 1 slider, dan 1 edit text seperti tampak pada gambar di bawah ini


2. Hapus xTick, yTick, dan zTick pada masing-masing axes

3. Ubahlah string pada masing-masing pushbuttton dengan nama Open Image, Grayscale, dan Save

4. Hapuslah string pada edit text

5. Ubahlah Min slider menjadi 0 dan Max menjadi 255,
sehingga tampilan GUI tampak pada gambar berikut:


6. Script Programnya adalah sbb:

function varargout = Latm(varargin)
% LATM MATLAB code for Latm.fig
%      LATM, by itself, creates a new LATM or raises the existing
%      singleton*.
%
%      H = LATM returns the handle to a new LATM or the handle to
%      the existing singleton*.
%
%      LATM('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in LATM.M with the given input arguments.
%
%      LATM('Property','Value',...) creates a new LATM or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before Latm_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to Latm_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 Latm

% Last Modified by GUIDE v2.5 01-Oct-2016 15:43:06

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @Latm_OpeningFcn, ...
                   'gui_OutputFcn',  @Latm_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 Latm is made visible.
function Latm_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 Latm (see VARARGIN)

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

% Update handles structure
guidata(hObject, handles);

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


% --- Outputs from this function are returned to the command line.
function varargout = Latm_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','Files of type (*.bmp,*.jpg,*.tif)';
    '*.bmp','File Bitmap (*.bmp)';...
    '*.jpg','File jpeg (*.jpg)';
    '*.tif','File Tif (*.tif)';
    '*.*','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.axes2);
imshow(gray);
handles.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)

% 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.axes2);
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


% --- 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)';
    '*.*','All Files (*.*)'},...
    'Save Image');
if ~isequal(name_file_save,0)
    imwrite(thresh,fullfile(path_save,name_file_save));
else
    return
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

7. Ketika di Run maka akan tampak seperti pada gambar di bawah ini


8. Klik Open Image, pilih gambar yang ingin diproses dan klik Grayscale.



9. Geser nilai Slider



10. Citra hitam putih yang terbentuk dapat disimpan dengan cara meng-klik tombol Save Image.


Daftar Pustaka :

https://www.academia.edu/7385678/Pengolahan_Citra_Digital?auto=download

https://pemrogramanmatlab.wordpress.com/2016/09/30/thresholding_citra/#more-17

Tidak ada komentar:

Posting Komentar