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