Examples

Annotate Image

import sys
from pathlib import Path

from zoloto.cameras.file import ImageFileCamera
from zoloto.marker_dict import MarkerDict


class TestCamera(ImageFileCamera):
    marker_dict = MarkerDict.DICT_6X6_50

    def get_marker_size(self):
        return 100


with TestCamera(Path(sys.argv[1])) as camera:
    camera.save_frame(sys.argv[2], annotate=True)
    print(  # noqa: T001
        "Saw {} markers in this image".format(len(camera.get_visible_markers()))
    )

Count Markers

from zoloto.cameras.camera import Camera
from zoloto.marker_dict import MarkerDict


class TestCamera(Camera):
    marker_dict = MarkerDict.DICT_6X6_50

    def get_marker_size(self):
        return 100


camera = TestCamera(0)

while True:
    marker_ids = camera.get_visible_markers()
    print("I can see {} markers".format(len(marker_ids)), end="\r")  # noqa: T001

Visual Demo

from chrono import Timer

from zoloto.cameras.camera import Camera
from zoloto.marker_dict import MarkerDict
from zoloto.viewer import CameraViewer


class TestCamera(Camera):
    marker_dict = MarkerDict.DICT_6X6_50

    def get_marker_size(self):
        return 100


class Viewer(CameraViewer):
    def on_frame(self, frame):
        with Timer() as annotate_timer:
            camera._annotate_frame(frame)
        print(round(annotate_timer.elapsed * 1000), end="\r")  # noqa: T001
        return frame


camera = TestCamera(0)


Viewer(camera).start()