• Tidak ada hasil yang ditemukan

Implementasi Content Based Image Retrieval Berbasis Fitur Bentuk dan Warna Menggunakan Operator Sobel dan Deteksi Warna HSV

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Content Based Image Retrieval Berbasis Fitur Bentuk dan Warna Menggunakan Operator Sobel dan Deteksi Warna HSV"

Copied!
13
0
0

Teks penuh

(1)

DAFTAR PUSTAKA

Acharya, T., & Ray, A. K. 2005.

Image Processing Principles And Applications

.

Canada : John Wiley & Sons Inc., Hooboken, New Jersey.

Ambler, S. W. 2005.

The Elements of UML

2.0 Style

. Cambridge University Press:

Cambridge.

Barus, O. 2011.

Identifikasi Tepi Citra Menggunakan Algoritma Sobel Edge

Detection

. Skripsi. Universitas Sumatera Utara.

Chaudari, R., & Patil, A. M. 2012. Content Based Image Retrieval Using Color And

Shape Features.

International Journal of Advanced Research In Electrical,

Electronics, And Instrumental Engineering

1(5) : 386-392.

Gonzalez, R.C., Woods R.E., & Eddins S.L. 2004.

Digital Image Processing Using

Matlab

. Pearson Prentice Hall, New Jersey.

Hastuti, I., Hariadi, M., & Purnama, I. K. E. 2009. Content Based Image Retrieval

Berdasarkan Fitur Bentuk Menggunakan Metode Gradient Vector Flow

Snake.

Prosiding Seminar Nasional Informatika 2009 (SEMNASIF 2009)

,

pp. 140-145.

Jadhav, S. H., & Ahmed, S. A. 2012. A Content Based image Retrieval System Using

Homogeneity Feature Extraction From Recency-based Retrieved Image

Library.

IOSR Journal of Computer Engineering

7(6) : 13-24.

Karimah, F., U. 2014.

Rancang Bangun Aplikasi Pencarian Citra Batik Besurek

Berbasis Tekstur dengan Metode Gray Level Co-occurance Matrix dan

Euclidean Distance

. Skripsi. Universitas Bengkulu.

Karmilasari & Sumarna, A. 2011. Temu Kenali Citra Berbasis Konten Warna.

Prosiding Seminar Nasional Aplikasi Teknologi Informasi 2011 (SNATI 2011)

,

pp. 112-117.

Khair, O. F. 2013.

Analisis Perbandingan Pendeteksian Tepi Citra dengan Operator

Sobel, Operator Prewitt, dan Operator Modifikasi Sobel

. Skripsi. Universitas

Sumatera Utara.

Kusumaningsih, I. 2009.

Ekstraksi Ciri Warna, Bentuk dan Tekstur Untuk Temu

Kembali Citra Hewan

. Skripsi. Institut Pertanian Bogor.

Larasati, T., Hidayat, B., & Novianty, A. 2012.

Analisis dan Simulasi Image Retrieval

Berdasarkan Ciri Warna Dengan Metode Wavelet

. Skripsi. Institut Teknologi

Telkom Bandung.

Long, F., Zhang, H., & Feng, D. D. 2003.

Fundamentals of Content Based Image

Retrieval,

Technological Fundamentals and

Applications

. NewYork:

Springer-Verlag.

(2)

Putranto, B. Y. B., Hapsari, W., & Wijana, K. 2010. Segmentasi Warna Citra dengan

Deteksi Warna HSV Untuk Mendeteksi Objek.

Jurnal Informatika

6(2) : 1-14.

Rakhmawati, & Puji R. 2013.

Sistem Deteksi Bunga Menggunakan Nilai HSV dari

Citra Mahkota Bunga

. Skripsi. Universitas STIKBANK.

Rapianti, C.L. 2011.

Sistem Informasi Apotek Sehat Farma Langkat

. Skripsi.

Universitas Sumatera Utara.

Sebayang, A. M. S. 2014.

Implementasi Kombinasi Beaufort Cipher dan Affine Cipher

pada Three-Pass Protocol untuk Pengamanan Data

. Skripsi. Universitas

Sumatera Utara.

