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)
Exemple #3
0
      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()