Saturday, June 30, 2018

Perataan Histogram Citra Dengan Matlab

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

No comments:

Post a Comment