Studi Informatika

Panduan Pembelajaran Ilmu Teknologi & Komputer

Sunday, July 30, 2017

RESTORASI CITRA

Yang dibahas pada materi ini :

  • Restorasi Citra
  • Derau Dalam Citra
  • Jenis Derau
  • Penghilang Derau
Insya Allah materi di atas akan di update

coding octave :

Program derau gaussian dengan fungsi
==================================================
function [g] = gaussian(f, sigma, mu)
%    g        = Menghasilkan citra yang telah diberi derau menggunakan gaussian.
%    f        = citra masukan berskala keabuan
%    sigma = standar deviasi fungsi gaussian
%    mu     = rerata fungsi Gaussian
if nargin < 3
    mu = 0;         % Nilai bawaan mu
end
if nargin < 2
    sigma = 1;      % Nilai bawaan standar deviasi
end
[m, n] = size(f);
g = double(f);
for i=1 : m
    for j=1 : n
        derau = randn * sigma + mu;
        g(i,j)  = round(f(i, j) + derau);  
        if g(i,j) >= 255
            g(i,j) = 255;
        elseif g(i,j) <= 0
            g(i,j) = 0;
        end
    end
end
g = uint8(g);
end   %akhir fungsi
f = imread('c:\image\andri 2.jpg');
g = gaussian(f, 150);
subplot(1,2,1);imshow(f), title('citra masukan')
subplot(1,2,2);imshow(g), title('citra keluaran')

Program garam dan merica dengan fungsi
=================================
function [g] = gamer(f, probabilitas)
if nargin < 2
    probabilitas = 0.05;        % Nilai bawaan
end;
[m, n] = size(f);
g = double(f);
for i=1 : m
    for j=1 : n
        nilai_acak = rand;
        if nilai_acak <= probabilitas / 2
            g(i,j) = 0;
        elseif (nilai_acak > probabilitas / 2) && ...
               (nilai_acak <= probabilitas)
            g(i,j) = 255;
        end
    end
end
g = uint8(g);
end   %akhir fungsi
f = imread('c:\image\andri 2.jpg');
g = gamer(f, 0.05);
subplot(1,2,1);imshow(f), title('citra masukan')
subplot(1,2,2);imshow(g), title('citra keluaran')

Program derau periodik dengan fungsi
=======================================================
function [G] = drperiodik(F, a, bx, by)
% DRPERIODIK Menghasilkan citra yang teklah ditambahi
%    derau periodis.
%
%    F = Citra berskala keabuan
%    b = penegas derau (1, 2, 3, ...)
%    ax dan ay menentukan kemiringan derau

if nargin < 4
    a = 3; bx = 3; by = 5;
end

[m, n] = size(F);
for i=1:m
    for j=1:n
        X(i,j) = j;
        Y(i,j) = i;
    end
end
derau = a  * sin(X/bx + Y/by) + 1;
G = uint8(double(F) + derau);
end    %akhir fungsi

f = imread('c:\image\aa.jpg');
g = drperiodik(f, 10,3,4);
subplot(1,2,1);imshow(f), title('citra masukan')
subplot(1,2,2);imshow(g), title('citra keluaran')


program penghilangan derau rerata aritmatik dengan fungsi
=============================================
function [G] = filarithmean(F, ukuran)
%    FILARITHMEAN Melakukan penghilangan derau dengan
%     menggunakan filter rerata aritmetik
%     F = Citra berskala keabuan
%     ukuran = ukuran jendela
%     G = Citra hasil pemrosesan

if nargin < 2
    ukuran = 5;
end
[m, n] = size(F);

setengah = floor(ukuran / 2);
F = double(F);
G = zeros(m-2*setengah, n-2*setengah);
for i=1+setengah : m-setengah
    for j=1+setengah: n-setengah
        jum = 0;
        for p = -setengah : setengah
            for q = -setengah : setengah
                jum = jum + F(i+p, j+q);
            end
        end
       
        G(i-setengah, j-setengah) = jum / (ukuran * ukuran);
    end
end
G = uint8(G);
end    %akhir fungsi
F = imread('C:\Image\aan.png');
G = filarithmean(F);
subplot(1,2,1);imshow(F)
subplot(1,2,2);imshow(G)

Program filter harmonik dengan fungsi
=======================================================
function [G] = filharmonik(F, ukuran)
% FILHARMONIK Melakukan penghilangan derau dengan
%     menggunakan filter rerata harmonik
%     F = Citra berskala keabuan
%     ukuran = ukuran jendela
%     G = Citra hasil pemrosesan

if nargin < 2
    ukuran = 3;
end
[m, n] = size(F);

setengah = floor(ukuran / 2);
F = double(F);
G = zeros(m-2*setengah, n-2*setengah);
for i=1+setengah : m-setengah
    for j=1+setengah: n-setengah
        jum = 0;
        for p = -setengah : setengah
            for q = -setengah : setengah
                jum = jum + 1 / F(i+p, j+q);
            end
        end
       
        G(i-setengah, j-setengah) = (ukuran * ukuran) / jum;
    end
end

G = uint8(G);
end    %akhir fungsi
F = imread('C:\Image\aan.png');
G = filharmonik(F, 5);
subplot(1,2,1);imshow(F)
subplot(1,2,2);imshow(G)



Salah satu hasil dari coding diatas adalah :

Sunday, July 30, 2017 July 30, 2017 - 3 komentar

3 comments:

  1. mantap bro makasih info nya.
    bermanffat banget

    ReplyDelete
    Replies
    1. Oke Bro..
      Jika Butuh Materi Tentang Informatika atau Ilmu berhubungan dengan komputer silahkan di request aja disini kita banyak materi tersebut hanya belum sempat untuk memposting, nanti kita usahakan posting yang telah di request terlebih dahulu.

      Terima Kasih :)

      Delete
  2. Mantap materinya. Share tentang segmentasi citra dan aplikasinya bro

    ReplyDelete