public static Image exponentialNoise(Image original, double lambda, double p) {
		if (original == null)
			return null;
		Image expo = original.shallowClone();
		for (int x = 0; x < original.getWidth(); x++) {
			for (int y = 0; y < original.getHeight(); y++) {
				double rand = Math.random();
				double noise = 1;
				if (rand < p) {
					noise = expGenerator(lambda);
				}
				expo.setPixel(x, y, RED, original.getPixel(x, y, RED) * noise);
				expo.setPixel(x, y, GREEN, original.getPixel(x, y, GREEN)
						* noise);
				expo.setPixel(x, y, BLUE, original.getPixel(x, y, BLUE) * noise);
			}
		}
		return expo;
	}