• Tidak ada hasil yang ditemukan

Implementasi Metode Median Filtering Dan Kompresi Jpeg Untuk Citra BMP

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Metode Median Filtering Dan Kompresi Jpeg Untuk Citra BMP"

Copied!
19
0
0

Teks penuh

(1)

LAMPIRAN A-1: LISTING PROGRAM

1.

home.m

functi

on varargout = home(varargin)

% Begin initialization code - DO NOT EDIT gui_Si

ngleton = 1; gui_St

ate = struct('gui_Name', mfilename, ... 'gui_S

ingleton', gui_Singleton, ...

'gui_OpeningFcn', @home_OpeningFcn,... 'gui_OutputFcn', @home_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout [varar

gout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:}); end

functi

on home_OpeningFcn(hObject, eventdata, handles, varargin) handle

s.output = hObject; guidat

a(hObject, handles); axes(h

andles.axes_logoUSU); image(

imread('logo_usu','jpg')); grid off;

axis off; functi

on varargout = home_OutputFcn(hObject, eventdata, handles) vararg

out{1} = handles.output;

functi

on Home_Callback(hObject, eventdata, handles)

functi

on GenerateNoise_Callback(hObject, eventdata, handles) genera

tenoise();

functi

on Testing_Callback(hObject, eventdata, handles) close

testin g();

functi

on Help_Callback(hObject, eventdata, handles) help()

;

functi

on Exit_Callback(hObject, eventdata, handles) respon

=keluar('Title','Konfirmasi Keluar'); switch

lower(respon) case 'tidak'

(2)

2.

generatenoise.m

functi

on varargout = generatenoise(varargin) % Begin initialization code - DO NOT EDIT gui_Si

ngleton = 1; gui_St

ate = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @generatenoise_OpeningFcn, ... 'gui_OutputFcn', @generatenoise_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1}) gui_St

ate.gui_Callback = str2func(varargin{1}); end

