Escolar Documentos
Profissional Documentos
Cultura Documentos
Histogram Citra
I.
Tujuan
1. Mengetahui pengertian citra digital beserta elemen pembentuk citra 2. Memahami konsep citra sebagai matriks 3. Memahami histogram citra
II.
Teori Dasar
Picture element (pixel) dapat diartikan sebagai elemen pembentuk citra dalam bidang dua dimensi yang memiliki koordinat (, ) dan amplitudo (, ). Koordinat (, ) merupakan letak/posisi piksel dalam citra, sedangkan amplitudo (, ) merupakan nilai intensitas citra. Salah satu jenis citra adalah citra grayscale. Representasi citra grayscale ditunjukkan pada Gambar 1.
Citra pada Gambar 1 termasuk dalam kelas grayscale 8-bit yang artinya derajat warna antara hitam dan putih dibagi sebanyak 28 derajat
keabuan (0-255). Kelas tersebut merepresentasikan intensitas warna hitam sempurna dengan nilai 0 dan putih sempurna dengan nilai 255. Pada gambar tersebut, piksel dengan koordinat (1,1) memiliki nilai
intensitas 122, piksel dengan koordinat (2,1) memiliki nilai intensitas 92, dst. Oleh sebab itu, citra dapat pula dinyatakan sebagai matriks.
Pada citra berwarna, misalnya citra RGB truecolor 24-bit, tersusun atas tiga buah matriks yang berasal dari komponen warna red, green, dan blue. Representasi citra RGB truecolor 24-bit ditunjukkan pada Gambar 2.
Setiap piksel pada citra RGB truecolor 24-bit memiliki tiga nilai intensitas yaitu Red (R), Green (G), dan Blue (B). Ketiga nilai intensitas tersebut dapat dikonversi menjadi satu nilai intensitas saja sehingga citra yang terbentuk adalah citra grayscale. Persamaan yang digunakan untuk mengkonversi citra RGB truecolor 24-bit menjadi citra grayscale 8-bit adalah 0.2989 * R + 0.5870 * G + 0.1140 * B Citra hasil konversi RGB menjadi grayscale ditunjukkan pada Gambar 3.
2.2
Histogram Citra Histogram citra merupakan diagram yang menggambarkan distribusi frekuensi nilai intensitas piksel dalam suatu citra. Sumbu horizontal merupakan nilai intensitas piksel sedangkan sumbu vertical merupakan frekuensi/jumlah piksel. Histogram dari sebuah citra ditunjukkan pada Gambar 4.
Citra yang terang, histogramnya akan cenderung menumpuk di sebelah kanan, dan citra yang gelap, histogramnya akan menumpuk di sebelah kiri.
III.
Petunjuk Praktikum
gambar di bawah ini
2. Untuk menampilkan GUI Matlab, Klik New >> Graphical User Interface atau ketik guide pada Command Window
4. Untuk menampilkan nama pada komponen palette, klik File >> Preferences
4. Buatlah 1 buah static text, 1 push button, 4 radio button, 1 button group, dan 2 axes
5. Untuk mengubah isi properti suatu komponen, klik kanan komponen yang ingin diubah propertinya lalu pilih Property Inspector, atau double click komponen tersebut. Ubahlah isi properti setiap komponen sesuai dengan tabel di bawah ini
No. 1. 2.
3.
Radio Button
4.
Radio Button
5.
Radio Button
6.
Radio Button
7. 8.
8.
Axes
Property String FontSize String Tag FontSize String Tag FontSize String Tag FontSize String Tag FontSize String Tag FontSize Title FontSize Tag Xtick Ytick Ztick Tag Xtick Ytick Ztick
Isi Property Citra & Histogram 12 Buka Citra pushbutton1 12 Kanal Merah radiobutton1 12 Kanal Hijau radiobutton2 12 Kanal Biru radiobutton3 12 Grayscale radiobutton4 12 Histogram 12 axes1 <kosongkan> <kosongkan> <kosongkan> axes2 <kosongkan> <kosongkan> <kosongkan>
Setelah isi properti masing-masing komponen diubah, maka tampilan GUI akan seperti pada gambar di bawah ini
% --- Executes just before Histogram is made visible. function Histogram_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 Histogram (see VARARGIN) % Choose default command line output for Histogram handles.output = hObject; % Update handles structure guidata(hObject, handles); movegui(hObject,'center'); % UIWAIT makes Histogram wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = Histogram_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) [nama_file,nama_path] = uigetfile({'*.jpg';'*.bmp';'*.png';'*.tif'},... 'Buka Citra'); if ~isequal(nama_file,0) handles.data1 = imread(fullfile(nama_path,nama_file)); guidata(hObject,handles); axes(handles.axes1) imshow(handles.data1); title('Citra Asli'); else return end
% --- Executes on button press in radiobutton1. function radiobutton1_Callback(hObject, eventdata, handles) % hObject handle to radiobutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of radiobutton1 set(handles.radiobutton2,'value',0); set(handles.radiobutton3,'value',0); set(handles.radiobutton4,'value',0); citra = handles.data1; IR = citra(:,:,1); IG = citra(:,:,2); IB = citra(:,:,3); axes(handles.axes1) imshow(cat(3,IR,IG.*0,IB.*0)); title('Kanal Merah'); axes(handles.axes2) imhist(IR); title('Histogram Kanal Merah');
% --- Executes on button press in radiobutton2. function radiobutton2_Callback(hObject, eventdata, handles) % hObject handle to radiobutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of radiobutton2 set(handles.radiobutton1,'value',0); set(handles.radiobutton3,'value',0); set(handles.radiobutton4,'value',0); citra = handles.data1; IR = citra(:,:,1); IG = citra(:,:,2); IB = citra(:,:,3); axes(handles.axes1) imshow(cat(3,IR.*0,IG,IB.*0)); title('Kanal Hijau'); axes(handles.axes2) imhist(IG); title('Histogram Kanal Hijau');
% --- Executes on button press in radiobutton3. function radiobutton3_Callback(hObject, eventdata, handles) % hObject handle to radiobutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of radiobutton3
set(handles.radiobutton1,'value',0); set(handles.radiobutton2,'value',0); set(handles.radiobutton4,'value',0); citra = handles.data1; IR = citra(:,:,1); IG = citra(:,:,2); IB = citra(:,:,3); axes(handles.axes1) imshow(cat(3,IR.*0,IG.*0,IB)); title('Kanal Biru'); axes(handles.axes2) imhist(IB); title('Histogram Kanal Biru');
% --- Executes on button press in radiobutton4. function radiobutton4_Callback(hObject, eventdata, handles) % hObject handle to radiobutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of radiobutton4 set(handles.radiobutton1,'value',0); set(handles.radiobutton2,'value',0); set(handles.radiobutton3,'value',0); citra = handles.data1; gray = rgb2gray(citra); axes(handles.axes1) imshow(gray); title('Grayscale'); axes(handles.axes2) imhist(gray); title('Histogram Grayscale');