/** * All work is done in constructor. * * @param filePath path to image */ public PrewittEdgeDetector(String filePath) { // read image and get pixels BufferedImage originalImage; try { originalImage = ImageIO.read(new File(filePath)); findEdges(Grayscale.imgToGrayPixels(originalImage), false); } catch (IOException e) { e.printStackTrace(); } }
/** * Example run. * * <p>Displays detected edges next to orignal image. * * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // read image and get pixels String img = args[0]; BufferedImage originalImage = ImageIO.read(new File(img)); int[][] pixels = Grayscale.imgToGrayPixels(originalImage); // run SobelEdgeDetector final long startTime = System.currentTimeMillis(); PrewittEdgeDetector sed = new PrewittEdgeDetector(pixels); final long endTime = System.currentTimeMillis(); // print timing information final double elapsed = (double) (endTime - startTime) / 1000; System.out.println("Prewitt Edge Detector took " + elapsed + " seconds."); System.out.println("Threshold = " + sed.threshold); // display edges boolean[][] edges = sed.getEdges(); BufferedImage edges_image = Threshold.applyThresholdReversed(edges); BufferedImage[] toShow = {originalImage, edges_image}; String title = "Prewitt Edge Detector by Jason Altschuler"; ImageViewer.showImages(toShow, title); }