Analisis Konten Multimedia
“Content Based Image Retrieval (CBIR)”
Dosen:
Dr. I GustiPutuAstoBuditjahjanto, S.T., M.T
Oleh :
Za’imah Permatasari 125874211
JURUSAN TEKNIK ELEKTRO
FAKKULTAS TEKNIK
UNIVERSITAS NEGERI SURABAYA
2014 – 2015
Kata Pengantar
Puji syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa yang telah
memberikan rahmat serta karunia-Nya sehingga penulis telah menyelesaiakan laporan ini
tepat pada waktunya.Laporan Analisis Konten Multimedia.
Laporan ini berisikan tentang“Content Based Image Retrieval (CBIR) Menggunakan
Delphi XE2”.
Penulis menyadari bahwa laporan ini masih jauh dari sempurna, oleh karena itu kritik
dan saran dar semua pihak yang bersifat membangun selalu penulis harapkan demi
kesempurnaan laporan ini.
Akhir kata, penulis sampaikan terima kasih kepada semua pihak yang telah berperan
serta dalam penyusunan laporan ini dari awal sampai akhir.Semoga Tuhan Yang Maha Esa
senantiasa meridhai segala usaha kita.
Surabaya, 17 Juni 2015
Penulis
A. JUDUL
“Content Based Image Retrieval (CBIR) Menggunakan Delphi XE2”
B. TUJUAN
- Memahami Content Based Image Retrieval (CBIR) Menggunakna Delphi XE2.- Menganasilis citra
C. Dasar Teori
1. Content Based Image Retrieval System (CBIR)
Content Based Image Retrieval System (CBIR) merupakan suatu teknik pencarian kembali gambar yang mempunyai kemiripan karakteristik atau content dari sekumpulan gambar. Proses umum dari CBIR adalah gambar yang menjadi query dilakukan proses ekstraksi fitur, begitu halnya dengan gambar yang ada pada sekumpulan gambar juga dilakukan proses seperti pada gambar query. Fitur gambar yang dapat digunakan untuk retrieval pada system ini misalnya histogram, susunan warna, teksture, dan shape, tipe spesifik dari obyek, tipe event tertentu, nama individu, lokasi, emosi [. Fokus pembahasan pada bagian ini adalah penggunaan color histogram pada image retrieval.
2. Delphi XE@
Delphi adalah sebuah perangkat lunak pengembangan program yang terintegrasi, yang meliputi fungsi untuk penulisan program, kompilasi, sampai dengan pelacakan kesalahan (debugging) menurut Balza (dalam Erdiyanto, 2012:9).Delphi menggunakan bahasa pemrograman Pascal yang berorientasi objek. Pada penelitian akan menggunakan Borland Delphi versi XE2.
D. ALAT DAN BAHAN1. /PC2. Aplikasi Delphi XE23. File Image
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.ExtDlgs;
const
ORDE: Integer = 10;//Orde momen Zernike
FOLDER: String = 'C:\DelCitra\Gambar\';
DAFTAR_Pemandangan : array [0..21] of String
= ('1.bmp', '2.bmp', '3.bmp', '4.bmp', '5.bmp',
'6.bmp', '7.bmp', '8.bmp', '9.bmp', '10.bmp',
'11.bmp', '12.bmp', '13.bmp','14.bmp', '15.bmp',
'16.bmp', '17.bmp', '18.bmp', '19.bmp','20.bmp',
'21.bmp', '22.bmp');
DAFTAR_CARI : array [0..21] of String
= ('1.bmp','2.bmp','3.bmp','4.bmp','5.bmp',
'6.bmp','7.bmp', '8.bmp', '9.bmp', '10.bmp',
'11.bmp', '12.bmp', '13.bmp','14.bmp', '15.bmp',
'16.bmp', '17.bmp', '18.bmp', '19.bmp','20.bmp',
'21.bmp', '22.bmp');
type
TFormCariCitra = class(TForm)
ImageHasil1: TImage;
ImageHasil2: TImage;
ImageHasil3: TImage;
ButtonAmbilCitra: TButton;
OpenPictureDialogCitra: TOpenPictureDialog;
Panel1: TPanel;
ImageCari: TImage;
LabelHasil1: TLabel;
LabelHasil2: TLabel;
LabelHasil3: TLabel;
Analisis: TButton;
CariCitra: TButton;
procedure FormCreate(Sender: TObject);
procedure ButtonAmbilCitraClick(Sender: TObject);
procedure CariCitraClick(Sender: TObject);
procedure AnalisisClick(Sender: TObject);
private
{ Private declarations }
JumlahKoefisien : Integer;
KoefZernike : array [0..39, 0..46] of Real;
public
{ Public declarations }
end;
var
FormCariCitra: TFormCariCitra;
implementation
{$R *.dfm}
uses UZernike;
//uses UHistogram;
//procedure TFormCariCitra.AnalisisClick(Sender: TObject);
//var
// Histogram : THistogram;
//begin
// //Tampilkan histogram citra
// Histogram := THistogram.Create;
// Histogram.Proses(ImageHasil,ImageHasil);
// Histogram.Free;
//end;
procedure TFormCariCitra.AnalisisClick(Sender: TObject);
var
Baris, Kolom : Integer;
Warna : Longint;
R,G,B, VRGB, Grey, Intensitas : Byte;
WaktuMulai,WaktuSelesai : TDate;
begin
// Lakukan pemrosesan
WaktuMulai := Time; // Catat waktu mulai
for Baris := 0 to ImageHasil1.Picture.Bitmap.Height - 1 do
for Kolom := 0 to ImageHasil1.Picture.Bitmap.Width - 1 do
begin
Warna := ColorToRGB(
ImageHasil1.Picture.Bitmap.Canvas.Pixels[Kolom,Baris]);
R := GetRValue(Warna);
G := GetgValue(Warna);
B := GetbValue(Warna);
//VRGB := (Warna);
VRGB := (R+G+B);
//Grey := (Warna) div 3;
Intensitas := (R+G+B)div 3;
// Warna hasil
ImageHasil1.Picture.Bitmap.Canvas.Pixels[Kolom,Baris] :=
RGB(Intensitas, Intensitas, Intensitas);
end;
// Tampilkan citra hasil
ImageHasil1.Visible := True;
// Tampilkan tombol
Analisis.Enabled := True;
//Tampilkan Informasi Citra
LabelHasil1.Caption := 'Merah ='+IntToStr(R);
end;
procedure TFormCariCitra.ButtonAmbilCitraClick(Sender: TObject);
type
THasil = record
Nama : String;
Jarak : Real;
end;
var
I, J : Integer;
Jarak : Real;
KoefRef : TKoefZernike;
Hasil : array of THasil;
Ditemukan: Boolean;
X : THasil;
begin
if OpenPictureDialogCitra.Execute then
ImageCari.Picture.LoadFromFile(
OpenPictureDialogCitra.FileName);
ImageCari.Refresh;
end;
procedure TFormCariCitra.CariCitraClick(Sender: TObject);
type
THasil = record
Nama : String;
Jarak : Real;
end;
var
I, J : Integer;
Jarak : Real;
KoefRef : TKoefZernike;
Hasil : array of THasil;
Ditemukan: Boolean;
X : THasil;
begin
// Proses pencarian
// 1. Hitung jarak Euclidean
KoefRef := MomenZernike(ImageCari, ORDE);
SetLength(Hasil, Length(DAFTAR_Pemandangan));
for I := 0 to Length(DAFTAR_Pemandangan) - 1 do
begin
Jarak := 0;
for J := 0 to JumlahKoefisien - 1 do
Jarak := Jarak + Abs(KoefRef[J] - KoefZernike[I,J]);
Hasil[I].Nama := DAFTAR_Pemandangan[I];
Hasil[I].Jarak := Jarak;
end;
// 2. Lakukan pengurutan
for I := 0 to Length(DAFTAR_Pemandangan) - 1 do
begin
X := Hasil[I];
// Sisipkan x ke dalam data[0..p-1]
J := I - 1;
Ditemukan := False;
while ((J >= 0) and (not Ditemukan)) do
begin
if X.Jarak < Hasil[J].Jarak then
begin
Hasil[J+1] := Hasil[J];
J := J - 1;
end
else
Ditemukan := True;
Hasil[J+1] := X;
end
end;
// 3. Tampilkan hasil
ImageHasil1.Picture.LoadFromFile(FOLDER + Hasil[0].Nama);
LabelHasil1.Caption := 'Ranking 1: ' + Chr(10) + Chr(10) +
'File : ' + Hasil[0].Nama + Chr(10) +
'Jarak : ' + FloatToStr(Hasil[0].Jarak);
ImageHasil2.Picture.LoadFromFile(FOLDER + Hasil[1].Nama);
LabelHasil2.Caption := 'Ranking 2: ' + Chr(10) + Chr(10) +
'File : ' + Hasil[1].Nama + Chr(10) +
'Jarak : ' + FloatToStr(Hasil[1].Jarak);
ImageHasil3.Picture.LoadFromFile(FOLDER + Hasil[2].Nama);
LabelHasil3.Caption := 'Ranking 3: ' + Chr(10) + Chr(10) +
'File : ' + Hasil[2].Nama + Chr(10) +
'Jarak : ' + FloatToStr(Hasil[2].Jarak);
end;
procedure TFormCariCitra.FormCreate(Sender: TObject);
var
JumlahCitra,
I, J : Integer;
ImageTmp : TImage;
Koef : TKoefZernike;
begin
// Bentuk koefisien Zernike untuk 10 citra di DaftarHewan
ImageTmp := TImage.Create(Self);
JumlahCitra := Length(DAFTAR_Pemandangan);
for I := 0 to JumlahCitra - 1 do
begin
ImageTmp.Picture.LoadFromFile(FOLDER + DAFTAR_Pemandangan[I]);
Koef := MomenZernike(ImageTmp, ORDE);
JumlahKoefisien := Length(Koef);
for J := 0 to JumlahKoefisien - 1 do
KoefZernike[I,J] := Koef[J];
end;
ImageTmp.Free;
// Kosongkan Label
LabelHasil1.Caption := '';
LabelHasil2.Caption := '';
LabelHasil3.Caption := '';
end;
end.
Top Related