Convolve3 – Sobel Operator

   

C:\ece538\impro3>java Convolve3

convolution mask

 -1   0   1
 -2   0   2
 -1   0   1


Convolve3.java

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene; 
import javafx.scene.image.Image;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

import java.util.List;
import java.awt.image.*;
import java.io.*;


public class Convolve3 extends Application {
 
     @Override public void start(Stage stage) {

	String file1 = "blob.png";
	List<String> args = getParameters().getRaw();
	String filename =  args.size()>0? args.get(0): file1;

	int style = args.size()>1? Integer.parseInt(args.get(1)): 1;
	int scl = args.size()>2? Integer.parseInt(args.get(2)): 2;
	int mag = args.size()>3? Integer.parseInt(args.get(3)): 1;

	BufferedImage img = ImageOp.readImage(filename);
	showImage show1=null;
	 if (mag>1) show1 = new showImage(ImageOp.replicate(img,mag),filename);
	 else  show1 = new showImage(img,filename);
	 show1.setStage(stage);
	 stage.setX(100);
	 stage.setY(100);
	int width = img.getWidth();
	int mask[][] = { {-1, 0, 1},{-2, 0, 2},{-1, 0, 1} };
	Convolve c = new Convolve(mask);
	c.setScale(scl);
	c.setBipolarStyle(style);
	c.showMatrix(mask,"convolution mask");
	BufferedImage outp = c.doConvolve(img);

	showImage show2=null;
	String title = "edge enhanced";
	 if (mag>1) show2 = new showImage(ImageOp.replicate(outp,mag),title);
	 else  show2 = new showImage(outp,title);
	 Stage stage2 = new Stage();
	 show2.setStage(stage2);
	 stage2.setX(140+stage.getWidth());
	 stage2.setY(100);		
		
    }

     public static void main(String[] args) {
         Application.launch(args);
     }
}


Maintained by John Loomis, updated Tue Mar 13 11:12:48 2018