Studi Informatika

Panduan Pembelajaran Ilmu Teknologi & Komputer

Sunday, July 30, 2017

APLIKASI TEMU KEMBALI CITRA



Yang akan dibahas pada materi ini :

  • Pengantar Aplikasi Temu Kembali Citra
  • Penghitungan jarak antara Dua Citra
Materi diatas insya allah akan di update

Coding Octave

Program Temu kembali citra   masih debug
=========================================
% DBFITUR Berguna untuk menghitung fitur
%     menggunakan momen Zernike dan kemudian
%     menyimpannya ke dalaa file .MAT
% Citra yang akan menjadi acuan
Citra{1} = 'C:\Image\ikan-4.png';
Citra{2} = 'C:\Image\ikan-2.png';
Citra{3} = 'C:\Image\ikan-3.png';
Citra{4} = 'C:\Image\ikan-1.png';
Citra{5} = 'C:\Image\guppi-4.png';
Citra{6} = 'C:\Image\guppi-2.png';
Citra{7} = 'C:\Image\guppi-3.png';
Citra{8} = 'C:\Image\guppi-1.png';
% Proses menghitung momen Zernike
Fitur = [];
for i=1 : length(Citra)
    disp(sprintf('Menghitung fitur citra %s', Citra{i}));
    Image = im2bw(imread(Citra{i}), 0.5);
    Z.momen = zermoment(Image, 10);
    Z.nama = Citra(i);
    Fitur(i).momen = Z.momen;
    Fitur(i).nama = Z.nama;
end
% Simpan ke file dbfitur.mat
save('dbfitur', 'Fitur');
clear Citra Fitur;

function queryzer2(berkas)
%    QUERYZER2 Berguna untuk melakukan query dengan
%     menggunakan momen Zernike dengan membaca
%     data acuan dari file dbfitur.
%     load dbfitur : Memuat database fitur
%    Proses momen Zernike dan hitung jarak City-block
Query = im2bw(imread(berkas), 0.5);
ZQuery = zermoment(Query, 10);
Hasil = [];
jumFitur = length(Fitur(1).momen);
for i=1 : length(Fitur)
    nama = Fitur(i).nama;
    jarak = 0;
    for j=1 : jumFitur
        jarak = jarak + abs(ZQuery(j) - Fitur(i).momen(j));
    end
    Hasil(i).nama = Fitur(i).nama;
    Hasil(i).jarak = jarak;
end
% Urutkan data pada array Hasil
jum = length(Hasil);
for p = 2: jum
    x = Hasil(p);
    % Sisipkan x ke dalam data[1..p-1]
    q = p - 1;
    ketemu = 0;
    while ((q >= 1) && (~ketemu))
        if (x.jarak < Hasil(q).jarak)
            Hasil(q+1) = Hasil(q);
            q = q - 1;
        else
            ketemu = 1;
        end  
        Hasil(q+1) = x;
    end
end
% Tampilkan hasil secara visual
disp('Hasil pencocokan dapat dilihat pada jendela gambar');
subplot(3,3,1);
G = imread(berkas); imshow(G);
title('Query');
for i=1 : jum
   subplot(3,3, i+1);
   G = imread(char(Hasil(i).nama)); imshow(G);
   title(num2str(Hasil(i).jarak));
end
end   %akhir fungsi
queryzer2('C:\Image\ikan-1.png')
Sunday, July 30, 2017 July 30, 2017 - tanpa komentar

No comments:

Post a Comment