예제 #1
0
def findHypotheses(Q: Queue, cloud, cloudNormals):
    mesh = Mesh('../Models/ToyScrew-Yellow.stl')
    #mesh = Mesh('Models/three_screws_two.ply')
    mesh.compileFeatures(N=10000)
    finder = ModelFinder(mesh)
    bestScore = None
    for o, r in finder.findInCloud(cloud, cloudNormals):
        score = scoreHypothesis(mesh, cloud, o, r)
        if bestScore is None or score > bestScore:
            bestScore = score
            faces = (mesh.Faces @ r.T) + o
            Q.put(np.copy(faces))
    return