from .base_options import BaseOptions class DatasetOptions(BaseOptions): def initialize(self, args=None): # BaseOptions.initialize(self) # type = int, float, str OR action='store_true' # self.parser.add_argument( # '--', # type=int, # default=0, # help='' # ) required = args is None self.parser.add_argument( '--in_dir', type=str, required=required, help='input directory' ) self.parser.add_argument( '--out_dir', type=str, required=required, help='output directory' ) self.parser.add_argument( '--split', action='store_true', help='construct train/test/split for this output, as A' ) self.parser.add_argument( '--ab', action='store_true', help='construct test split into directory A and B, where B = in_dir' ) self.parser.add_argument( '--mov', action='store_true', help='generate video from output directory' ) self.parser.add_argument( '--scp', action='store_true', help='scp this file somewhere' ) self.parser.add_argument( '--scp-to', type=str, default="jules@asdf.us:asdf/neural/", help='scp destination' ) self.parser.add_argument( '--experiment', type=str, default="", help='experiment name' ) ## IMAGE FILTERS ### RECURSION self.parser.add_argument( '--recursive', action='store_true', help='recurse on previous output' ) self.parser.add_argument( '--recursive-frac', default=0.5, type=float, help='amount of previous step to use in recursion' ) ### GRAYSCALE self.parser.add_argument( '--grayscale', action='store_true', help='convert image to grayscale first' ) ### CLAHE self.parser.add_argument( '--clahe', action='store_true', help='apply clahe contrast correction' ) self.parser.add_argument( '--clip-limit', default=2.0, type=float, help='clip limit for clahe algorithm (1.0 is subtle, 4.0 is aggressive)' ) ### POSTERIZE self.parser.add_argument( '--posterize', action='store_true', help='posterize image' ) self.parser.add_argument( '--spatial-window', default=16, type=int, help='spatial window for quantize' ) self.parser.add_argument( '--color-window', default=64, type=int, help='color window for quantize' ) ### BRIGHTNESS GRADIENT self.parser.add_argument( '--brightness-gradient', action='store_true', help='gradiate from first frame to last (done in Lab colorspace)' ) self.parser.add_argument( '--brightness-sigma', default=64, type=int, help='width of brightness gradient along L axis' ) ### BLUR self.parser.add_argument( '--blur', action='store_true', help='blur image by N' ) self.parser.add_argument( '--blur-radius', default=3, type=int, help='blur sigma' ) self.parser.add_argument( '--blur-sigma', default=0.0, type=float, help='blur sigma' ) ### CANNY EDGE DETECTION self.parser.add_argument( '--canny', action='store_true', help='do canny edge detection on image' ) self.parser.add_argument( '--canny-lo', default=100, type=int, help='canny low threshold' ) self.parser.add_argument( '--canny-hi', default=200, type=int, help='canny high threshold' ) def parse(self, args=None): if not self.initialized: self.initialize(args) if args is not None: self.opt, unknown = self.parser.parse_known_args(args) else: self.opt, unknown = self.parser.parse_known_args() argz = vars(self.opt) print('------------ Options -------------') for k, v in sorted(argz.items()): print('%s: %s' % (str(k), str(v))) print('-------------- End ----------------') return self.opt