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

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 getValueSobelFile fileImage throws IOException { String integralPro = ; double Gx[][], Gy[][], alphaG[][], rgbG[][]; File fileImg = new FilefileImage.getAbsolutePath; BufferedImage getImg = ImageIO.readfileImg; int height = getImg.getHeight; int width = getImg.getWidth; int intPro[][] = new int[width][height]; BufferedImage outImg = new BufferedImagewidth, height, BufferedImage.TYPE_BYTE_GRAY; int[][] alphaGrayValue = new int[width][height]; int[][] rgbGrayValue = new int[width][height]; forint i=0; iwidth; i++{ forint j=0; jheight; j++{ int pixel = getImg.getRGBi, j; int a = pixel240xff; int r = pixel160xff; int g = pixel80xff; int b = pixel0xff; alphaGrayValue[i][j] = a; rgbGrayValue[i][j] = r+g+b3; } } Gx = new double[width][height]; Gy = new double[width][height]; alphaG = new double[width][height]; rgbG = new double[width][height]; for int i=0; iwidth; i++ { for int j=0; jheight; 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] + 2alphaGrayValue[i+1][j] + alphaGrayValue[i+1][j+1] - alphaGrayValue[i-1][j-1] - 2alphaGrayValue[i- 1][j] - alphaGrayValue[i-1][j+1]; Universitas Sumatera Utara Gy[i][j] = alphaGrayValue[i-1][j+1] + 2alphaGrayValue[i][j+1] + alphaGrayValue[i+1][j+1] - alphaGrayValue[i-1][j-1] - 2alphaGrayValue[i][j-1] - alphaGrayValue[i+1][j-1]; alphaG[i][j] = Math.absGx[i][j]+Math.absGy[i][j]; Gx[i][j] = rgbGrayValue[i+1][j-1] + 2rgbGrayValue[i+1][j] + rgbGrayValue[i+1][j+1] - rgbGrayValue[i-1][j-1] - 2rgbGrayValue[i-1][j] - rgbGrayValue[i-1][j+1]; Gy[i][j] = rgbGrayValue[i-1][j+1] + 2rgbGrayValue[i][j+1] + rgbGrayValue[i+1][j+1] - rgbGrayValue[i-1][j-1] - 2rgbGrayValue[i][j-1] - rgbGrayValue[i+1][j-1]; rgbG[i][j] = Math.absGx[i][j] + Math.absGy[i][j]; } int NewColor = intalphaG[i][j]24 | intrgbG[i][j]16 | intrgbG[i][j]8 | intrgbG[i][j]; outImg.setRGBi, j, NewColor; } } FileOutputStream outFile = new FileOutputStreamsobel+fileImage.getName; ImageIO.writeoutImg, jpg, outFile; forint i=0 ; iwidth ; i++{ int temp = 0; forint j=0 ; jheight ; j++{ temp += intPro[i][j]; } } forint i=0 ; iheight ; i++{ int temp=0; forint j=0 ; jwidth ; j++{ temp += intPro[j][i]; } ifi==height-1 integralPro += Integer.toStringtemp; else integralPro += Integer.toStringtemp+ ; } return integralPro; } } Universitas Sumatera Utara

2. Class hsvMatch.java