Class hsvMatch.java Implementasi Content Based Image Retrieval Berbasis Fitur Bentuk dan Warna Menggunakan Operator Sobel dan Deteksi Warna HSV

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[] getValueHSVFile fileImg throws IOException{ double[] result = new double[162]; NumberFormat nf = NumberFormat.getNumberInstanceLocale.getDefault; DecimalFormat df = DecimalFormat nf; df.applyPattern.; Arrays.fillresult, 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, 0.64706,0.64706,0.64706,0.64706,0.64706,0.64706,0.64706,0.64706,0.647 06, Universitas Sumatera Utara 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, 0.00000,0.00000,0.00000,0.50000,0.50000,0.50000,1.00000,1.00000,1.000 00, Universitas Sumatera Utara 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, 0.00000,0.50000,1.00000,0.00000,0.50000,1.00000,0.00000,0.50000,1.000 00, Universitas Sumatera Utara 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.readfileImg; int height = getImg.getHeight; int width = getImg.getWidth; BufferedImage outImg = new BufferedImagewidth, height, BufferedImage.TYPE_BYTE_GRAY; int counter=0; forint i=0; iwidth; i++{ forint j=0; jheight; j++{ int pixel = getImg.getRGBi, j; double a = pixel240xff; double r = pixel160xff; double g = pixel80xff; double b = pixel0xff; double r1 = Double.valueOfdf.formatr255; double g1 = Double.valueOfdf.formatg255; double b1 = Double.valueOfdf.formatb255; double cMax = Math.maxMath.maxr1, g1, b1; double cMin = Math.minMath.minr1, g1, b1; double delta = Double.valueOfdf.formatcMax - cMin; double hValue,sValue,vValue; Universitas Sumatera Utara vValue = cMax100.0; ifcMax == 0{ sValue = 0; } else{ sValue = deltacMax100; } ifdelta==0{ hValue = 0.0; } else{ ifcMax == r1{ hValue = 60 g1-b1delta6 ; } else ifcMax == g1{ hValue = 60 b1-r1delta+2 ; } else ifcMax == b1{ hValue = 60 r1-g1delta+4 ; } else{ hValue = 0.0; } } ifhValue0{ hValue+=360.0; } hValue = Double.valueOfdf.formathValue; sValue = Double.valueOfdf.formatsValue; vValue = Double.valueOfdf.formatvValue; hValue = Math.roundhValue18360; sValue = Math.roundsValue3100; vValue = Math.roundvValue3100; hValue = Double.valueOfdf.formathValue17; sValue = Double.valueOfdf.formatsValue2; vValue = Double.valueOfdf.formatvValue2; ifsValue1.00000{ sValue=1.0; } ifhValue1.00000{ hValue = Double.valueOfdf.formathValue - 1.00000; } ifvValue1.00000{ vValue=1.0; } boolean found=false; forint x=0 ; x162 ; x++{ ifhValue == hBinValue[x]{ ifsValue == sBinValue[x]{ ifvValue == vBinValue[x]{ Universitas Sumatera Utara break; } } } } } } double temp=0; forint i=0 ; i162 ; i++{ System.out.printlnBin ke-+i+1+ Nilai Kuantisasi=+result[i]; result[i]=Double.valueOf df.formatresult[i]100widthheight; } return result; } }

3. Class euclideanDistance.java