You are on page 1of 9

1.

Load

Sourcode :

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
try {
image = ImageIO.read(input);
imageIcon = new ImageIcon(image);
jLabel1.setIcon(imageIcon);
} catch (IOException ex){
Logger.getLogger (DeteksiTepiGambar.class.getName()).log(Level.SEVERE, null, ex);
}
}
Analisa :

2. Greyscale

Sourcode :

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:


try {

image = ImageIO.read(input);

width = image.getWidth();

height = image.getHeight();

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

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

Color w = new Color (image.getRGB(i,j));

int red = (int)(w.getRed());

int green = (int)(w.getGreen());

int blue = (int)(w.getBlue());

int xg = (int) ((red+green+blue)/3);

Color newColor = new Color (xg,xg,xg);

image.setRGB (i,j,newColor.getRGB());

imageIcon = new ImageIcon (image);

jLabel1.setIcon(imageIcon);

} catch (IOException ex) {

Logger.getLogger(DeteksiTepiGambar.class.getName()).log(Level.SEVERE, null, ex);

Analisa :
3. Metode Robert

Sourcode :

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
File input = new File (srcIm);
width = image.getWidth();
height = image.getHeight();

for (int i = 1; i < width-1; i++){


for (int j = 1; j < height-1; j++){
Color w1 = new Color (image.getRGB(i, j));
Color w2 = new Color (image.getRGB(i+1,j));
Color w3 = new Color (image.getRGB(i,j+1));

int red1 = (int)(w1.getRed());


int red2 = (int)(w2.getRed());
int red3 = (int)(w3.getRed());

int green1 = (int)(w1.getGreen());


int green2 = (int)(w2.getGreen());
int green3 = (int)(w3.getGreen());

int blue1 = (int)(w1.getBlue());


int blue2 = (int)(w2.getBlue());
int blue3 = (int)(w3.getBlue());

int red = -red3+red2;


int green = -green3+green2;
int blue = -blue3+blue2;

int avg = (red + green + blue)/3;


int xb = avg;
if(xb<0)
xb = 0;
else if(xb>255)
xb = 255;
Color newColor = new Color(xb, xb, xb);
image.setRGB(i, j, newColor.getRGB());
}
}
imageIcon = new ImageIcon(image);
jLabel2.setIcon(imageIcon);

}
Analisa :

4. Metode Prewitt

Sourcode :

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
image = (BufferedImage) imageIcon.getImage();
width = image.getWidth();
height = image.getHeight();
int kernelPX[][] = {{-1, 0, 1}, {-1, 0, 1}, {-1, 0, 1}};
int kernelPY[][] = {{-1, -1, -1}, {0, 0, 0}, {1, 1, 1}};
int xh = 0;
int xv = 0;
int tempIm[][] = new int[width +1][height + 1];
for (int i=1; i < width -1; i++) {
for (int j =1; j < height -1; j++) {
Color w1 = new Color (image.getRGB(i-1,j-1));
Color w2 = new Color (image.getRGB(i-1,j));
Color w3 = new Color (image.getRGB(i-1,j+1));
Color w4 = new Color (image.getRGB(i,j-1));
Color w5 = new Color (image.getRGB(i,j));
Color w6 = new Color (image.getRGB(i,j+1));
Color w7 = new Color (image.getRGB(i+1,j-1));
Color w8 = new Color (image.getRGB(i+1,j));
Color w9 = new Color (image.getRGB(i+1,j+1));
int x1 = (w1.getRed());
int x2 = (w2.getRed());
int x3 = (w3.getRed());
int x4 = (w4.getRed());
int x5 = (w5.getRed());
int x6 = (w6.getRed());
int x7 = (w7.getRed());
int x8 = (w8.getRed());
int x9 = (w9.getRed());

xh = Math.abs((x1 * kernelPX[0][0] + (x4 *kernelPX[1][0]) +


(x7 * kernelPX[2][0]) + (x3 * kernelPX[0][2]) +
(x6 * kernelPX[1][2]) + (x9 * kernelPX[2][2])));
xv = Math.abs((x1 * kernelPY[0][0] + (x2 *kernelPY[0][1]) +
(x3 * kernelPY[0][2]) + (x7 * kernelPY[2][0]) +
(x8 * kernelPY[2][1]) + (x9 * kernelPY[2][2])));

int xb = xh + xv;
if (xb < 0 ) {
xb = 0;
}
if (xb > 255) {
xb = 255;
}
tempIm[i][j] = xb;
}
}
for (int i = 1; i < width -1 ; i++){
for (int j = 1; j <height -1 ; j++){
int e = tempIm[i][j];
Color newColor = new Color (e, e, e);
image.setRGB(i, j, newColor.getRGB());
}
} imageIcon = new ImageIcon(image);
jLabel2.setIcon(imageIcon);
}
Analisa :
5. Metode Sobel

