function ratahistogram1
% program perataan histogram
% diketahui citra awal ukuran 4 X 5, dengan jangkauan keabuan 1-10
baris=4; kolom=5; derajatkeabuan=10;
awal=zeros(baris,kolom);
akhir=zeros(baris,kolom);
kemunculan=zeros(1,derajatkeabuan);
probkemunculan=zeros(1,derajatkeabuan);
sumprobkemunculan=zeros(1,derajatkeabuan);
% mengisi data citra awal
awal = [3 5 5 5 4; 5 4 5 4 4; 5 3 4 4 4; 4 5 6 6 3]
% hitung kemunculan dan cari probabilitasnya
for i=1:baris;
for j=1:kolom;
switch awal(i,j)
case 1
kemunculan(1)=kemunculan(1)+1;
probkemunculan(1)=kemunculan(1)/(baris*kolom);
case 2
kemunculan(2)=kemunculan(2)+1;
probkemunculan(2)=kemunculan(2)/(baris*kolom);
case 3
kemunculan(3)=kemunculan(3)+1;
probkemunculan(3)=kemunculan(3)/(baris*kolom);
case 4
kemunculan(4)=kemunculan(4)+1;
probkemunculan(4)=kemunculan(4)/(baris*kolom);
case 5
kemunculan(5)=kemunculan(5)+1;
probkemunculan(5)=kemunculan(5)/(baris*kolom);
case 6
kemunculan(6)=kemunculan(6)+1;
probkemunculan(6)=kemunculan(6)/(baris*kolom);
case 7
kemunculan(7)=kemunculan(7)+1;
probkemunculan(7)=kemunculan(7)/(baris*kolom);
case 8
kemunculan(8)=kemunculan(8)+1;
probkemunculan(8)=kemunculan(8)/(baris*kolom);
case 9
kemunculan(9)=kemunculan(9)+1;
probkemunculan(9)=kemunculan(9)/(baris*kolom);
otherwise
kemunculan(10)=kemunculan(10)+1;
probkemunculan(10)=kemunculan(10)/(baris*kolom);
end
end;
end;
% hitung jumlah probabilitas (SK)
for i=1:derajatkeabuan
if i==1
sumprobkemunculan(i)=probkemunculan(i);
else
sumprobkemunculan(i)=sumprobkemunculan(i-1)+probkemunculan(i);
end
end
sumprobkemunculan
% hitung jumlah probabilitas (SK) * derajatkeabuan
for i=1:derajatkeabuan
sumprobkemunculan(i)=sumprobkemunculan(i)*derajatkeabuan;
end
sumprobkemunculan
% citra akhir perataan histogram
for i=1:baris
for j=1:kolom;
switch awal(i,j)
case 1; akhir(i,j)=floor(sumprobkemunculan(1));
case 2; akhir(i,j)=floor(sumprobkemunculan(2));
case 3; akhir(i,j)=floor(sumprobkemunculan(3));
case 4; akhir(i,j)=floor(sumprobkemunculan(4));
case 5; akhir(i,j)=floor(sumprobkemunculan(5));
case 6; akhir(i,j)=floor(sumprobkemunculan(6));
case 7; akhir(i,j)=floor(sumprobkemunculan(7));
case 8; akhir(i,j)=floor(sumprobkemunculan(8));
case 9; akhir(i,j)=floor(sumprobkemunculan(9));
otherwise akhir(i,j)=floor(sumprobkemunculan(10));
end;
end
end;
akhir
% program perataan histogram
% diketahui citra awal ukuran 4 X 5, dengan jangkauan keabuan 1-10
baris=4; kolom=5; derajatkeabuan=10;
awal=zeros(baris,kolom);
akhir=zeros(baris,kolom);
kemunculan=zeros(1,derajatkeabuan);
probkemunculan=zeros(1,derajatkeabuan);
sumprobkemunculan=zeros(1,derajatkeabuan);
% mengisi data citra awal
awal = [3 5 5 5 4; 5 4 5 4 4; 5 3 4 4 4; 4 5 6 6 3]
% hitung kemunculan dan cari probabilitasnya
for i=1:baris;
for j=1:kolom;
switch awal(i,j)
case 1
kemunculan(1)=kemunculan(1)+1;
probkemunculan(1)=kemunculan(1)/(baris*kolom);
case 2
kemunculan(2)=kemunculan(2)+1;
probkemunculan(2)=kemunculan(2)/(baris*kolom);
case 3
kemunculan(3)=kemunculan(3)+1;
probkemunculan(3)=kemunculan(3)/(baris*kolom);
case 4
kemunculan(4)=kemunculan(4)+1;
probkemunculan(4)=kemunculan(4)/(baris*kolom);
case 5
kemunculan(5)=kemunculan(5)+1;
probkemunculan(5)=kemunculan(5)/(baris*kolom);
case 6
kemunculan(6)=kemunculan(6)+1;
probkemunculan(6)=kemunculan(6)/(baris*kolom);
case 7
kemunculan(7)=kemunculan(7)+1;
probkemunculan(7)=kemunculan(7)/(baris*kolom);
case 8
kemunculan(8)=kemunculan(8)+1;
probkemunculan(8)=kemunculan(8)/(baris*kolom);
case 9
kemunculan(9)=kemunculan(9)+1;
probkemunculan(9)=kemunculan(9)/(baris*kolom);
otherwise
kemunculan(10)=kemunculan(10)+1;
probkemunculan(10)=kemunculan(10)/(baris*kolom);
end
end;
end;
% hitung jumlah probabilitas (SK)
for i=1:derajatkeabuan
if i==1
sumprobkemunculan(i)=probkemunculan(i);
else
sumprobkemunculan(i)=sumprobkemunculan(i-1)+probkemunculan(i);
end
end
sumprobkemunculan
% hitung jumlah probabilitas (SK) * derajatkeabuan
for i=1:derajatkeabuan
sumprobkemunculan(i)=sumprobkemunculan(i)*derajatkeabuan;
end
sumprobkemunculan
% citra akhir perataan histogram
for i=1:baris
for j=1:kolom;
switch awal(i,j)
case 1; akhir(i,j)=floor(sumprobkemunculan(1));
case 2; akhir(i,j)=floor(sumprobkemunculan(2));
case 3; akhir(i,j)=floor(sumprobkemunculan(3));
case 4; akhir(i,j)=floor(sumprobkemunculan(4));
case 5; akhir(i,j)=floor(sumprobkemunculan(5));
case 6; akhir(i,j)=floor(sumprobkemunculan(6));
case 7; akhir(i,j)=floor(sumprobkemunculan(7));
case 8; akhir(i,j)=floor(sumprobkemunculan(8));
case 9; akhir(i,j)=floor(sumprobkemunculan(9));
otherwise akhir(i,j)=floor(sumprobkemunculan(10));
end;
end
end;
akhir