Beispiel #1
0
def view(args: Namespace):
    mgr = get_asset_mgr()

    (path, points) = mgr.get(args.n)

    img = Image(path)
    img.perspective_transform(points)
    img.scale_bounded(X_MAX, Y_MAX)
    win = get_window()
    win.show(img)
    win.run_until_quit()
Beispiel #2
0
    async def add():
        # Adds image to the database
        def add_image():
            inverse = 1 / factor
            mgr.add(path, [(round(p[0] * inverse), round(p[1] * inverse))
                           for p in points])
            points.clear()

        for path in paths:
            img = Image(path)
            factor = img.scale_bounded(X_MAX, Y_MAX)
            scaled = copy(img)
            win.show(img)

            while True:
                while len(points) < 4:
                    x, y = await win.click()
                    points.append((x, y))
                    if len(points) == 4:
                        p1 = points[-1]
                        p2 = points[0]
                        img.draw_line(p1, p2)
                    if len(points) > 1:
                        p1 = points[-2]
                        p2 = points[-1]
                        img.draw_line(p1, p2)

                    img.draw_point(x, y)
                    win.show(img)

                k = await win.keypress()

                if k == KEY_ENTER:
                    add_image()
                    break

                # Reset
                points.clear()
                img = copy(scaled)
                win.show(img)