def desc2matcher(self, descriptors): self.timer['BuildMatcher'].start() matcher = calonder.BruteForceMatcher(self.cl.dimension()) for sig in descriptors: matcher.addSignature(sig) self.timer['BuildMatcher'].stop() return matcher
def collect(self, frame): frame.descriptors = [] im = Image.fromstring("L", frame.size, frame.rawdata) frame.matcher = calonder.BruteForceMatcher() for (x, y, d) in frame.kp: patch = im.crop((x - 16, y - 16, x + 16, y + 16)) sig = self.cl.getSparseSignature(patch.tostring(), patch.size[0], patch.size[1]) frame.descriptors.append(sig) frame.matcher.addSignature(sig)
def testclassifier(kp, im, cl): ma = calonder.BruteForceMatcher() sigs = [] for (x,y) in kp: patch = im.crop((x,y,x+32,y+32)) sig = cl.getSignature(patch.tostring(), patch.size[0], patch.size[1]) #print ["%3f" % x for x in sig.dump()] sigs.append(sig) ma.addSignature(sig) for (i,(x,y)) in enumerate(kp): patch = im.crop((x,y,x+32,y+32)) sig = cl.getSignature(patch.tostring(), patch.size[0], patch.size[1]) (index, distance) = ma.findMatch(sig) self.assert_(i == index)
def testclassifier(kp, im, cl): ma = calonder.BruteForceMatcher(dim) sigs = [] kp = kp[:] for (x,y) in kp: print x,y patch = im.crop((x,y,x+32,y+32)) sig = cl.getSignature(patch.tostring(), patch.size[0], patch.size[1]) sigs.append(sig) ma.addSignature(sig) #print cl.getSignatures(im, kp) for (i,(x,y)) in enumerate(kp): patch = im.crop((x,y,x+32,y+32)) sig = cl.getSignature(patch.tostring(), patch.size[0], patch.size[1]) (index, distance) = ma.findMatch(sig) print "i = %d, match = %u, distance = %.3f" % (i, index, distance) self.assert_(i == index)
def __init__(self): self.cl = calonder.classifier() #self.cl.setThreshold(0.0) self.cl.read('/u/prdata/calonder_trees/land50.trees') self.ma = calonder.BruteForceMatcher()