switched from argparse to getopt for compatibility with Python 2.6
authorAlexander Mordvintsev <no@email>
Sat, 11 Jun 2011 21:11:02 +0000 (21:11 +0000)
committerAlexander Mordvintsev <no@email>
Sat, 11 Jun 2011 21:11:02 +0000 (21:11 +0000)
samples/python2/edge.py
samples/python2/letter_recog.py
samples/python2/video.py

index 998c0c4..a55c51d 100644 (file)
@@ -3,7 +3,7 @@ import video
 import sys\r
 \r
 try: fn = sys.argv[1]\r
-except: fn = 'synth:bg=../cpp/lena.jpg:noise=0.1'\r
+except: fn = video.presets['lena']\r
 \r
 def nothing(*arg):\r
     pass\r
index e0fabc5..c25809b 100644 (file)
@@ -91,31 +91,34 @@ class SVM(LetterStatModel):
 \r
 \r
 if __name__ == '__main__':\r
-    import argparse\r
+    import getopt\r
+    import sys\r
 \r
     models = [RTrees, KNearest, Boost, SVM] # MLP, NBayes\r
     models = dict( [(cls.__name__.lower(), cls) for cls in models] )\r
+\r
+    print 'USAGE: letter_recog.py [--model <model>] [--data <data fn>] [--load <model fn>] [--save <model fn>]'\r
+    print 'Models: ', ', '.join(models)\r
+    print\r
     \r
-    parser = argparse.ArgumentParser()\r
-    parser.add_argument('-model', default='rtrees', choices=models.keys())\r
-    parser.add_argument('-data', nargs=1, default='../cpp/letter-recognition.data')\r
-    parser.add_argument('-load', nargs=1)\r
-    parser.add_argument('-save', nargs=1)\r
-    args = parser.parse_args()\r
-\r
-    print 'loading data %s ...' % args.data\r
-    samples, responses = load_base(args.data)\r
-    Model = models[args.model]\r
+    args, dummy = getopt.getopt(sys.argv[1:], '', ['model=', 'data=', 'load=', 'save='])\r
+    args = dict(args)\r
+    args.setdefault('--model', 'rtrees')\r
+    args.setdefault('--data', '../cpp/letter-recognition.data')\r
+\r
+    print 'loading data %s ...' % args['--data']\r
+    samples, responses = load_base(args['--data'])\r
+    Model = models[args['--model']]\r
     model = Model()\r
 \r
     train_n = int(len(samples)*model.train_ratio)\r
-    if args.load is None:\r
-        print 'training %s ...' % Model.__name__\r
-        model.train(samples[:train_n], responses[:train_n])\r
-    else:\r
-        fn = args.load[0]\r
+    if '--load' in args:\r
+        fn = args['--load']\r
         print 'loading model from %s ...' % fn\r
         model.load(fn)\r
+    else:\r
+        print 'training %s ...' % Model.__name__\r
+        model.train(samples[:train_n], responses[:train_n])\r
 \r
     print 'testing...'\r
     train_rate = np.mean(model.predict(samples[:train_n]) == responses[:train_n])\r
@@ -123,7 +126,7 @@ if __name__ == '__main__':
 \r
     print 'train rate: %f  test rate: %f' % (train_rate*100, test_rate*100)\r
 \r
-    if args.save is not None:\r
-        fn = args.save[0]\r
+    if '--save' in args:\r
+        fn = args['--save']\r
         print 'saving model to %s ...' % fn\r
         model.save(fn)\r
index 3b5a98e..b681f03 100644 (file)
@@ -47,19 +47,27 @@ def create_capture(source):
     return cv2.VideoCapture(source)\r
 \r
 \r
+presets = dict(\r
+    lena = 'synth:bg=../cpp/lena.jpg:noise=0.1'\r
+)\r
+\r
 if __name__ == '__main__':\r
     import sys\r
-    import argparse\r
-    \r
-    parser = argparse.ArgumentParser()\r
-    parser.add_argument('sources', nargs='*', default=['synth:bg=../cpp/lena.jpg:noise=0.1'])\r
-    parser.add_argument('-shotdir', nargs=1, default='.')\r
-    args = parser.parse_args()\r
-    print args\r
+    import getopt\r
+\r
+    print 'USAGE: video.py [--shotdir <dir>] [source0] [source1] ...'\r
+    print "source: '<int>' or '<filename>' or 'synth:<params>'"\r
+    print\r
+\r
+    args, sources = getopt.getopt(sys.argv[1:], '', 'shotdir=')\r
+    args = dict(args)\r
+    shotdir = args.get('--shotdir', '.')\r
+    if len(sources) == 0:\r
+        sources = [ presets['lena'] ]\r
 \r
     print 'Press SPACE to save current frame'\r
 \r
-    caps = map(create_capture, args.sources)\r
+    caps = map(create_capture, sources)\r
     shot_idx = 0\r
     while True:\r
         imgs = []\r
@@ -72,7 +80,7 @@ if __name__ == '__main__':
             break\r
         if ch == ord(' '):\r
             for i, img in enumerate(imgs):\r
-                fn = '%s/shot_%d_%03d.bmp' % (args.shotdir[0], i, shot_idx)\r
+                fn = '%s/shot_%d_%03d.bmp' % (shotdir, i, shot_idx)\r
                 cv2.imwrite(fn, img)\r
                 print fn, 'saved'\r
             shot_idx += 1\r