15
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

Analisis Konten Multimedia.docx

Embed Size (px)

Citation preview

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

E. Hasil

Coding :

unit CariCitra;

interface

uses

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.