if nargout [varar

gout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_ma

infcn(gui_State, varargin{:}); end

functi

on generatenoise_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject; guidat

a(hObject, handles); functi

on varargout = generatenoise_OutputFcn(hObject, eventdata, handles)

vararg

out{1} = handles.output;

functi

on pb_InputImageOri_Callback(hObject, eventdata, handles) global

I;

[nama_

file, nama_path] = uigetfile({'*.bmp'},'Buka File Citra');

if ~isequal(nama_file,0)

handles.citra=(imread(fullfile(nama_path, nama_file))); info=imfinfo(fullfile(nama_path, nama_file));

size_file=info.FileSize/1000; guidata(hObject,handles); I=handles.citra;

[b k c]=size(I);

axes(handles.axes_original); imshow(handles.citra);

set(handles.edit_FileLocation,'String',nama_path); set(handles.edit_FileName,'String',nama_file); set(handles.edit_ImageSize,'String',size_file); set(handles.edit_Width,'String',k);

set(handles.edit_Height,'String',b);

set(handles.pb_GenerateNoise,'Visible','on'); else

return; end;

functi

on Home_Callback(hObject, eventdata, handles) close

home() ;

functi

on GenerateNoise_Callback(hObject, eventdata, handles)

functi

on Testing_Callback(hObject, eventdata, handles) testin

(3)

functi

on Help_Callback(hObject, eventdata, handles) help()

;

functi

on Exit_Callback(hObject, eventdata, handles) respon

=keluar('Title','Konfirmasi Keluar'); switch

lower(respon) case 'tidak'

case 'ya' close end

functi

on edit_FineName_Callback(hObject, eventdata, handles) functi

on edit_FileName_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on edit_ImageSize_Callback(hObject, eventdata, handles) functi

on edit_ImageSize_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

functi

on pb_GenerateNoise_Callback(hObject, eventdata, handles) global

citra_asli; h_sele

ctedNoise=get(handles.Noise_Type,'SelectedObject'); select

edNoise=get(h_selectedNoise,'Tag'); I =getimage(handles.axes_original); noise=

str2double(get(handles.edit_ProbNoise,'String')); nilain

oise=noise/100; [b k c]=size(I); r = rand(b,k,c);

switch selectedNoise case 'Noise_saltpepper'

pepper = find (r<=nilainoise/2); I(pepper)=0;

salt = find (r>1-nilainoise/2); I(salt)=255;

guidata(hObject,handles); axes(handles.axes_noise);

%set(proyek.figure1,'CurrentAxes',proyek.axes_noise); %set(imshow(I));

imshow(I);

%set(proyek.axes_noise,'Userdata',I);

case 'Noise_speckle'

speckle = find (r<=nilainoise); I(speckle)=0;

guidata(hObject,handles); axes(handles.axes_noise);

%set(proyek.figure1,'CurrentAxes',proyek.axes_noise); %set(imshow(I));

imshow(I);

(4)

end

set(handles.pb_SaveImage,'Visible','on'); guidata(hObject, handles);

J = getimage(handles.axes_original); nilaimse_noise = msecitra(J,I);

set(handles.edit_MSE,'String',nilaimse_noise);

nilaipsnr_noise = 20*log10(255/sqrt(nilaimse_noise)); set(handles.edit_PSNR,'String',nilaipsnr_noise);

%Fungs i MSE functi

on [NilaiMSE]= msecitra(F1,F2) [a1 b1 c1]=size(F1);

[a2 b2 c2]=size(F2);

Nilai = sum((( double(F1)-double(F2)).^2)/(a1*b1)); NilaiMSE =

sum(Nilai(:,:,1))+sum(Nilai(:,:,2))+sum(Nilai(:,:,3));

functi

on Noise_saltpepper_Callback(hObject, eventdata, handles) functi

on Noise_speckle_Callback(hObject, eventdata, handles) functi

on edit_ProbNoise_Callback(hObject, eventdata, handles)

functi

on edit_ProbNoise_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

functi

on edit_MSE_Callback(hObject, eventdata, handles) functi

on edit_MSE_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on edit_PSNR_Callback(hObject, eventdata, handles)

functi

on edit_PSNR_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on pb_SaveImage_Callback(hObject, eventdata, handles) sImage

= getimage(handles.axes_noise); [FileN

ame, PathName] = uiputfile('*.bmp', 'Save As'); pathfi

le=fullfile(PathName,FileName); imwrit

e(sImage,pathfile,'bmp'); guidat

a(hObject,handles); infoNo

iseImage = imfinfo(pathfile); size_f

ile_ImageNoise=infoNoiseImage.FileSize/1000; set(ha

ndles.edit_sizeImageNoise,'String',size_file_ImageNoise);

functi

(5)

functi

on edit_sizeImageNoise_CreateFcn(hObject, eventdata, handles)

3.

testing.m

functi

on varargout = testing(varargin)

% Begin initialization code - DO NOT EDIT gui_Si

ngleton = 1; gui_St

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

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @testing_OpeningFcn, ... 'gui_OutputFcn', @testing_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

functi

on testing_OpeningFcn(hObject, eventdata, handles, varargin) handle

s.output = hObject; guidat

a(hObject, handles);

functi

on varargout = testing_OutputFcn(hObject, eventdata, handles) vararg

out{1} = handles.output;

functi

on pushbutton1_Callback(hObject, eventdata, handles) global

size_file; [nama_

file, nama_path] = uigetfile({'*.bmp'},'Buka File Citra'); if ~isequal(nama_file,0)

handles.citra=(imread(fullfile(nama_path, nama_file))); info=imfinfo(fullfile(nama_path, nama_file));

size_file=info.FileSize/1000; guidata(hObject,handles); I=handles.citra;

[b k c]=size(I);

axes(handles.axes_noise); imshow(handles.citra);

set(handles.edit_locationINoise,'String',nama_path); set(handles.edit_fileNameINoise,'String',nama_file); set(handles.edit_sizeINoise,'String',size_file); set(handles.edit_widthINoise,'String',k);

set(handles.edit_heightINoise,'String',b); set(handles.pb_medianFiltering,'Visible','on'); else

return; end;

functi

on pb_medianFiltering_Callback(hObject, eventdata, handles) global

I; tic; Image=

(6)

[b k c]=size(Image);

for x=1:1:b

for y=1:1:k for z=1:1:c try

matriks(1,1)=Image(x-1,y-1,z); catch

matriks(1,1)=0; end

try

matriks(1,2)=Image(x-1,y,z); catch

matriks(1,2)=0; end

try

matriks(1,3)=Image(x-1,y+1,z); catch

matriks(1,3)=0; end

try

matriks(2,1)=Image(x,y-1,z); catch

matriks(2,1)=0; end

try

matriks(2,2)=Image(x,y,z); catch

matriks(2,2)=0; end try

matriks(2,3)=Image(x,y+1,z); catch

matriks(2,3)=0; end try

matriks(3,1)=Image(x+1,y-1,z); catch

matriks(3,1)=0; end

try

matriks(3,2)=Image(x+1,y,z); catch

matriks(3,2)=0; end

try

matriks(3,3)=Image(x+1,y+1,z); catch

matriks(3,3)=0; end

ukmatriks = round(size(matriks(:)));

matriksurut=reshape(matriks,1,ukmatriks(1));

for i=1:9

for j=i+1:9

(7)

matriksurut(i)=matriksurut(j); matriksurut(j)=temp;

end end end

nilaitengah=round(ukmatriks(1)/2); filterMedian(x,y,z) = matriksurut(nilaitengah);

end end end filter

Median=uint8(filterMedian); toc

citra_ asli = I; guidat

a(hObject,handles); axes(h

andles.axes_medianFiltering); imshow

(filterMedian); set(ha

ndles.pb_saveIMedianFiltering,'Visible','on');

nilaim

se_noise = msecitra(citra_asli,filterMedian); set(ha

ndles.edit_mseIMedianFiltering,'String',nilaimse_noise); nilaip

snr_noise = 20*log10(255/sqrt(nilaimse_noise)); set(ha

ndles.edit_psnrIMedianFiltering,'String',nilaipsnr_noise); set(ha

ndles.edit_RTimeIMedianFiltering,'String',toc);

%Fungs i MSE functi

on [NilaiMSE]= msecitra(F1,F2) [a1 b1 c1]=size(F1); [a2 b2 c2]=size(F2);

Nilai = sum((( double(F1)-double(F2)).^2)/(a1*b1));

NilaiMSE = sum(Nilai(:,:,1))+sum(Nilai(:,:,2))+sum(Nilai(:,:,3));

functi

on edit3_Callback(hObject, eventdata, handles) functi

on edit3_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on edit4_Callback(hObject, eventdata, handles) functi

on edit_mseIMedianFiltering_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on edit5_Callback(hObject, eventdata, handles) functi

on edit_psnrIMedianFiltering_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on edit1_Callback(hObject, eventdata, handles) functi

(8)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on edit2_Callback(hObject, eventdata, handles) functi

on edit_sizeINoise_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

functi

on edit6_Callback(hObject, eventdata, handles) functi

on edit_widthINoise_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

functi

on edit7_Callback(hObject, eventdata, handles) functi

on edit_heightINoise_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

functi

on edit8_Callback(hObject, eventdata, handles) functi

on edit_locationINoise_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

functi

on edit9_Callback(hObject, eventdata, handles) functi

on edit9_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on edit10_Callback(hObject, eventdata, handles) functi

on edit10_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on edit11_Callback(hObject, eventdata, handles) functi

on edit11_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on edit12_Callback(hObject, eventdata, handles) functi

(9)

set(hObject,'BackgroundColor','white'); end

functi

on edit13_Callback(hObject, eventdata, handles) functi

on edit13_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on edit14_Callback(hObject, eventdata, handles)

functi

on edit_RTimeIMedianFiltering_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on pb_saveIMedianFiltering_Callback(hObject, eventdata, handles)

sImage

= getimage(handles.axes_medianFiltering); [FileN

ame, PathName] = uiputfile('*.bmp', 'Save As'); pathfi

le=fullfile(PathName,FileName); imwrit

e(sImage,pathfile,'bmp'); guidat

a(hObject,handles); infoMe

dianFImage = imfinfo(pathfile); size_f

ile_MedianFNoise=infoMedianFImage.FileSize/1000; set(ha

ndles.edit_sizeIMedianFiltering,'String',size_file_MedianFNoise );

set(ha

ndles.pb_JPEGComm,'Visible','on');

functi

on pb_JPEGComm_Callback(hObject, eventdata, handles) tic;

A = getimage(handles.axes_medianFiltering); [Heigh

t,Width,Depth] = size(A); N = 8;

if mod(Height,N)~=0

Height = floor(Height/N)*N; end

if mod(Width,N)~=0

Width = floor(Width/N)*N; end

A1 = A(1:Height,1:Width,:);

clear A

A = A1;

%Sampl

ingFormat = '4:2:0';

(10)

Cb = imresize(A(:,:,2),[Height/2 Width/2],'cubic'); Cr = imresize(A(:,:,3),[Height/2 Width/2],'cubic');

jpgQst

epsY = [16 11 10 16 24 40 51 61;...

12 12 14 19 26 58 60 55;... 14 13 16 24 40 57 69 56;... 14 17 22 29 51 87 80 62;... 18 22 37 56 68 109 103 77;... 24 35 55 64 81 104 113 92;... 49 64 78 87 103 121 120 101;... 72 92 95 98 112 100 103 99];

Qsteps

Y = jpgQstepsY;

%kuali

tas kompresi level_

quality = get(handles.popupmenu_quality,'Value');

Qscale

= (10/level_quality)*0.5;

Yy = zeros(N,N);

xqY = zeros(Height,Width);

acBits Y = 0;

dcBits Y = 0;

if Depth > 1

jpgQstepsC = [17 18 24 47 66 99 99 99;... 18 21 26 66 99 99 99 99;... 24 26 56 99 99 99 99 99;... 47 66 99 99 99 99 99 99;... 99 99 99 99 99 99 99 99;... 99 99 99 99 99 99 99 99;... 99 99 99 99 99 99 99 99;... 99 99 99 99 99 99 99 99];

QstepsC = jpgQstepsC; YCb = zeros(N,N); YCr = zeros(N,N);

xqCb = zeros(Height/2,Width/2); xqCr = zeros(Height/2,Width/2);

acBitsCb = 0; dcBitsCb = 0; acBitsCr = 0; dcBitsCr = 0; end

% Compute the bits for the Y component for m = 1:N:Height

for n = 1:N:Width

(11)

% quantize the DCT coefficients

temp = floor(Yy./(Qscale*QstepsY) + 0.5);

% Calculate bits for the DC difference if n==1

DC = temp(1,1);

dcBitsY = dcBitsY + jpgDCbits(DC,'Y'); else

DC = temp(1,1) - DC;

dcBitsY = dcBitsY + jpgDCbits(DC,'Y'); DC = temp(1,1);

end

% Calculate the bits for the AC coefficients ACblkBits = jpgACbits(temp,'Y');

acBitsY = acBitsY + ACblkBits;

% dequantize & IDCT the DCT coefficients

xqY(m:m+N-1,n:n+N-1)= idct2(temp .* (Qscale*QstepsY))+ 128; end

end

% calculate the bits for the chroma components

if Depth > 1

EndRow = Height/2;

for m=1:N:EndRow

for n=1:N:(Width/2)

if ((m+N)<=EndRow)&&((n+N)<=Width/2) t1 = Cb(m:m+N-1,n:n+N-1) - 128; t2 = Cr(m:m+N-1,n:n+N-1) - 128; end

Ycb = dct2(t1); Ycr = dct2(t2);

temp1 = floor(Ycb./(Qscale*QstepsC) + 0.5); temp2 = floor(Ycr./(Qscale*QstepsC) + 0.5);

if n==1

DC1 = temp1(1,1);%Cb DC2 = temp2(1,1);%Cr

dcBitsCb = dcBitsCb + jpgDCbits(DC1,'C'); dcBitsCr = dcBitsCr + jpgDCbits(DC2,'C'); else

DC1 = temp1(1,1) - DC1; DC2 = temp2(1,1) - DC2;

dcBitsCb = dcBitsCb + jpgDCbits(DC1,'C'); dcBitsCr = dcBitsCr + jpgDCbits(DC2,'C'); DC1 = temp1(1,1);

DC2 = temp2(1,1); end

(12)

acBitsCr = acBitsCr + ACblkBits2;

% dequantize and IDCT the coefficients

xqCb(m:m+N-1,n:n+N-1)= idct2(temp1 .* (Qscale*QstepsC))+ xqCr(m:m+N-1,n:n+N-1)= idct2(temp2 .* (Qscale*QstepsC))+ end

end end %

TotalB

its = acBitsY + dcBitsY + dcBitsCb +... acBits

Cb + dcBitsCr + acBitsCr;

%upsam pling

c1 = imresize(xqCb,[Height Width],'cubic'); c2 = imresize(xqCr,[Height Width],'cubic'); xq(:,:

,1) = xqY; xq(:,: ,2) = c1; xq(:,: ,3) = c2;

%YCbCr toRGB imagec

ompress = ycbcr2rgb(uint8(round(xq))); sprint

f('Ukuran = %4.2f\n',TotalBits) toc

set(ha

ndles.edit_RTkompresi,'String',toc); axes(h

andles.axes_JPEGCompression)

imshow

(imagecompress); set(ha

ndles.pb_saveImageComm,'Visible','on');

functi

on edit15_Callback(hObject, eventdata, handles)

functi

on edit_RTkompresi_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

functi

on edit16_Callback(hObject, eventdata, handles)

functi

on edit_Ratiokompresi_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

functi

on edit17_Callback(hObject, eventdata, handles) functi

on edit_ImageSizekompresi_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on pb_saveImageComm_Callback(hObject, eventdata, handles) global

size_file; sImage

= getimage(handles.axes_JPEGCompression); [FileN

(13)

pathfi

EGCommImage = imfinfo(pathfile); size_f

ile_JPEGCom=infoJPEGCommImage.FileSize/1000; R_Comp

ression = 100 - ((size_file_JPEGCom / size_file )*100); set(ha

ndles.edit_ImageSizekompresi,'String',size_file_JPEGCom); set(ha

ndles.edit_Ratiokompresi,'String',R_Compression);

functi

on edit18_Callback(hObject, eventdata, handles)

functi

on edit_sizeIMedianFiltering_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white'); end

functi

on Home_Callback(hObject, eventdata, handles) close

home() ;

functi

on GenerateNoise_Callback(hObject, eventdata, handles) close

genera tenoise(); functi

on Testing_Callback(hObject, eventdata, handles)

functi

on Help_Callback(hObject, eventdata, handles) help()

;

functi

on Exit_Callback(hObject, eventdata, handles) respon

=keluar('Title','Konfirmasi Keluar'); switch

lower(respon) case 'tidak'

case 'ya' close end

functi

on popupmenu_quality_Callback(hObject, eventdata, handles) functi

on popupmenu_quality_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

4.

jpgACbits.m

functi

on Bits = jpgACbits(x,C)

(14)
(15)

k=k+1; end

5.

jpgDCbits.m

functi

on Bits = jpgDCbits(dc,C)

CodeLe

ngthY = int16([3 4 5 5 7 8 10 12 14 16 18 20]); CodeLe

ngthC = int16([2 3 5 6 7 9 11 13 15 18 19 20]); switch

C

case 'Y'

CodeLength = CodeLengthY; case 'C'

CodeLength = CodeLengthC; end

if dc == 0

Bits = double(CodeLength(1)); else

Bits = double(CodeLength(round(log2(abs(dc))+0.5)+1)); end

6.

ZigZag.m

functi

on y = ZigZag(x)

y(1) = x(1,1);y(2) = x(1,2);y(3) = x(2,1);y(4) = x(3,1); y(5) = x(2,2);y(6) = x(1,3);y(7) = x(1,4);y(8) = x(2,3); y(9) = x(3,2);y(10) = x(4,1);y(11) = x(5,1);y(12) = x(4,2); y(13) = x(3,3);y(14) = x(2,4);y(15) = x(1,5);y(16) = x(1,6); y(17) = x(2,5);y(18) = x(3,4);y(19) = x(4,3);y(20) = x(5,2); y(21) = x(6,1);y(22) = x(7,1);y(23) = x(6,2);y(24) = x(5,3); y(25) = x(4,4);y(26) = x(3,5);y(27) = x(2,6);y(28) = x(1,7); y(29) = x(1,8);y(30) = x(2,7);y(31) = x(3,6);y(32) = x(4,5); y(33) = x(5,4);y(34) = x(6,3);y(35) = x(7,2);y(36) = x(8,1); y(37) = x(8,2);y(38) = x(7,3);y(39) = x(6,4);y(40) = x(5,5); y(41) = x(4,6);y(42) = x(3,7);y(43) = x(2,8);y(44) = x(3,8); y(45) = x(4,7);y(46) = x(5,6);y(47) = x(6,5);y(48) = x(7,4); y(49) = x(8,3);y(50) = x(8,4);y(51) = x(7,5);y(52) = x(6,6); y(53) = x(5,7);y(54) = x(4,8);y(55) = x(5,8);y(56) = x(6,7); y(57) = x(7,6);y(58) = x(8,5);y(59) = x(8,6);y(60) = x(7,7); y(61) = x(6,8);y(62) = x(7,8);y(63) = x(8,7);y(64) = x(8,8);

7.

help.m

functi

on varargout = help(varargin)

% Begin initialization code - DO NOT EDIT gui_Si

ngleton = 1; gui_St

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

'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @help_OpeningFcn, ... 'gui_OutputFcn', @help_OutputFcn, ... 'gui_LayoutFcn', [] , ...

'gui_Callback', []); if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1}); end

