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.collection.config;
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 @Override
42 public ModeOp getOptions() {
43 return new ModeOp() {
44 @Option(name="--output-file", aliases="-o", required=false, usage="directory to output images", metaVar="STRING")
45 private String output = "./out";
46
47 @Option(name="--force", aliases="-f", required=false, usage="force delete existing files (if any)", metaVar="STRING")
48 private boolean force = true;
49
50 @Option(name="--image-name", aliases="-im", required=false, usage="image naming format, %s replaced with image name", metaVar="STRING")
51 private String imageNameFormat = "%05d.png";
52
53 @Override
54 public <T extends Image<?,T>> ImageCollectionProcessor<T> processor(){
55 return new DirectoryImageProcessor<T>(output,force,imageNameFormat);
56 }
57 };
58 }
59 },
60 SF{
61 @Override
62 public ModeOp getOptions() {
63 return new ModeOp() {
64 @Option(name="--output-file", aliases="-o", required=false, usage="sequence file output", metaVar="STRING")
65 private String output = ".";
66
67 @Option(name="--force", aliases="-f", required=false, usage="force delete existing files (if any)", metaVar="STRING")
68 private boolean force = true;
69
70 @Override
71 public <T extends Image<?,T>> ImageCollectionProcessor<T> processor(){
72 return new SequenceFileProcessor<T>(output,force);
73 }
74 };
75 }
76 };
77
78 @Override
79 public abstract ModeOp getOptions();
80
81 public interface ModeOp {
82 public abstract <T extends Image<?,T>> ImageCollectionProcessor<T> processor();
83 }
84 }