/** Read in an image and add Gaussian random noise * to s apecified SNR * @auther Will Hossack, */ import uk.ac.ed.ph.signal.*; // Signal classes public class SNRDisplay { public static void main(String args[]) { // Check that argument was given. if (args.length < 2) { System.err.println("Usage: java SNRDisplay filename snr"); System.exit(1); } String file = args[0]; double snr = Double.parseDouble(args[1].trim()); // Read image (type depermined by suffix) RealImage im = RealImage.readImage(file); System.out.println("Read image is : " + im); // Create a display panel ImageFrame display = new ImageFrame("Original Image"); display.addImage(im); // Add image with (with autscale defaults) display.centre(); // Display in centre of screen // Get statistics RealStatistics stats = im.getStatistics(); System.out.println("Image stats are " + stats); double imDev = Math.sqrt(stats.getVariance()); System.out.println("Image deviation is " + imDev); RealImage nim = im.clone(); // Copy of image // Add noise Noise.addGuassianIndependantNoise(nim,imDev/snr); // Dsiplay noise image ImageFrame noisedisplay = new ImageFrame("Noisy Image"); noisedisplay.addImage(nim); } }