if nargout

(16)

else

gui_mainfcn(gui_State, varargin{:}); end

functi

on help_OpeningFcn(hObject, eventdata, handles, varargin) handle

s.output = hObject;

guidat

a(hObject, handles); functi

on varargout = help_OutputFcn(hObject, eventdata, handles) vararg

out{1} = handles.output;

8.

keluar.m

functi

on varargout = keluar(varargin)

% Begin initialization code - DO NOT EDIT gui_Si

ngleton = 1; gui_St

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

'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @keluar_OpeningFcn, ... 'gui_OutputFcn', @keluar_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

functi

on keluar_OpeningFcn(hObject, eventdata, handles, varargin)

% Choose default command line output for keluar handle

s.output = 'Yes';

% Update handles structure guidat

a(hObject, handles);

if(nar gin > 3)

for index = 1:2:(nargin-3),

if nargin-3==index, break, end switch lower(varargin{index}) case 'title'

set(hObject, 'Name', varargin{index+1}); case 'string'

set(handles.text1, 'String', varargin{index+1}); end

end end

FigPos

=get(0,'DefaultFigurePosition'); OldUni

ts = get(hObject, 'Units'); set(hO

bject, 'Units', 'pixels'); OldPos

= get(hObject,'Position'); FigWid

th = OldPos(3); FigHei

