blob: 9fbe20ad3cf27b719b970fed0863e13cd18be266 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
/*************************************************************************
* Compilation: javac ShowSeams.java
* Execution: java ShowSeams input.png
* Dependencies: SeamCarver.java SCUtility.java Picture.java StdDraw.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.
* Each image hides the previous one - drag them to see all three.
*
*************************************************************************/
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 inputImg = new Picture(args[0]);
System.out.printf("image is %d columns by %d rows\n",
inputImg.width(), inputImg.height());
inputImg.show();
SeamCarver sc = new SeamCarver(inputImg);
System.out.printf("Displaying horizontal seam calculated.\n");
showHorizontalSeam(sc);
System.out.printf("Displaying vertical seam calculated.\n");
showVerticalSeam(sc);
}
}
|