Пример #1
0
    def __init__(self, rule_base='rule_base.txt'):
        fsets = {}
        rules = {}

        try:
            with open(rule_base, 'r') as f:
                while True:
                    line = f.readline()
                    if not line or not line.strip('\n'):
                        break
                    line = line.strip('\n')
                    name, shape, pts = line.split('\t')
                    pts = [pt.split(',') for pt in pts.split(' ')]
                    pts = [(float(x), float(y)) for (x, y) in pts]
                    fsets[name] = fset_routes[shape](name, *pts)

                while True:
                    line = f.readline()
                    if not line:
                        break
                    name, rule = line.strip('\n').split('\t')
                    rules[name] = rule
        except:
            raise

        self.inferencer = Inferencer()
        self.inferencer.add_fsets(fsets.values())
        self.inferencer.add_rules(rules.values())
Пример #2
0
class ShapeRecognizer(object):
    def __init__(self, rule_base='rule_base.txt'):
        fsets = {}
        rules = {}

        try:
            with open(rule_base, 'r') as f:
                while True:
                    line = f.readline()
                    if not line or not line.strip('\n'):
                        break
                    line = line.strip('\n')
                    name, shape, pts = line.split('\t')
                    pts = [pt.split(',') for pt in pts.split(' ')]
                    pts = [(float(x), float(y)) for (x, y) in pts]
                    fsets[name] = fset_routes[shape](name, *pts)

                while True:
                    line = f.readline()
                    if not line:
                        break
                    name, rule = line.strip('\n').split('\t')
                    rules[name] = rule
        except:
            raise

        self.inferencer = Inferencer()
        self.inferencer.add_fsets(fsets.values())
        self.inferencer.add_rules(rules.values())

    def recognize(self, img_file, multi=False):
        inputs = process_image(img_file, multi)
        result = self.inferencer.evaluate(inputs)
        return result['Shape']