(17)

ScreenUnits=get(0,'Units'); set(0,'Units','pixels');

ScreenSize=get(0,'ScreenSize'); set(0,'Units',ScreenUnits);

FigPos(1)=1/2*(ScreenSize(3)-FigWidth); FigPos(2)=2/3*(ScreenSize(4)-FigHeight); else

GCBFOldUnits = get(gcbf,'Units'); set(gcbf,'Units','pixels');

GCBFPos = get(gcbf,'Position'); set(gcbf,'Units',GCBFOldUnits);

FigPos(1:2) = [(GCBFPos(1) + GCBFPos(3) / 2) - FigWidth / 2, ... (GCBFPos(2) + GCBFPos(4) / 2) - FigHeight / 2]; end

FigPos

(3:4)=[FigWidth FigHeight]; set(hO

bject, 'Position', FigPos); set(hO

bject, 'Units', OldUnits);

% Show a question icon from dialogicons.mat - variables questIconData % and questIconMap

load dialogicons.mat

IconDa

ta=questIconData; questI

conMap(256,:) = get(handles.figklu, 'Color'); IconCM

ap=questIconMap;

Img=im

age(IconData, 'Parent', handles.axes1); set(ha

ndles.figklu, 'Colormap', IconCMap);

set(ha

ndles.axes1, ...

'Visible', 'off', ...

'YDir' , 'reverse' , ... 'XLim' , get(Img,'XData'), ... 'YLim' , get(Img,'YData') ... );