Setiawan, A. E. 2011.

Perbandingan Content Based Image Retrieval dengan Fitur

Warna Menggunakan Metode Colour Histogram dan Fitur Tekstur

Menggunakan Metode Grey Level Co-Occurence Matrices

. Skripsi.

Universitas Sumatera Utara.

Sutoyo, T., Mulyanto, E., Suhartono, V., Nurhayati, O. D. & Wijanarto. 2009.

Teori

Pengolahan Citra Digital

. ANDI: Yogyakarta.

Syarif, H. 2014.

Content Based Image Retrieval Berbasis Color Histogram Untuk

Pengklasifikasian Ikan Koi Jenis Kohaku

. Skripsi. Universitas Dian

Nuswantoro Semarang.

Vairalkar, M. K., Nimbhorkar, S. U. 2012. Edge Detection of Images Using Sobel

Operator.

International Journal of Emerging Technology and Advanced

Engineering

2(1) : 291-293.

Whitthen, e

t al

. 2004. Metode Desain & Analisis Sistem. Edisi 6. New York :

McGraw-Hill.

Wijaya, E. 2012.

Analisis Intensitas Metode Pendeteksian Tepi Sobel.

Jurnal

Komputer dan Informatika (KOMPUTA)

1(1) : 25-27.

(3)

LISTING PROGRAM

1.

Class sobelMatch.java

import java.awt.image.BufferedImage; import java.io.File;

import java.io.FileOutputStream; import java.io.IOException;

public final class sobelMatch {

public String getValueSobel(File fileImage) throws IOException { String integralPro = "";

double Gx[][], Gy[][], alphaG[][], rgbG[][];

File fileImg = new File(fileImage.getAbsolutePath()); BufferedImage getImg = ImageIO.read(fileImg);

int height = getImg.getHeight(); int width = getImg.getWidth();

int intPro[][] = new int[width][height];

BufferedImage outImg = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);

int[][] alphaGrayValue = new int[width][height]; int[][] rgbGrayValue = new int[width][height]; for(int i=0; i<width; i++){

for(int j=0; j<height; j++){ int pixel = getImg.getRGB(i, j); int a = (pixel>>24)&0xff;

int r = (pixel>>16)&0xff; int g = (pixel>>8)&0xff; int b = pixel&0xff;

alphaGrayValue[i][j] = a;

rgbGrayValue[i][j] = (r+g+b)/3; }

}

Gx = new double[width][height]; Gy = new double[width][height]; alphaG = new double[width][height]; rgbG = new double[width][height]; for (int i=0; i<width; i++) { for (int j=0; j<height; j++) {

if (i==0 || i==width-1 || j==0 || j==height-1) Gx[i][j] = Gy[i][j] = alphaG[i][j] = rgbG[i][j] = 0;

else{

Gx[i][j] = alphaGrayValue[i+1][j-1] + 2*alphaGrayValue[i+1][j] +

alphaGrayValue[i+1][j+1]

- alphaGrayValue[i-1][j-1] - 2*alphaGrayValue[i-1][j]

(4)

Gy[i][j] = alphaGrayValue[i-1][j+1] + 2*alphaGrayValue[i][j+1] +

alphaGrayValue[i+1][j+1]

- alphaGrayValue[i-1][j-1] - 2*alphaGrayValue[i][j-1]

- alphaGrayValue[i+1][j-1]; alphaG[i][j] =

Math.abs(Gx[i][j])+Math.abs(Gy[i][j]);

Gx[i][j] = rgbGrayValue[i+1][j-1] +

2*rgbGrayValue[i+1][j] + rgbGrayValue[i+1][j+1] - rgbGrayValue[i-1][j-1] - 2*rgbGrayValue[i-1][j] - rgbGrayValue[i-1][j+1];

Gy[i][j] = rgbGrayValue[i-1][j+1] +

2*rgbGrayValue[i][j+1] + rgbGrayValue[i+1][j+1] - rgbGrayValue[i-1][j-1] - 2*rgbGrayValue[i][j-1] - rgbGrayValue[i+1][j-1];

rgbG[i][j] = Math.abs(Gx[i][j]) + Math.abs(Gy[i][j]);

}

int NewColor = ((int)alphaG[i][j]<<24) |

((int)rgbG[i][j]<<16) | ((int)rgbG[i][j]<<8) | (int)rgbG[i][j]; outImg.setRGB(i, j, NewColor);

} }

FileOutputStream outFile = new

FileOutputStream("sobel"+fileImage.getName()); ImageIO.write(outImg, "jpg", outFile); for(int i=0 ; i<width ; i++){

int temp = 0;

for(int j=0 ; j<height ; j++){ temp += intPro[i][j]; }

}

for(int i=0 ; i<height ; i++){ int temp=0;

for(int j=0 ; j<width ; j++){ temp += intPro[j][i]; }

if(i==height-1)

integralPro += Integer.toString(temp); else

integralPro += Integer.toString(temp)+" "; }

return integralPro; }

