/****************************************************************************** * Compilation: javac ShowSeams.java * Execution: java ShowSeams input.png * Dependencies: SeamCarver.java SCUtility.java * * Read image from file specified as command-line argument. Show 3 images * original image as well as horizontal and vertical seams of that image. * * % java ShowSeams HJoceanSmall.png * ******************************************************************************/ import edu.princeton.cs.algs4.Picture; import edu.princeton.cs.algs4.StdOut; public class ShowSeams { private static void showHorizontalSeam(SeamCarver sc) { Picture ep = SCUtility.toEnergyPicture(sc); int[] horizontalSeam = sc.findHorizontalSeam(); Picture epOverlay = SCUtility.seamOverlay(ep, true, horizontalSeam); epOverlay.show(); } private static void showVerticalSeam(SeamCarver sc) { Picture ep = SCUtility.toEnergyPicture(sc); int[] verticalSeam = sc.findVerticalSeam(); Picture epOverlay = SCUtility.seamOverlay(ep, false, verticalSeam); epOverlay.show(); } public static void main(String[] args) { Picture picture = new Picture(args[0]); StdOut.printf("%d-by-%d image\n", picture.width(), picture.height()); picture.show(); SeamCarver sc = new SeamCarver(picture); StdOut.printf("Displaying horizontal seam calculated.\n"); showHorizontalSeam(sc); StdOut.printf("Displaying vertical seam calculated.\n"); showVerticalSeam(sc); } }