Selanjutnya kita membahas aplikasi temu kembali citra pada pengolahan citra digital, lansung saja admin lampirkan coding octave pada aplikasi temu kembali citra.
Materi Sebelumnya:
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')
=========================================
% 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')
Terima Kasih dan Semangat Belajar
Tidak ada komentar:
Posting Komentar