Transcript
Page 1: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

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:

123456

I=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

1

Page 2: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

citra tersebut, jas yang dikenakan oleh cameraman akan tampak lebih detail. Contoh perintah untuk melakukan penurunan kontras adalah:

123456

I=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:

123456

I=imread('mandril_gray.tif');J=histeq(I);figure,imshow(I);figure,imhist(I);figure,imshow(J);figure,imhist(J);

2

Page 3: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

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:

12345678

I=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);

3

Page 4: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

91011

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:

12345678

I=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);

4

Page 5: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

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

1234567891011

I=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);

5

Page 6: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

Hasil yang diperoleh ditunjukkan pada Gambar 2.6.

Model warna RGB dan histogram citraPosted 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);

6

Page 7: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

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:

12345

IR = I(:,:,1);IG = I(:,:,2);IB = I(:,:,3);figure,imshow(cat(3,IR,IG.*0,IB.*0));figure,imhist(IR);

Komponen Green

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

7

Page 8: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

Komponen Blue

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

Pergeseran Terang Gelap CitraPosted 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 berikut

1 function varargout = Terang_Gelap(varargin)

8

Page 9: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

234567891011121314151617181920212223242526272829303132333435363738394041424344454647

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

9

Page 10: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

48495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293

% 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(name_file1,0)    handles.data1 = imread(fullfile(name_path1,name_file1));    guidata(hObject,handles);    axes(handles.axes1);    imshow(handles.data1);    axes(handles.axes2);    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)delete(handles.figure1);

 

10

Page 11: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139

% --- 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 slidernilai_slider = get(handles.slider1,'value');num_citra = double(handles.data1);[m, n] = size(handles.data1);for i = 1:m    for j = 1:n        num_citra(i,j) = num_citra(i,j)+nilai_slider;        if num_citra(i,j) > 255            num_citra(i,j) = 255;        end;        if num_citra(i,j) < 0            num_citra(i,j) = 0;        end;    end;end;axes(handles.axes2);gambar = uint8(num_citra);imshow(gambar);

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

11

Page 12: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

140

6. Ketika di Run maka akan muncul

7. Klik Buka Citra, pilih gambar yang ingin diproses

8. Geser slider ke arah terang

9. Geser silder ke arah gelap

Citra Digital

12

Page 13: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

Posted on July 19, 2013

Citra digital adalah sekumpulan piksel (picture element) yang membentuk sebuah matriks berukuran M x N di mana M merupakan jumlah baris (lebar citra) dan N merupakan jumlah kolom (panjang citra). Setiap piksel mempunyai dua informasi yaitu koordinat (x,y) dan intensitas f(x,y). Pengolahan citra digital dilakukan dengan cara memanipulasi informasi yang dimiliki oleh setiap piksel pada citra.

Citra di atas adalah citra ‘peppers.png’ yang memiliki komponen warna RGB (Red, Green, Blue). Citra tersebut mempunyai tiga lapis matriks yaitu kanal merah, kanal hijau, dan kanal biru. Setiap piksel pada masing-masing kanal memiliki nilai intensitas antara 0 hingga 255. Perintah untuk menampilkan citra pada matlab adalah sebagai berikut:

12I = imread('peppers.png');figure, imshow(I);

Citra RGB dapat dikonversi menjadi citra grayscale (derajat keabuan). Persamaan yang digunakan MATLAB dalam proses konversi tersebut adalah:

0.2989 * R + 0.5870 * G + 0.1140 * B

sehingga proses konversi menghasilkan citra grayscale yang hanya memiliki satu lapis matriks. perintah yang digunakan yaitu:

13

Page 14: Teknik Image Enhancement Digunakan Untuk Meningkatkan Kualitas Suatu Citra Digital

12J = rgb2gray(I);figure, imshow(J);

Citra grayscale dapat dikonversi menjadi citra biner (binary image). Dalam proses konversi ini dibutuhkan sebuah nilai threshold (ambang batas). Misalnya nilai threshold yang digunakan adalah 128, maka piksel yang mempunyai intensitas kurang dari 128 akan diubah menjadi 0 (hitam) dan yang lebih dari sama dengan 128 akan diubah menjadi 1 (putih). Dalam MATLAB nilai threshold diatur dalam kelas data double, sehingga untuk mengatur nilai threshold 128, nilai yang digunakan adalah 128/256 = 0.5perintah yang digunakan yaitu:

12K = im2bw(J,0.5);figure, imshow(K);

Nilai threshold dapat diperoleh secara otomatis menggunakan metode Otsu (1979). Perintah yang digunakan yaitu:

123

L = graythresh(J);M = im2bw(J,L);figure, imshow(M);

14