From 4a1012ea76dc2bd7f2920d1901919edc4acc6645 Mon Sep 17 00:00:00 2001 From: Tomas Musil Date: Sat, 28 Jun 2014 01:13:30 +0200 Subject: [PATCH 1/1] ransac duo --- imago_pack/ransac.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/imago_pack/ransac.py b/imago_pack/ransac.py index 3f8bb65..197fc31 100644 --- a/imago_pack/ransac.py +++ b/imago_pack/ransac.py @@ -4,6 +4,9 @@ import random from math import sqrt import numpy as NP +# TODO comments +# TODO threshold + def initial_estimate(data): return random.sample(data, 2) @@ -36,16 +39,24 @@ def iterate(data, distance): consensus = len(consensual) model = get_model(consensual) consensual = filter_near(data, model, distance) - return consensus, model + return consensus, model, consensual def estimate(data, dist, k): best = 0 model = None + consensual = None for i in xrange(0, k): - new, new_model = iterate(data, dist) + new, new_model, new_consensual = iterate(data, dist) if new > best: best = new model = new_model + consensual = new_consensual + + return model, consensual + +def ransac_duo(data, dist, k, mk): + cons = [] + for i in xrange(mk): + model, cons = estimate(set(data) - set(cons), dist, k) + return (model, cons), estimate(set(data) - set(cons), dist, k) - return model - -- 2.4.2