Esempio n. 1
0
def _circle_exists(diagram_parse, circle):
    eps = 4
    multiplier = 2
    assert isinstance(diagram_parse, CoreParse)
    pixels = diagram_parse.primitive_parse.image_segment_parse.diagram_image_segment.pixels
    near_pixels = set(pixel for pixel in pixels if distance_between_circle_and_point(circle, pixel) <= eps)
    length = circumference(circle)
    if len(near_pixels) < multiplier*length:
        return False
    return True
Esempio n. 2
0
def _circle_exists(diagram_parse, circle):
    eps = 4
    multiplier = 2
    assert isinstance(diagram_parse, CoreParse)
    pixels = diagram_parse.primitive_parse.image_segment_parse.diagram_image_segment.pixels
    near_pixels = set(
        pixel for pixel in pixels
        if distance_between_circle_and_point(circle, pixel) <= eps)
    length = circumference(circle)
    if len(near_pixels) < multiplier * length:
        return False
    return True
def _length_sum(partial_primitives):
    """
    Computes the sum of squareroot of sum of lengths.
    This way, longer lines / bigger circles are preferred.

    :param partial_primitives:
    :return:
    """
    if len(partial_primitives) == 0:
        return 0
    total = 0
    for primitive in partial_primitives.values():
        if isinstance(primitive, instantiators['circle']):
            total += circumference(primitive)
        elif isinstance(primitive, instantiators['line']):
            pass
        else:
            raise Exception()
    return total
Esempio n. 4
0
def _length_sum(partial_primitives):
    """
    Computes the sum of squareroot of sum of lengths.
    This way, longer lines / bigger circles are preferred.

    :param partial_primitives:
    :return:
    """
    if len(partial_primitives) == 0:
        return 0
    total = 0
    for primitive in partial_primitives.values():
        if isinstance(primitive, instantiators['circle']):
            total += circumference(primitive)
        elif isinstance(primitive, instantiators['line']):
            pass
        else:
            raise Exception()
    return total