Convolve3

C:\ece538\impro3>java Convolve3 test3.png 0 8

test3.png

  0  23  46  69  93 116 139 162 186 209 232
  0  23  46  69  93 116 139 162 186 209 232
  0  23  49 155 225 229 191 165 186 209 232
  0  23 145 232 232 232 232 201 186 209 232
  0  23 223 232 232 232 232 230 186 209 232
  0  23 223 232 232 232 232 230 186 209 232
  0  23 145 232 232 232 232 201 186 209 232
  0  23  49 155 225 229 191 165 186 209 232
  0  23  46  69  93 116 139 162 186 209 232
  0  23  46  69  93 116 139 162 186 209 232
  0  23  46  69  93 116 139 162 186 209 232

convolution mask

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

filtered image

133 139 139 139 139 139 139 139 139 139 133
133 139 144 147 141 134 132 136 139 139 133
133 146 160 158 140 127 121 127 136 139 133
133 163 175 150 132 126 120 119 130 139 133
133 178 180 135 128 128 126 116 125 139 133
133 178 180 135 128 128 126 116 125 139 133
133 163 175 150 132 126 120 119 130 139 133
133 146 160 158 140 127 121 127 136 139 133
133 139 144 147 141 134 132 136 139 139 133
133 139 139 139 139 139 139 139 139 139 133
133 139 139 139 139 139 139 139 139 139 133


Convolve3.java

import java.awt.image.*;
import java.awt.color.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.JFrame;


public class Convolve3 {
    public static void main(String [] args) {

	String filename = "test3.png";
	if (args.length>0) filename = args[0];
	int style = 1;
	if (args.length>1) style = Integer.parseInt(args[1]);
	int scl = 8;
	if (args.length>2) scl = Integer.parseInt(args[2]);

	ImageFrame f1 = new ImageFrame(filename);
	int width = f1.img.getWidth();
	int height = f1.img.getHeight();
	System.out.format("Image size %d x %d%n",width,height);
	f1.setLocation(10,10);
	f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	int w = f1.getWidth();
	int h = f1.getHeight();
	if (width<25) listImage.listGray(f1.img,filename);
	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(f1.img);
	ImageFrame f2 = new ImageFrame(outp,"bipolar");
	f2.setLocation(20+w,10);
	f2.writeImage("out3","png");
	if (width<25 && style==0) listImage.listGray(f2.img,"filtered image");
		
    }
}


Maintained by John Loomis, updated Sat Mar 10 12:47:51 2018