Skip to main content

STag - A Stable, Occlusion-Resistant Fiducial Marker System

Project description

Build and upload to PyPI PyPI - Python Version

Python Wrapper for STag - A Stable, Occlusion-Resistant Fiducial Marker System

📊 Comparison Between Different Marker Systems:

📖 Usage

Installation

pip install stag-python

Example

Note: in this example cv2 is used for loading the image. To use cv2, you need to install opencv-python: pip install opencv-python

import stag
import cv2

# specify marker type
libraryHD = 21

# load image
image = cv2.imread("example.jpg")

# detect markers
(corners, ids, rejected_corners) = stag.detectMarkers(image, libraryHD)

For a more comprehensive example refer to example.py

🏷 Markers

🛠 Configuration

Following parameters can be specified:

  • libraryHD:

    • Sets the "family" or "type" of used STag markers

      • Each library has a different amount of markers
      • Only the markers of the chosen library will be detected
    • The following HD libraries are possible:

      HD 11 13 15 17 19 21 23
      Library Size 22,309 2,884 766 157 38 12 6
    • Specifies the used Hamming Distance, for further information refer to the original paper

  • errorCorrection:

    • Sets the amount of error correction
    • Has to be in range 0 <= errorCorrection <= (libraryHD-1)/2
    • For further information refer to the original paper

📋 Build From Source

  1. Install Prerequisites

    CMake >= 3.16

    • On Linux: apt install cmake

    OpenCV 4 for C++

    • On Linux: apt install libopencv-dev

    NumPy: pip install numpy

    • On Linux: if during step 2 the error "numpy/ndarrayobject.h: No such file or directory" occurs, try one of following solutions:
      • Run apt install python-numpy or
      • Search for "ndarrayobject.h" (find / -name ndarrayobject.h) and create a symlink from its parent directory to "/usr/include/numpy" (e.g. ln -s /usr/local/lib/python3.8/dist-packages/numpy/core/include/numpy /usr/include/numpy)
  2. Clone this repository recursively:

    • git clone --recursive https://github.com/ManfredStoiber/stag-python
  3. Build the project

    In the project directory, run the following command:

    • pip install .
  4. Run the example

    1. cd example
    2. python example.py

📰 Originally Published in the Following Paper:

B. Benligiray; C. Topal; C. Akinlar, "STag: A Stable Fiducial Marker System," Image and Vision Computing, 2019.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stag-python-1.0.0.tar.gz (11.9 kB view hashes)

Uploaded Source

Built Distributions

stag_python-1.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

