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

Friday, June 29, 2018

Konvolusi Tepi Citra Dengan Matlab

function konvolusicitra
%titik pusat di tengah
a=imread('cameraman.tif');
g=[0 -1 0;-1 4 -1;0 -1 0];
x=a;
a=double(a);
[baris kolom]=size(a);
for i=2:baris-1
    for j=2:kolom-1
        y(i,j)=(a(i-1,j-1)*g(1,1)+a(i-1,j)*g(1,2)+a(i-1,j+1)*g(1,3)+a(i,j-1)*g(2,1)+a(i,j)*g(2,2)+a(i,j+1)*g(2,3)+a(i+1,j-1)*g(3,1)+a(i+1,j)*g(3,2)+a(i+1,j+1)*g(3,3));
        if y(i,j)>255
            y(i,j)=255;
        else
           if y(i,j)<0
             y(i,j)=0;
         end
     end
 end
end
out=uint8(y);
subplot(2,2,1),imshow(x);
subplot(2,2,2),imhist(x);
subplot(2,2,3),imshow(out);
subplot(2,2,4),imhist(out);

Thursday, June 28, 2018

Input Numeric



import java.io.*;

class InputNumerik1 {
                public static void main(String[] args) throws IOException {
               
                                System.out.print("Masukkan sebuah bilangan bulat: ");
                               
                                String temp;
                                int bilangan = 0;
                               
                                InputStreamReader isr = new InputStreamReader (System.in);
                                BufferedReader br = new BufferedReader (isr);
                               
                                temp = br.readLine();
                               
                                try
                                {
                                                bilangan = Integer.parseInt(temp);
                                }catch (NumberFormatException nfe)
                               
                                {
                                                System.out.println("Data yang dimasukkan " + "bukan bilangan bulat");
                                                System.exit(1);
                                }
                               
                                System.out.println("Bilangan yang dimasukkan adalah " + bilangan);
                }
}