@Override
	public void doUniformBlur() {
		if (imageManager.getBufferedImage() == null) return;
		WritableRaster raster = imageManager.getBufferedImage().getRaster();
		double[][] newPixels = new double[raster.getWidth()][raster.getHeight()];
		for (int x = 1; x < raster.getWidth() - 1; x++) {
			for (int y = 1; y < raster.getHeight() - 1; y++) {
				double total = 0;
				total += raster.getPixel(x+1, y+1, new double[3])[0];
				total += raster.getPixel(x+1, y-1, new double[3])[0];
				total += raster.getPixel(x, y+1, new double[3])[0];
				total += raster.getPixel(x, y-1, new double[3])[0];
				total += raster.getPixel(x-1, y+1, new double[3])[0];
				total += raster.getPixel(x-1, y-1, new double[3])[0];
				total += raster.getPixel(x, y, new double[3])[0];
				total += raster.getPixel(x+1, y, new double[3])[0];
				total += raster.getPixel(x-1, y, new double[3])[0];
				double average = total/9;
				newPixels[x][y] = average;
			}
		}
		for (int x = 1; x < raster.getWidth() - 1; x++) {
			for (int y = 1; y < raster.getHeight() - 1; y++) {
				double[] pixel = new double[3];
				pixel[0] = pixel[1] = pixel[2] = newPixels[x][y];
				raster.setPixel(x, y, pixel);
			}
		}
		GUIFunctions.refresh();
	}