C:\ece538\impro3>java Convolve1 test2.png 20 20 60 60 80 130 160 200 200 240 240 20 0 0 0 0 0 0 0 0 0 240 30 0 160 160 160 160 160 160 160 0 230 30 0 160 240 240 240 240 240 160 0 230 40 0 160 240 240 240 0 0 0 0 220 50 0 160 240 250 240 0 0 0 0 210 60 0 160 240 240 240 0 0 0 0 200 70 0 160 240 240 240 240 240 160 0 190 70 0 160 160 160 160 160 160 160 0 190 80 0 0 0 0 0 0 0 0 0 180 80 80 90 90 120 130 140 170 170 180 180 convolution mask 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 filtered 20 60 60 80 130 160 200 200 240 240 240 20 60 60 80 130 160 200 200 240 240 240 0 0 0 0 0 0 0 0 0 240 240 0 160 160 160 160 160 160 160 0 230 230 0 160 240 240 240 240 240 160 0 230 230 0 160 240 240 240 0 0 0 0 220 220 0 160 240 250 240 0 0 0 0 210 210 0 160 240 240 240 0 0 0 0 200 200 0 160 240 240 240 240 240 160 0 190 190 0 160 160 160 160 160 160 160 0 190 190 0 0 0 0 0 0 0 0 0 180 180
Convolve1.java
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
//import javafx.scene.image.ImageView;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
// import javax.imageio.*;
import java.util.List;
import java.awt.image.*;
import java.io.*;
public class Convolve1 extends Application {
@Override public void start(Stage stage) {
int mag = 16;
// load the image
String file1 = "test2.png";
List<String> args = getParameters().getRaw();
String filename = (args.size()>0)? args.get(0): file1;
BufferedImage img = ImageOp.readImage(filename);
showImage show1 = new showImage(ImageOp.replicate(img,mag),filename);
show1.setStage(stage);
stage.setX(100);
stage.setY(100);
double w = stage.getWidth();
double h = stage.getHeight();
listImage.listGray(img,filename);
int mask[][] = new int[5][5];
mask[1][3] = 1;
Convolve c = new Convolve(mask);
c.showMatrix(mask,"convolution mask");
BufferedImage outp = c.doConvolve(img);
String cmt = "filtered";
listImage.listGray(outp,cmt);
showImage show2 = new showImage(ImageOp.replicate(outp,mag),cmt);
//show2.writeImage("out1");
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 Sat Mar 10 15:34:21 2018