(5)

2.

Class hsvMatch.java

import java.awt.image.BufferedImage; import java.io.File;

import java.io.IOException; import java.text.DecimalFormat; import java.text.NumberFormat;

public class hsvMatch {

public double[] getValueHSV(File fileImg) throws IOException{ double[] result = new double[162];

NumberFormat nf =

NumberFormat.getNumberInstance(Locale.getDefault()); DecimalFormat df = (DecimalFormat) nf;

df.applyPattern("#.#####"); Arrays.fill(result, 0); double[] hBinValue = {

0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.00000,0.000 00,

0.05882,0.05882,0.05882,0.05882,0.05882,0.05882,0.05882,0.05882,0.058 82,

0.11765,0.11765,0.11765,0.11765,0.11765,0.11765,0.11765,0.11765,0.117 65,

0.23529,0.23529,0.23529,0.23529,0.23529,0.23529,0.23529,0.23529,0.235 29,

0.29412,0.29412,0.29412,0.29412,0.29412,0.29412,0.29412,0.29412,0.294 12,

0.35294,0.35294,0.35294,0.35294,0.35294,0.35294,0.35294,0.35294,0.352 94,

0.41176,0.41176,0.41176,0.41176,0.41176,0.41176,0.41176,0.41176,0.411 76,

0.47059,0.47059,0.47059,0.47059,0.47059,0.47059,0.47059,0.47059,0.470 59,

0.52941,0.52941,0.52941,0.52941,0.52941,0.52941,0.52941,0.52941,0.529 41,

0.58824,0.58824,0.58824,0.58824,0.58824,0.58824,0.58824,0.58824,0.588 24,

(6)

0.70588,0.70588,0.70588,0.70588,0.70588,0.70588,0.70588,0.70588,0.705 88,

0.76471,0.76471,0.76471,0.76471,0.76471,0.76471,0.76471,0.76471,0.764 71,

0.82353,0.82353,0.82353,0.82353,0.82353,0.82353,0.82353,0.82353,0.823 53,

0.88235,0.88235,0.88235,0.88235,0.88235,0.88235,0.88235,0.88235,0.882 35,

0.94118,0.94118,0.94118,0.94118,0.94118,0.94118,0.94118,0.94118,0.941 18,

1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.000 00

};

double[] sBinValue = {

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

(7)

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00,

0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00

};

double[] vBinValue = {

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

(8)

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00,

};

BufferedImage getImg = ImageIO.read(fileImg); int height = getImg.getHeight();

int width = getImg.getWidth();

BufferedImage outImg = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);

int counter=0;

for(int i=0; i<width; i++){ for(int j=0; j<height; j++){

int pixel = getImg.getRGB(i, j); double a = (pixel>>24)&0xff; double r = (pixel>>16)&0xff; double g = (pixel>>8)&0xff; double b = pixel&0xff;

double r1 = Double.valueOf(df.format(r/255)); double g1 = Double.valueOf(df.format(g/255)); double b1 = Double.valueOf(df.format(b/255)); double cMax = Math.max((Math.max(r1, g1)), b1); double cMin = Math.min((Math.min(r1, g1)), b1); double delta = Double.valueOf(df.format(cMax - cMin));

(9)

vValue = cMax*100.0; if(cMax == 0){ sValue = 0; }

else{

sValue = (delta/cMax)*100; }

if(delta==0){ hValue = 0.0; }

else{

if(cMax == r1){

hValue = 60*( ((g1-b1)/delta)%6 ); }

else if(cMax == g1){

hValue = 60*( ((b1-r1)/delta)+2 ); }

else if(cMax == b1){

hValue = 60*( ((r1-g1)/delta)+4 ); }

else{

hValue = 0.0; }

}

if(hValue<0){ hValue+=360.0; }

hValue = Double.valueOf(df.format(hValue)); sValue = Double.valueOf(df.format(sValue)); vValue = Double.valueOf(df.format(vValue)); hValue = Math.round(hValue*18/360);

sValue = Math.round(sValue*3/100); vValue = Math.round(vValue*3/100);

hValue = Double.valueOf(df.format(hValue/17)); sValue = Double.valueOf(df.format(sValue/2)); vValue = Double.valueOf(df.format(vValue/2)); if(sValue>1.00000){

sValue=1.0; }

if(hValue>1.00000){

hValue = Double.valueOf(df.format(hValue - 1.00000));

}

if(vValue>1.00000){ vValue=1.0; }

boolean found=false;

(10)

break; }

} } } } }

