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