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 package org.openimaj.tools.imagecollection;
31
32 import org.kohsuke.args4j.CmdLineOptionsProvider;
33 import org.kohsuke.args4j.Option;
34 import org.openimaj.image.Image;
35 import org.openimaj.tools.imagecollection.processor.DirectoryImageProcessor;
36 import org.openimaj.tools.imagecollection.processor.ImageCollectionProcessor;
37 import org.openimaj.tools.imagecollection.processor.SequenceFileProcessor;
38
39 public enum ImageCollectionProcessorMode implements CmdLineOptionsProvider{
40 DIR{
41 @Option(name="--output-file", aliases="-o", required=false, usage="directory to output images", metaVar="STRING")
42 private String output = "./out";
43
44 @Option(name="--force", aliases="-f", required=false, usage="force delete existing files (if any)", metaVar="STRING")
45 private boolean force = true;
46
47 @Option(name="--image-name", aliases="-im", required=false, usage="image naming format, %s replaced with image name", metaVar="STRING")
48 private String imageNameFormat = "%s.png";
49
50 @Override
51 public <T extends Image<?,T>> ImageCollectionProcessor<T> processor(){
52 return new DirectoryImageProcessor<T>(output,force,imageNameFormat);
53 }
54 },
55
56 SF{
57 @Option(name="--output-file", aliases="-o", required=false, usage="sequence file output", metaVar="STRING")
58 private String output = ".";
59
60 @Option(name="--force", aliases="-f", required=false, usage="force delete existing files (if any)", metaVar="STRING")
61 private boolean force = true;
62
63 @Override
64 public <T extends Image<?,T>> ImageCollectionProcessor<T> processor(){
65 return new SequenceFileProcessor<T>(output,force);
66 }
67 };
68 public abstract <T extends Image<?,T>> ImageCollectionProcessor<T> processor();
69 @Override
70 public Object getOptions() {
71 return this;
72 }
73
74
75
76 }