double temp=0;

for(int i=0 ; i<162 ; i++){

System.out.println("Bin ke-"+(i+1)+" Nilai Kuantisasi="+result[i]); result[i]=Double.valueOf

(df.format(result[i]*100/(width*height))); }

return result; }

}

3.

Class euclideanDistance.java

import java.text.DecimalFormat; import java.util.Locale;

public class euclideanDistance { NumberFormat nf =

NumberFormat.getNumberInstance(Locale.getDefault()); DecimalFormat df = (DecimalFormat) nf;

public double matchSobelValue(String val1, String val2){ double result=0, max;

double var1, var2, temp=0;

String[] perDig1 = val1.split(" "); String[] perDig2 = val2.split(" "); if(perDig1.length >= perDig2.length) max = perDig1.length;

else

max = perDig2.length; for(int i=0 ; i<max ; i++){ if(i>perDig1.length-1){ var1 = 0;

} else{

var1 = Integer.parseInt(perDig1[i]); }

if(i>perDig2.length-1){ var2 = 0;

} else{

(11)

temp += Math.pow(var1-var2,2); }

return result; }

public double matchHSVValue(double[] val1, double[] val2){ df.applyPattern("#.#####");

double result, temp=0;

for(int i=0 ; i<val1.length ; i++){ temp+=Math.pow(val1[i]-val2[i], 2); }

result = Double.valueOf(df.format(Math.sqrt(temp))); return result;

} }

4.

Class dbConnection.java

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;

public class dbConnection {

private Connection DBConnection; public Connection connect() { try {

Class.forName("org.sqlite.JDBC");

System.out.println("Connection Success"); } catch(ClassNotFoundException cnfe) {

System.out.println("Connection Fail" + cnfe); }

try {

DBConnection =

DriverManager.getConnection("jdbc:sqlite:db_cbir.sqlite"); System.out.println("Database Connected"); } catch (SQLException se) {

System.out.println("No Database" + se); }

return DBConnection; }

}

(12)

D

AFTAR

R

IWAYAT

H

IDUP

C

URRICULUM

V

ITAE

DATAPRIBADI

Nama Lengkap : Rafika Asnur Lubis

Tempat / Tgl. Lahir : Kisaran / 27 September 1993

Jenis Kelamin : Perempuan

Agama : Islam

Kebangsaan : Indonesia

Alamat : Jalan Pembangunan USU No.12 Medan

Telepon : +6285270589027

Tinggi / Berat : 159 cm / 48 kg

Email : rafika.asnur@gmail.com

KEMAMPUAN

Bahasa : Bahasa Indonesia, Bahasa Inggris

Bahasa Pemrograman : Java, PHP

Database : MySQL, SQLite

Lainnya : HTML, CSS, Photoshop, Ms. Office, Adobe Flash

PENDIDIKANFORMAL

[ 2011

2015 ]

Implementasi Content Based Image Retrieval Berbasis Fitur Bentuk dan Warna Menggunakan Operator Sobel dan Deteksi Warna HSV

S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara

[ 2008

2011 ]

SMA Negeri 1 Kisaran

[ 2005

2008 ]

SMP Negeri 1 Kisaran

[ 1999

2005 ]

SD Swasta Diponegoro Kisaran

[ 1997

1999 ]

(13)

PENDIDIKANNON-FORMAL

[ 2006

2008 ]

Lembaga Bimbingan Belajar Primagama, Kisaran.

[ 2008

2010 ]

Lembaga Bimbingan Belajar Medica, Kisaran.

[ 2010

2011 ]

Lembaga Bimbingan Belajar Ganesha Operation, Kisaran.

PENGALAMANORGANISASIDANRIWAYATKEPANITIAAN