% Make the GUI modal set(ha

ndles.figklu,'WindowStyle','modal')

% UIWAIT makes keluar wait for user response (see UIRESUME) uiwait

(handles.figklu);

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

on varargout = keluar_OutputFcn(hObject, eventdata, handles)

% Get default command line output from handles structure vararg

out{1} = handles.output;

% The figure can be deleted now delete

(handles.figklu);

functi

on btyes_Callback(hObject, eventdata, handles) handle

s.output = get(hObject,'String');

% Update handles structure guidat

(18)

% Use UIRESUME instead of delete because the OutputFcn needs % to get the updated handles structure.

uiresu

me(handles.figklu);

functi

on btno_Callback(hObject, eventdata, handles) handle

s.output = get(hObject,'String');

% Update handles structure guidat

a(hObject, handles);

% Use UIRESUME instead of delete because the OutputFcn needs % to get the updated handles structure.

uiresu

me(handles.figklu);

functi

on figklu_CloseRequestFcn(hObject, eventdata, handles) if isequal(get(handles.figklu, 'waitstatus'), 'waiting') % The GUI is still in UIWAIT, us UIRESUME

uiresume(handles.figklu); else

% The GUI is no longer waiting, just close it delete(handles.figklu);

end

functi

on figklu_KeyPressFcn(hObject, eventdata, handles) % Check for "enter" or "escape"

