Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

  • View
    28

  • Download
    1

Embed Size (px)

Transcript

Teknik image enhancement digunakan untuk meningkatkan kualitas suatu citra digital, baik dalam tujuan untuk menonjolkan suatu ciri tertentu dalam citra tersebut, maupun untuk memperbaiki aspek tampilan. Proses ini biasanya didasarkan pada prosedur yang bersifat eksperimental, subjektif, dan bergantung pada tujuan yang hendak dicapai.2.1 Operasi TitikOperasi titik dalam image enhancement dilakukan dengan memodifikasi histogram citra masukan agar sesuai dengan karakteristik yang diharapkan. Teknik image enhancement melalui operasi titik antara lain adalah intensity adjustment dan histogram equalization.Intensity AdjustmentIntensity adjustment bekerja dengan cara melakukan pemetaan linear terhadap nilai intensitas pada histogram awal menjadi nilai intensitas pada histogram yang baru.Contoh1 (increase the contrast of an image):Citra rice.tif memiliki nilai kekontrasan yang rendah. Berdasarkan histogramnya, dapat diketahui bahwa citra ini tidak memiliki piksel dengan intensitas di bawah 40 dan di atas 204. Untuk memperbaikinya, kita dapat memetakan histogram secara linear sehingga diperoleh sebuah citra baru yang memiliki rentang histogram antara 0 hingga 255. Contoh perintah untuk melakukan peningkatan kontras adalah:123456I=imread('rice.png');J=imadjust(I,[40/255 204/255],[0/255 255/255]);figure,imshow(I);figure,imhist(I);figure,imshow(J);figure,imhist(J);

Hasil yang diperoleh ditunjukkan pada Gambar 2.1.

Contoh2 (decrease the contrast of an image):Citra cameraman.tif memiliki nilai kekontrasan yang tinggi. Dengan menurunkan kontras dari citra tersebut, jas yang dikenakan oleh cameraman akan tampak lebih detail. Contoh perintah untuk melakukan penurunan kontras adalah:123456I=imread('cameraman.tif');J=imadjust(I,[0 0.2],[0.5 1]);figure,imshow(I);figure,imhist(I);figure,imshow(J);figure,imhist(J);

Hasil yang diperoleh ditunjukkan pada Gambar 2.2.

Histogram EqualizationHistogram equalization bertujuan untuk menghasilkan citra keluaran yang memiliki nilai histogram yang relatif sama. Contoh perintah untuk melakukan histogram equalization adalah:123456I=imread('mandril_gray.tif');J=histeq(I);figure,imshow(I);figure,imhist(I);figure,imshow(J);figure,imhist(J);

Hasil yang diperoleh ditunjukkan pada Gambar 2.3.

2. Operasi SpasialOperasi spasial dalam pengolahan citra digital dilakukan melalui penggunaan suatu kernel konvolusi 2-dimensi. Metode image enhancement dalam operasi spasial antara lain low-pass filtering dan high-pass filtering.Low-pass FilteringLow-pass filtering adalah proses filter yang melewatkan komponen citra dengan nilai intensitas yang rendah dan meredam komponen citra dengan nilai intensitas yang tinggi. Low pass filter akan menyebabkan citra menjadi lebih halus dan lebih blur.Aturan kernel untuk low-pass filter adalah:1. Semua koefisien kernel harus positif2. Jumlah semua koefisien kernel harus sama dengan 1Contoh kernel yang dapat digunakan pada low-pass filtering adalah

Low-pass filtering menggunakan kernel (iii) disebut juga neighborhood averaging. Contoh perintah untuk melakukan low-pass filtering adalah:1234567891011I=imread('bicycle.tif');lpf1=[1/16 1/8 1/16;1/8 1/4 1/8;1/16 1/8 1/16];lpf2=[1/10 1/10 1/10;1/10 1/5 1/10;1/10 1/10 1/10];lpf3=[1 1 1;1 1 1;1 1 1]/9;J1=uint8(conv2(double(I),lpf1,'same'));J2=uint8(conv2(double(I),lpf2,'same'));J3=uint8(conv2(double(I),lpf3,'same'));figure,imshow(I);figure,imshow(J1);figure,imshow(J2);figure,imshow(J3);

Hasil yang diperoleh ditunjukkan pada Gambar 2.4.