Sourcode :

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
image = (BufferedImage) imageIcon.getImage();
width = image.getWidth();
height = image.getHeight();
int kernelPX[][] = {{-1, 0, 1}, {-2, 0, 2}, {-1, 0, 1}};
int kernelPY[][] = {{1, 2, 1}, {0, 0, 0}, {-1, -2, -1}};
int xh = 0;
int xv = 0;
int tempIm[][] = new int[width +1][height + 1];
for (int i=1; i < width -1; i++) {
for (int j =1; j < height -1; j++) {
Color w1 = new Color (image.getRGB(i-1,j-1));
Color w2 = new Color (image.getRGB(i-1,j));
Color w3 = new Color (image.getRGB(i-1,j+1));
Color w4 = new Color (image.getRGB(i,j-1));
Color w5 = new Color (image.getRGB(i,j));
Color w6 = new Color (image.getRGB(i,j+1));
Color w7 = new Color (image.getRGB(i+1,j-1));
Color w8 = new Color (image.getRGB(i+1,j));
Color w9 = new Color (image.getRGB(i+1,j+1));
int x1 = (w1.getRed());
int x2 = (w2.getRed());
int x3 = (w3.getRed());
int x4 = (w4.getRed());
int x5 = (w5.getRed());
int x6 = (w6.getRed());
int x7 = (w7.getRed());
int x8 = (w8.getRed());
int x9 = (w9.getRed());

xh = Math.abs((x1 * kernelPX[0][0] + (x4 *kernelPX[1][0]) +


(x7 * kernelPX[2][0]) + (x3 * kernelPX[0][2]) +
(x6 * kernelPX[1][2]) + (x9 * kernelPX[2][2])));
xv = Math.abs((x1 * kernelPY[0][0] + (x2 *kernelPY[0][1]) +
(x3 * kernelPY[0][2]) + (x7 * kernelPY[2][0]) +
(x8 * kernelPY[2][1]) + (x9 * kernelPY[2][2])));

int xb = xh + xv;
if (xb < 0 ) {
xb = 0;
}
if (xb > 255) {
xb = 255;
}
tempIm[i][j] = xb;
}
}
for (int i = 1; i < width -1 ; i++){
for (int j = 1; j <height -1 ; j++){
int e = tempIm[i][j];
Color newColor = new Color (e, e, e);
image.setRGB(i, j, newColor.getRGB());
}
} imageIcon = new ImageIcon(image);
jLabel2.setIcon(imageIcon);
}
Analisa :

6. Metode Laplacian

Sourode :

private void LaplacianActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
try{
width = image.getWidth();
height = image.getHeight();
image = ImageIO.read(input);
Random r = new Random();

for(int i = 1; i < width-1; i++){


for(int j = 1; j < height-1; j++){
Color c = new Color(image.getRGB(i, j));
Color c1 = new Color(image.getRGB(i-1, j-1));
Color c2 = new Color(image.getRGB(i, j-1));
Color c3 = new Color(image.getRGB(i+1, j-1));
Color c4 = new Color(image.getRGB(i-1, j));
Color c5 = new Color(image.getRGB(i, j));
Color c6 = new Color(image.getRGB(i+1, j));
Color c7 = new Color(image.getRGB(i-1, j+1));
Color c8 = new Color(image.getRGB(i, j+1));
Color c9 = new Color(image.getRGB(i+1, j+1));

int r1 = c1.getRed();
int r2 = c2.getRed();
int r3 = c3.getRed();
int r4 = c4.getRed();
int r5 = c5.getRed();
int r6 = c6.getRed();
int r7 = c7.getRed();
int r8 = c8.getRed();
int r9 = c9.getRed();

int g1 = c1.getGreen();
int g2 = c2.getGreen();
int g3 = c3.getGreen();
int g4 = c4.getGreen();
int g5 = c5.getGreen();
int g6 = c6.getGreen();
int g7 = c7.getGreen();
int g8 = c8.getGreen();
int g9 = c9.getGreen();

int b1 = c1.getBlue();
int b2 = c2.getBlue();
int b3 = c3.getBlue();
int b4 = c4.getBlue();
int b5 = c5.getBlue();
int b6 = c6.getBlue();
int b7 = c7.getBlue();
int b8 = c8.getBlue();
int b9 = c9.getBlue();
//Absolute
int red = Math.abs(r1-(2*r2)+r3-(2*r4)+(4*r5)-(2*r6)+r7-(2*r8)+r9);
int green = Math.abs(g1-(2*g2)+g3-(2*g4)+(4*g5)-(2*g6)+g7-(2*g8)+g9);
int blue = Math.abs(b1-(2*b2)+b3-(2*b4)+(4*b5)-(2*b6)+b7-(2*b8)+b9);

int avg = ((red + green + blue)/3);


int xb = avg;

if(xb < 0)
xb = 0;
else if(xb > 255)
xb = 255;
Color newColor = new Color(xb, xb, xb);
image.setRGB(i, j, newColor.getRGB());
}
}
ImageIcon imgIcon = new ImageIcon(image);
jLabel2.setIcon(imgIcon);
} catch (IOException ex){
java.util.logging.Logger.getLogger(praktikum10.class.getName()
).log(Level.SEVERE, null, ex);
}
}
Analisa :

7. Save

Sourcode :

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
BufferedImage buffered = (BufferedImage) image;
try {
File OutputFile = new File("save.jpg");
ImageIO.write(buffered, "jpg", OutputFile);
} catch (IOException e) {
e.printStackTrace();
}
}
Analisa :

You might also like