A package to detect colored ArUco markers.
Project description
Color ArUco
Color ArUco is a Python package designed for detecting colored ArUco markers using OpenCV. This package includes functionality for capturing video from a webcam, detecting markers in real-time, and generating ArUco markers for various applications. Its primary purpose is to significantly increase the amount of data that can be transmitted via an ArUco marker. With the ability to encode over 1 trillion bits of data, it can transmit nearly a billion times more information compared to a standard ArUco marker.
Features
- Detect colored ArUco markers in real-time from webcam footage.
- Draw bounding boxes around detected markers with their IDs.
- Generate ArUco markers with customizable parameters.
Installation
To install the package via pip, you can use the following command:
pip install color_aruco
Requirements
This package depends on the following libraries:
numpy
opencv-python
Usage
Detecting Markers
To use the marker detector with your webcam, you can run the following code:
import cv2
from aruco_marker_detect import MarkerDetector
def main():
# Initialize marker detector
detector = MarkerDetector()
# Capture video from the webcam
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
# Pass the frame to the marker detector
markers = detector.detect_marker(frame)
# Iterate over all detected markers and draw their bounding boxes and IDs
for marker_id, bbox in markers:
xmin, ymin, xmax, ymax = bbox
cv2.rectangle(frame, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)
cv2.putText(frame, f"ID: {marker_id}", (xmin, ymin - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 0), 2)
# Show the frame
cv2.imshow("frame", frame)
# Exit if 'q' is pressed
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Release the video capture and close windows
cap.release()
cv2.destroyAllWindows()
if __name__ == "__main__":
main()
Generating ArUco Markers
You can also generate ArUco markers using the GenerateArucoMarker
class:
from aruco_marker_generator import GenerateArucoMarker
import cv2
# Example usage:
if __name__ == "__main__":
marker_id = 1099511627774 # Example marker ID
pixel_size = 100 # Example pixel size for saving the image
marker = GenerateArucoMarker(marker_id, pixel_size)
cv2.imwrite('aruco_marker_0.png', marker.create_aruco())
Running Tests
To ensure everything is working correctly, you can run the unit tests
provided in the tests folder:
python -m unittest discover tests
Contributing
Contributions are welcome! Please feel free to submit a pull request or create an issue if you encounter any bugs or have feature requests.
License
This project is licensed under the MIT License - see the LICENSE file for details.
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
Built Distribution
File details
Details for the file color_aruco-0.0.2.tar.gz
.
File metadata
- Download URL: color_aruco-0.0.2.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc126bf926225b19ba4fb6d49743f1e45c61668925cefb66404da4e9ca64385c |
|
MD5 | b09b8a314e77393bd56a506d75c776ca |
|
BLAKE2b-256 | 2d6f90a28ad1b28812454b8813180570efe4e91575d83b62396734927e7126da |
File details
Details for the file color_aruco-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: color_aruco-0.0.2-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7155422a06268cb3e84a3989f114630e500e5a7057e0993095075e2aff744a8 |
|
MD5 | 7eaf23bbcdcabe6601f62911a2f578a9 |
|
BLAKE2b-256 | 4865e482243b9189e946fc0d43bc4ecf46f7925a7b012413090f71114847ac6e |