
// Blur.java
// Andrew Davison, ad@coe.psu.ac.th, April 2023

/* Apply a Gaussian blur to an image with an
   optional sigma value. The default value is 5.

   Usage:
     > compile Blur.java
     > run Blur <fnm> [sigma]
   e.g.
     > run Blur frankenburg-1918.png
     > run Blur frankenburg-1918.png  20

*/


import ij.*;
import ij.gui.*;
import ij.plugin.filter.*;
import ij.process.*;


public class Blur
{

  public static void main(String[] args)
  {
     double sigma = 5;  // default

    if ((args.length < 1) || (args.length > 2)) {
      System.out.println("Usage: run Blur <fnm> [<sigma>]");
      return;
    }

    if (args.length == 2)
      sigma = ImageUtils.getDouble(args[1]);
    System.out.println("Sigma: " + sigma);

    ImagePlus imp = new ImagePlus(args[0]);
    imp.show();
    IJ.wait(2000);   // so the changes can be observed

    ImageProcessor imProc = imp.getProcessor();
    GaussianBlur gb = new GaussianBlur();
    gb.blurGaussian(imProc, sigma, sigma, 0.02);

    imp.updateAndDraw();

    ImageUtils.waitGone(imp);
    System.exit(0);
  } /* main */

}  // end of Blur class