 Anggota Konsumsi PHBI Al-Luqman SMA Negeri 1 Kisaran [2009 - 2011]

 Anggota Keputrian UKMI Al-Khuwarizmi Fasilkom-TI USU

[2012 - 2013]

 Anggota Konsumsi di PORSENI IMILKOM [2013]

 Anggota Humas di Penerimaan Mahasiswa Baru S1 Ilmu Komputer USU [2013]

PENGALAMANKERJA

 Praktek Kerja Lapangan di Bank Indonesia, Medan [2014]

PELATIHAN/TRAINING&WORKSHOP

 Peserta Workshop Membuat Desain Media Publikasi Poster, UKMI Al-Khuwarizmi Fasilkom-TI

USU, Medan [2012]

 Peserta Workshop Linux Installation & Configure the Application, Kelompok Study Linux USU,

Medan [2012]

 Peserta Workshop Pengenalan Android,Artechno Festival, Medan [2011]

 Peserta Workshop Animation for Fun, Artechno Festival, Medan [2011]

 Peserta Workshop Animation Revolution, DreamArch Animation, Medan [2011]

SEMINAR

 Peserta Seminar Nasional Literasi Informasi (SENARAI), FASILKOM-TI USU, Medan [2014]

 Peserta Seminar Mengubah Persepsi Profesional Indonesia di Global Market, HIMATIF USU,

Medan [2014]

 Peserta Seminar Nasional “Creative Animation & Gaming Industry”, HIMATIF USU, Medan

[2013]

 Peserta Seminar Motivasi “We Can Speak English Now!”, SGC USU, Medan [2013]

 Peserta Seminar Nasional “Teknologi Cloud Computing dalam Menghadapi Persaingan Global”,

Referensi

Dokumen terkait

Satellite radiothermovision is a set of processing techniques applicable for multisource data of radiothermal monitoring of ocean- atmosphere system, which allows

Anggaran Dasar WIKA INTRADE telah mengalami beberapa kali perubahan, terakhir mencakup perubahan nilai nominal modal dasar, dengan Akta Notaris Sri Ismiati, SH., No.46 tanggal 14

Selanjutnya pemikiran tentang tujuan pendidikan Islam menurut Al-Ghazali dapat diklasifikasikan menjadi tiga, yaitu: Tujuan mempelajari ilmu pengetahuan semata-mata

Seiring dengan berjalannya waktu, penggunaan UHF repeater konvensional dapat menyelesaikan masalah jangkauan dan kuliatas namun masih meninggalkan masalah lagi dimana

Comme nous le soulignerons pour comprendre l’identité du mouvement, nous constatons qu’au- delà du caractère international de leur lutte, de l’accent mis sur le lien entre les

Dengan demikian dapat disimpulkan bahwa strategi card sort dapat meningkatkan hasil belajar matematika kelas V materi sifat-sifat bangun datar di MI Islamiyah Tanjung Klego,

Mulai dari situlah subjek sudah jarang pulang kerumah dan bermain dengan temannya di terminal, karena subjek tertarik dengan kehidupan temannya yang bebas, di

Kebutuhan akan informasi laba untuk peramalan keuangan masa depan ini mendorong manajemen untuk melakukan perataan laba (income smoothing) yang merupakan salah satu bentuk