Teknik Informatika

Translate

Kamis, 18 November 2021

KONVOLUSI PADA CITRA

 

KONVOLUSI PADA CITRA



Konsep Konvolusi Citra

Konvolusi adalah sebuah operator matematika yang sangat penting untuk banyak operator dalam melakukan Image prosessing . Konvolusi ini akan menyediakan untuk cara menggabungkan 2 array dan biasanya array yang digunakan juga berbeda namun masih memilki dimensi array yang sama dan menghasilkan array ketiga yang akan mempunya dimensi yang sama juga.

Jadi konvolusi citra dapat diartikan adalah teknik yang digunakan untuk menghaluskan suatu cita atau memperjelas citra dengan menggantikan nilai piksel gambar dengan sejumlah nilai yang sesuai atau berdekatan dengan piksel aslinya dari gambar. Namun walaupun begitu dengan menggunakan konvolusi, ukuran dari citra akan tetap sama dan tidak berubah.


3 Metode yang Filtering yang Menggunakan Proses Konvolusi Citra

1. Adactive Local Filtering

    a. Konsep Metode
        Filter adaptif dilakukan pada citra terdegradasi yang mengandung citra asli dan noise. Mean dan varians adalah dua ukuran statistik yang bergantung pada filter adaptif lokal dengan region Window mxn yang ditentukan.

        Rumus Adaptif Filtering

        

    b. Tujuan Metode
        Tujuan dari Adaptive Local Filtering adalah untuk memperbaiki gambar dengan menjadikan noise yang ada pada gambar memudar.

    c. Penjelasan Input-Proses-Output
        Berikut isi input source code pada Matlab untuk adaptive local filtering :

    A = imread(‘peppers.png’);
    B = rgb2gray(A);
    sz = size(B,1)*size(B,2);
    %Add gaussian noise with mean 0 and variance 0.005
    B = imnoise(B,’gaussian’,0,0.005);
    figure,imshow(B); title(‘Image with gaussian noise’);
    B = double(B);
    %Define the window size mxn
    M = 5;
    N = 5;
    %Pad the matrix with zeros on all sides
    C = padarray(B,[floor(M/2),floor(N/2)]);
    lvar = zeros([size(B,1) size(B,2)]);
    lmean = zeros([size(B,1) size(B,2)]);
    temp = zeros([size(B,1) size(B,2)]);
    NewImg = zeros([size(B,1) size(B,2)]);
    for i = 1:size(C,1)-(M-1)
    for j = 1:size(C,2)-(N-1)
    temp = C(i:i+(M-1),j:j+(N-1));
    tmp = temp(:);
    %Find the local mean and local variance for the local region
    lmean(i,j) = mean(tmp);
    lvar(i,j) = mean(tmp.^2)-mean(tmp).^2;
    end
    end
    %Noise variance and average of the local variance
    nvar = sum(lvar(:))/sz;
    %If noise_variance > local_variance then local_variance=noise_variance
    lvar = max(lvar,nvar);
    %Final_Image = B- (noise variance/local variance)*(B-local_mean);
    NewImg = nvar./lvar;
    NewImg = NewImg.*(B-lmean);
    NewImg = B-NewImg;
    %Convert the image to uint8 format.\
    NewImg = uint8(NewImg);
    figure,imshow(NewImg);title(‘Restored Image using Adaptive Local filter’);


        Berikut output dari source code diatas:

        

    d. Algoritma dan Flowchart
        Algoritma sederhana dari Filter ini adalah setelah pengguna menjalankan source code filter maka selanjutnya pengguna diminta untuk memilih salah satu gambar untuk diolah. Setelah itu gambar tersebut akan diolah sesuai dengan source code filter ini. Hasilnya akan ditampilkan 2 gambar, citra sebelum di olah dan citra setelah diolah dengan filter ini.
 
            


2. Gaussian Filtering / Gaussian Blur

    a. Konsep Metode
        Pengertian Filter Gaussian Menurut Usman (2005 :70), filter Gaussian sangat baik untuk menghilangkan noise yang bersifat sebaran nomal, yang banyak di jumpai pada sebaran citra hasil proses digitasi menggunakan kamera karena merupakan fenomena alamiah akibat sifat pantulan cahaya dan kepekaan sensor cahaya pada kamera itu sendiri. Gaussian Blur adalah Filter blur yang menempatkan warna transisi yang signifikan dalam sebuah image, kemudian membuat warna-warna pertengahan untuk menciptakan efek lembut pada sisi-sisi sebuah image. Gaussian blur adalah salah satu filter blur yang menggunakan rumus matematika untuk menciptakan efek autofocus untuk mengurangi detail dan menciptakan efek berkabut sehingga sudut-sudut tajam pada citra akan menjadi lebih halus. Pengolahan citra ini dapat berdampak suatu citra menjadi semakin baik, tapi bisa juga menjadi semakin buruk.

