fix bug in ransac
authorTomas Musil <tomik.musil@gmail.com>
Sat, 5 Jul 2014 03:38:56 +0000 (05:38 +0200)
committerTomas Musil <tomik.musil@gmail.com>
Sat, 5 Jul 2014 03:38:56 +0000 (05:38 +0200)
src/gridf3.py
src/ransac.py

index ac7fa2a..f5e6edb 100644 (file)
@@ -125,7 +125,7 @@ def gen_corners(d1, d2):
             # TODO create an intersection?
         try:
             yield manual.lines(map(lambda p: p.to_tuple(), [c2, c1, c3, c4]))
-        except TypeError:
+        except (TypeError, ZeroDivisionError):
             pass
             # the square was too small to fit 17 lines inside
             # TODO define SquareTooSmallError or something
index 5d5d218..4908421 100644 (file)
@@ -57,10 +57,9 @@ def iterate(model, distance):
         score = new_score
         try:
             estimate = model.get(consensual)
+            new_score, consensual = model.score(estimate, distance)
         except NP.linalg.LinAlgError:
             pass
-        estimate = model.get(consensual)
-        new_score, consensual = model.score(estimate, distance)
     return score, estimate, consensual
         
 def estimate(data, dist, k, modelClass=Linear_model):