projekty
/
imago.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
fa71894
)
ransac duo
author
Tomas Musil
<tomik.musil@gmail.com>
Fri, 27 Jun 2014 23:13:30 +0000
(
01:13
+0200)
committer
Tomas Musil
<tomik.musil@gmail.com>
Fri, 27 Jun 2014 23:13:30 +0000
(
01:13
+0200)
imago_pack/ransac.py
patch
|
blob
|
history
diff --git
a/imago_pack/ransac.py
b/imago_pack/ransac.py
index
3f8bb65
..
197fc31
100644
(file)
--- a/
imago_pack/ransac.py
+++ b/
imago_pack/ransac.py
@@
-4,6
+4,9
@@
import random
from math import sqrt
import numpy as NP
from math import sqrt
import numpy as NP
+# TODO comments
+# TODO threshold
+
def initial_estimate(data):
return random.sample(data, 2)
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)
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
def estimate(data, dist, k):
best = 0
model = None
+ consensual = None
for i in xrange(0, k):
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
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
-