Rumus Gaussian Kernel 2 dimensi 
                        
              

    b. Tujuan Metode
        Tujuan dari gaussian filtering adalah untuk menghilangkan noise dengan memudarkan gambar, namun dengan konsekuensi detail gambar juga ikut berkurang.

    c. Penjelasan Input-Proses-Output
        Berikut isi input source code pada Matlab untuk Gaussian Filtering.

    %Read an Image
    Gambar = imread(‘peppers.png’);
    Img = rgb2gray(Gambar);
    A = imnoise(Img,’Gaussian’,0.04,0.003);
    %Image with noise
    figure,imshow(A);
    I = double(A);
    %Design the Gaussian Kernel
    %Standard Deviation
    sigma = 1.76;
    %Window size
    sz = 4;
    [x,y]=meshgrid(-sz:sz,-sz:sz);
    M = size(x,1)-1;
    N = size(y,1)-1;
    Exp_comp = -(x.^2+y.^2)/(2sigmasigma);
    Kernel= exp(Exp_comp)/(2pisigma*sigma);
    %Initialize
    Output=zeros(size(I));
    %Pad the vector with zeros
    I = padarray(I,[sz sz]);
    %Convolution
    for i = 1:size(I,1)-M
    for j =1:size(I,2)-N
    Temp = I(i:i+M,j:j+M).*Kernel;
    Output(i,j)=sum(Temp(:));
    end
    end
    %Image without Noise after Gaussian blur
    Output = uint8(Output);
    figure,imshow(Output);


        Berikut output dari source code diatas.

        

    d. Algoritma dan Flowchart
        Algoritma sederhana dari Filter ini adalah setelah pengguna menjalankan source code filter maka selanjutnya pengguna diminta untuk memilih salah satu gambar untuk diolah. Setelah itu gambar tersebut akan diolah sesuai dengan source code filter ini. Hasilnya akan ditampilkan 2 gambar, citra sebelum di olah dan citra setelah diolah dengan filter ini.
 
                


3. Oil Painting Filtering

    a. Konsep
        Untuk mendapatkan efek seperti lukisan, tentukan matriks jendela kecil berukuran m kali n. Salin nilai piksel gambar asli ke dalam matriks dan temukan histogram dari setiap nilai. Temukan nilai piksel maksimum yang terjadi dan ganti posisi saat ini dengan nilai kejadian maksimum.

    b. Tujuan
        Tujuan dari Oil Painting Filtering adalah untuk menghasilkan gambar yang menyerupai hasil dari lukisan minyak.

    c. Penjelasan Input-Proses-Output
        Berikut isi input source code pada Matlab untuk Oil Painting Filtering.

    A=imread(‘peppers.png’);
    figure,imshow(A)
    %Define the matrix size of your convience.
    m=5;
    n=6;
    Image=uint8(zeros([size(A,1)-m,size(A,2)-n,3]));
    %Calculate the histogram for each RGB value.
    for v=1:3
    for i=1:size(A,1)-m
    for j=1:size(A,2)-n
    mymask=A(i:i+m-1,j:j+n-1,v);
    h=zeros(1,256);
    for x=1:(m*n)
    h(mymask(x)+1)=h(mymask(x)+1)+1;
    end
    %Maximum occurring value and the position is obtained
    [maxvalue,pos]=max(h);
    Image(i,j,v)=pos-1;
    end
    end
    end
    figure,imshow(Image);


        Berikut output dari source code diatas.

        

    d. Algoritma dan Flowchart
        Algoritma sederhana dari Filter ini adalah setelah pengguna menjalankan source code filter maka selanjutnya pengguna diminta untuk memilih salah satu gambar untuk diolah. Setelah itu gambar tersebut akan diolah sesuai dengan source code filter ini. Hasilnya akan ditampilkan 2 gambar, citra sebelum di olah dan citra setelah diolah dengan filter ini.

                 

0 comments:

Posting Komentar