Median FilteringMedian filter merupakan salah satu jenis low-pass filter, yang bekerja dengan mengganti nilai suatu piksel pada citra asal dengan nilai median dari piksel tersebut dan lingkungan tetangganya. Dibandingkan dengan neighborhood averaging, filter ini lebih tidak sensitif terhadap perbedaan intensitas yang ekstrim. Contoh perintah untuk melakukan median filtering terhadap citra yang terkontaminasi noise adalah:12345678I=imread('eight.tif');IN=imnoise(I,'salt & pepper',0.02);J1=medfilt2(IN,[3 3]);J2=medfilt2(IN,[5 5]);figure,imshow(I);figure,imshow(IN);figure,imshow(J1);figure,imshow(J2);

Hasil yang diperoleh ditunjukkan pada Gambar 2.5.

High-pass FilteringBerkebalikan dengan low-pass filtering, high-pass filtering adalah proses filter yang melewatkan komponen citra dengan nilai intensitas yang tinggi dan meredam komponen citra dengan nilai intensitas yang rendah. High pass filter akan menyebabkan tepi objek tampak lebih tajam dibandingkan sekitarnya.Aturan kernel untuk high-pass filter adalah:1. Koefisien kernel boleh positif, negative, atau nol2. Jumlah semua koefisien kernel adalah 0 atau 1Contoh kernel yang dapat digunakan pada high-pass filtering adalah

1234567891011I=imread('girl_gray.tif');hpf1=[-1 -1 -1;-1 8 -1;-1 -1 -1];hpf2=[ 0 -1 0;-1 5 -1; 0 -1 0];hpf3=[ 1 -2 1;-2 5 -2; 1 -2 1];J1=uint8(conv2(double(I),hpf1,'same'));J2=uint8(conv2(double(I),hpf2,'same'));J3=uint8(conv2(double(I),hpf3,'same'));figure,imshow(I);figure,imshow(J1);figure,imshow(J2);figure,imshow(J3);

Hasil yang diperoleh ditunjukkan pada Gambar 2.6.

Model warna RGB dan histogramcitraPosted on July 18, 2013

Model warna RGB terdiri dari tiga komponen warna yaitu komponen Red, Green, dan Blue. Perintah untuk memanggil citra RGB adalah:12I = imread('football.jpg');figure, imshow(I);

Histogram citra adalah diagram nilai intensitas piksel (sumbu-x) terhadap frekuensi kemunculan intensitas piksel (sumbu-y). Nilai intensitas setiap piksel pada citra truecolor 24-bit berkisar antara 0 s.d 255. Masing-masing komponen warna pada citra RGB dapat diekstrak dan ditampilkan histogramnya.Komponen Red:12345IR = I(:,:,1);IG = I(:,:,2);IB = I(:,:,3);figure,imshow(cat(3,IR,IG.*0,IB.*0));figure,imhist(IR);

Komponen Green12figure,imshow(cat(3,IR.*0,IG,IB.*0));figure,imhist(IG);

Komponen Blue12figure,imshow(cat(3,IR.*0,IG.*0,IB));figure,imhist(IB);

Pergeseran Terang GelapCitraPosted on June 27, 2013

Cara membuat citra berwarna menjadi terang/gelap menggunakan Graphical User Interface (GUI) MATLAB1. Buatlah rancangan GUI MATLAB yang terdiri dari 2 axes, 2 pushbutton, dan 1 slider seperti tampak pada gambar di bawah ini

2. Hapus xTick, yTick, dan zTick pada masing-masing axes3. Ubahlah string pada masing-masing pushbuttton dengan nama Buka Citra, dan Exit4. Ubahlah Min slider menjadi 0 dan Max menjadi 2555. Listing Programnya adalah sebagai berikut123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140function varargout = Terang_Gelap(varargin)% TERANG_GELAP M-file for Terang_Gelap.fig% TERANG_GELAP, by itself, creates a new TERANG_GELAP or raises the existing% singleton*.%% H = TERANG_GELAP returns the handle to a new TERANG_GELAP or the handle to% the existing singleton*.%% TERANG_GELAP('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in TERANG_GELAP.M with the given input arguments.%% TERANG_GELAP('Property','Value',...) creates a new TERANG_GELAP or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before Terang_Gelap_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to Terang_Gelap_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 Terang_Gelap% Last Modified by GUIDE v2.5 01-Jan-2013 17:27:42% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @Terang_Gelap_OpeningFcn, ...'gui_OutputFcn', @Terang_Gelap_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before Terang_Gelap is made visible.function Terang_Gelap_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 Terang_Gelap (see VARARGIN)% Choose default command line output for Terang_Gelaphandles.output = hObject;movegui(hObject,'center')% Update handles structureguidata(hObject, handles);% UIWAIT makes Terang_Gelap wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = Terang_Gelap_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 structurevarargout{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)set(handles.slider1,'value',0);[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(