if isequal(get(hObject,'CurrentKey'),'escape') % User said no by hitting escape

handles.output = 'No';

% Update handles structure guidata(hObject, handles);

uiresume(handles.figklu); end

if isequal(get(hObject,'CurrentKey'),'return') uiresume(handles.figklu);

(19)

Nama

: Zulwita Hariyati

Alamat Sekarang

: Jl. Pala 3 No. 12 Perumnas Simalingkar Medan

Alamat Orang Tua

: Jl. Pala 3 No. 12 Perumnas Simalingkar Medan

Telp/Hp

: 085761622962

Email

: wita.hariyati@gmail.com

Riwayat Pendidikan

2010 – 2014

: S1 Ilmu Komputer Fasilkom-TI Universitas Sumatera Utara,

Medan

2010 – 2007

: SMA Dharma Pancasila Medan

2007 – 2004

: SMP N 31 Medan

2004 – 1998

: SD Muhammadiyah 034 Medan

1998 – 1996

: TK Harapan Bunda Medan

Keahlian

Bahasa

: Indonesia, Inggris

Bahasa Pemrograman : C#, C++, Matlab

Referensi

Dokumen terkait

Penegakan hukum terhadap Nenek Minah harus dilepaskan dari unsur-unsur sosial serta moralitas, karena menurut kacamata Paradigma Positivisme, tujuan hukum adalah kepastian

Livelihoods Framework” (Ellis , 2000) to help define and organize indicators. Five to six indicators were developed in each category of livelihood assets. Indicators must

Di dalam menjalani fase-fase perkembangan, tiap anak harus melalui beberapa macam konflik yang pada umumnya dapat dilalui dengan sukses, tetapi ada juga anak yang

Pada hari ini Jumat tanggal Enam Bulan Mei Tahun Dua Ribu Sebelas, Panitia Pengadaan Barang/Jasa Konsultansi Penyusunan Aplikasi SIM – Jembatan Timbang Kegiatan Pengembangan

Pembelajaran (kegiatan pengembangan) matematika di TK, seperti juga membaca dan menulis memang sebaiknya tidak diajarkan di TK, tetapi kegiatan pengembangan.. tersebut

PEMERINTAH PROVINSI JAWA TENGAH..

- Nilai pergeseran rata-rata posisi horisontal titik-titik yang berada pada lokasi dengan ruang pandang ke langit relatif terbuka (poligon model 1 &amp; 2) memberikan hasil yang

Melalui analisis SWOT diperoleh hasil pada tahap input, skor kekuatan dikurangi skor kelemahan adalah 2,71 sedangkan skor peluang dikurangi skor ancaman adalah 1,06..