stag_python-1.0.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (13.5 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

stag_python-1.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

stag_python-1.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl (908.7 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

stag_python-1.0.0-pp39-pypy39_pp73-win_amd64.whl (17.1 MB view hashes)

Uploaded PyPy Windows x86-64

stag_python-1.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

stag_python-1.0.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (13.5 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

stag_python-1.0.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

stag_python-1.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (908.7 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

stag_python-1.0.0-pp38-pypy38_pp73-win_amd64.whl (17.1 MB view hashes)

Uploaded PyPy Windows x86-64

stag_python-1.0.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

stag_python-1.0.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (13.5 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

stag_python-1.0.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

stag_python-1.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (908.7 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

stag_python-1.0.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

stag_python-1.0.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (13.5 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

stag_python-1.0.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.7 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

stag_python-1.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (908.2 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

stag_python-1.0.0-cp312-cp312-win_amd64.whl (17.0 MB view hashes)

Uploaded CPython 3.12 Windows x86-64

stag_python-1.0.0-cp312-cp312-win32.whl (9.9 MB view hashes)

Uploaded CPython 3.12 Windows x86

stag_python-1.0.0-cp312-cp312-musllinux_1_1_x86_64.whl (20.9 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

stag_python-1.0.0-cp312-cp312-musllinux_1_1_ppc64le.whl (6.9 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ ppc64le

stag_python-1.0.0-cp312-cp312-musllinux_1_1_i686.whl (7.2 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

stag_python-1.0.0-cp312-cp312-musllinux_1_1_aarch64.whl (6.2 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ ARM64

stag_python-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.3 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

stag_python-1.0.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (13.6 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

stag_python-1.0.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (13.5 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

stag_python-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.7 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

stag_python-1.0.0-cp312-cp312-macosx_10_9_x86_64.whl (909.3 kB view hashes)

Uploaded CPython 3.12 macOS 10.9+ x86-64

stag_python-1.0.0-cp311-cp311-win_amd64.whl (17.0 MB view hashes)

Uploaded CPython 3.11 Windows x86-64

stag_python-1.0.0-cp311-cp311-win32.whl (9.9 MB view hashes)

Uploaded CPython 3.11 Windows x86

stag_python-1.0.0-cp311-cp311-musllinux_1_1_x86_64.whl (20.9 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

stag_python-1.0.0-cp311-cp311-musllinux_1_1_ppc64le.whl (6.9 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ ppc64le

stag_python-1.0.0-cp311-cp311-musllinux_1_1_i686.whl (7.2 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

stag_python-1.0.0-cp311-cp311-musllinux_1_1_aarch64.whl (6.2 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

stag_python-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.3 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

stag_python-1.0.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (13.6 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

stag_python-1.0.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (13.5 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

stag_python-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

stag_python-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl (910.5 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

stag_python-1.0.0-cp310-cp310-win_amd64.whl (17.0 MB view hashes)

Uploaded CPython 3.10 Windows x86-64

stag_python-1.0.0-cp310-cp310-win32.whl (9.9 MB view hashes)

Uploaded CPython 3.10 Windows x86

stag_python-1.0.0-cp310-cp310-musllinux_1_1_x86_64.whl (20.9 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

stag_python-1.0.0-cp310-cp310-musllinux_1_1_ppc64le.whl (6.9 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ ppc64le

stag_python-1.0.0-cp310-cp310-musllinux_1_1_i686.whl (7.2 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

stag_python-1.0.0-cp310-cp310-musllinux_1_1_aarch64.whl (6.2 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

stag_python-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.3 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

stag_python-1.0.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (13.6 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

stag_python-1.0.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (13.5 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

stag_python-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.7 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

stag_python-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl (909.0 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

stag_python-1.0.0-cp39-cp39-win_amd64.whl (17.0 MB view hashes)

Uploaded CPython 3.9 Windows x86-64

stag_python-1.0.0-cp39-cp39-win32.whl (9.9 MB view hashes)

Uploaded CPython 3.9 Windows x86

stag_python-1.0.0-cp39-cp39-musllinux_1_1_x86_64.whl (20.9 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

stag_python-1.0.0-cp39-cp39-musllinux_1_1_ppc64le.whl (6.9 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ ppc64le

stag_python-1.0.0-cp39-cp39-musllinux_1_1_i686.whl (7.2 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

stag_python-1.0.0-cp39-cp39-musllinux_1_1_aarch64.whl (6.2 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ ARM64

stag_python-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.3 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

stag_python-1.0.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (13.6 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

stag_python-1.0.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (13.5 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

stag_python-1.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.7 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

stag_python-1.0.0-cp39-cp39-macosx_10_9_x86_64.whl (909.1 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

stag_python-1.0.0-cp38-cp38-win_amd64.whl (17.1 MB view hashes)

Uploaded CPython 3.8 Windows x86-64

stag_python-1.0.0-cp38-cp38-win32.whl (9.9 MB view hashes)

Uploaded CPython 3.8 Windows x86

stag_python-1.0.0-cp38-cp38-musllinux_1_1_x86_64.whl (20.9 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

stag_python-1.0.0-cp38-cp38-musllinux_1_1_ppc64le.whl (6.9 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ ppc64le

stag_python-1.0.0-cp38-cp38-musllinux_1_1_i686.whl (7.2 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

stag_python-1.0.0-cp38-cp38-musllinux_1_1_aarch64.whl (6.2 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ ARM64

stag_python-1.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.3 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

stag_python-1.0.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (13.6 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

stag_python-1.0.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (13.5 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

stag_python-1.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.7 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

stag_python-1.0.0-cp38-cp38-macosx_10_9_x86_64.whl (909.0 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

stag_python-1.0.0-cp37-cp37m-win_amd64.whl (17.1 MB view hashes)

Uploaded CPython 3.7m Windows x86-64

stag_python-1.0.0-cp37-cp37m-win32.whl (9.9 MB view hashes)

Uploaded CPython 3.7m Windows x86

stag_python-1.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl (20.9 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

stag_python-1.0.0-cp37-cp37m-musllinux_1_1_ppc64le.whl (6.9 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ ppc64le

stag_python-1.0.0-cp37-cp37m-musllinux_1_1_i686.whl (7.2 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

stag_python-1.0.0-cp37-cp37m-musllinux_1_1_aarch64.whl (6.2 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ ARM64

stag_python-1.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (27.3 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

stag_python-1.0.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (13.6 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ppc64le

stag_python-1.0.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (13.5 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

stag_python-1.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.7 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

stag_python-1.0.0-cp37-cp37m-macosx_10_9_x86_64.whl (909.3 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page