Python生成ArUco标签并保存在本地

简介: 写一个Python程序,能够生成指定字典的aruco标签图片,并保存在本地

实验目的:

写一个Python程序,能够生成指定字典的aruco标签图片,并保存在本地


程序实现:

要编写一个能够生成指定字典的 ArUco 标签图片并保存在本地的 Python 程序,你可以使用 opencv-python 库来生成和处理图像,以及 numpy 库来处理数组。确保你已经安装了这两个库。下面是一个示例程序:

import cv2
import numpy as np
def generate_aruco_marker(marker_id, dictionary_name, size=200):
    aruco_dict = cv2.aruco.Dictionary_get(dictionary_name)
    marker_image = np.zeros((size, size), dtype=np.uint8)
    marker_image = cv2.aruco.drawMarker(aruco_dict, marker_id, size, marker_image)
    return marker_image
def save_marker_image(marker_id, dictionary_name, filename):
    marker_image = generate_aruco_marker(marker_id, dictionary_name)
    cv2.imwrite(filename, marker_image)
    print(f"Marker image saved as {filename}")
if __name__ == "__main__":
    marker_id = 0  # 修改为你希望生成的 ArUco 标签 ID
    dictionary_name = cv2.aruco.DICT_4X4_50  # 修改为你希望使用的字典类型
    filename = f"aruco_marker_{marker_id}.png"
    save_marker_image(marker_id, dictionary_name, filename)


在这个示例程序中,我们定义了两个函数:generate_aruco_marker 用于生成 ArUco 标签图片,save_marker_image 用于保存生成的标签图片。你可以通过修改 marker_iddictionary_name 变量来指定要生成的标签的 ID 和所使用的字典类型。运行程序后,生成的标签图片将会保存在与程序同级的目录下。


请注意,确保你已经安装了 opencv-python 库,如果没有安装,可以使用以下命令进行安装:


pip install opencv-python


此外,确保你也安装了 numpy 库:

pip install numpy


字典选择

ArUco 字典有多种类型,每种类型都包含不同数量和大小的标签。在示例程序中,dictionary_name 使用了 cv2.aruco.DICT_4X4_50,这是一种 4x4 大小的字典,包含了 50 个不同的标签。


除了 cv2.aruco.DICT_4X4_50,还有其他几种常用的字典类型,你可以根据需要选择:

  1. cv2.aruco.DICT_4X4_100: 包含 100 个 4x4 大小的标签。
  2. cv2.aruco.DICT_4X4_250: 包含 250 个 4x4 大小的标签。
  3. cv2.aruco.DICT_4X4_1000: 包含 1000 个 4x4 大小的标签。
  4. cv2.aruco.DICT_5X5_50: 包含 50 个 5x5 大小的标签。
  5. cv2.aruco.DICT_5X5_100: 包含 100 个 5x5 大小的标签。
  6. cv2.aruco.DICT_5X5_250: 包含 250 个 5x5 大小的标签。
  7. cv2.aruco.DICT_5X5_1000: 包含 1000 个 5x5 大小的标签。

还有其他的大小和数量组合,你可以根据你的需要选择适合的字典类型。例如,如果你需要更大或更多样的标签,可以选择更大的字典类型。在程序中,只需将 dictionary_name 替换为你选择的字典类型即可。


此外,"original" 字典是 ArUco 标签的默认字典,它包含了最常用的标签类型。这个字典的命名为 cv2.aruco.DICT_ARUCO_ORIGINAL,它包含了 1024 个不同的标签,每个标签都有不同的 ID 和图案。如果希望使用这个默认字典,可以在示例程序中的 dictionary_name 变量中使用 cv2.aruco.DICT_ARUCO_ORIGINAL


dictionary_name = cv2.aruco.DICT_ARUCO_ORIGINAL

这样,生成的标签将会使用 "original" 字典中的标签类型。注意,"original" 字典相对来说是比较大的,包含了很多不同的标签,所以生成的标签图片可能会相对复杂一些。

目录
相关文章
|
3月前
|
XML 存储 数据处理
python绘制热力图-数据处理-VOC数据类别标签分布及数量统计(附代码)
python绘制热力图-数据处理-VOC数据类别标签分布及数量统计(附代码)
106 0
|
3月前
|
机器学习/深度学习 存储 计算机视觉
python深度学习图像处理CSV文件分类标签图片到各个文件夹
python深度学习图像处理CSV文件分类标签图片到各个文件夹
143 0
|
3月前
|
数据可视化 Python
python数据可视化 - matplotlib专题:带数据标签的双batch的Bar图绘制示例
python数据可视化 - matplotlib专题:带数据标签的双batch的Bar图绘制示例
57 0
|
2月前
|
数据可视化 Python
Python中的数据可视化:在数据点上添加标签
Python中的数据可视化:在数据点上添加标签
76 3
|
3月前
|
XML 数据格式 Python
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
|
2月前
|
Python
Python基础教程(第3版)中文版 第20章 项目1: 自动添加标签(纯文本转HTML格式) (笔记2)
Python基础教程(第3版)中文版 第20章 项目1: 自动添加标签(纯文本转HTML格式) (笔记2)
|
2月前
|
Python
Python基础教程(第3版)中文版 第20章 项目1: 自动添加标签(纯文本转HTML格式) (笔记)
Python基础教程(第3版)中文版 第20章 项目1: 自动添加标签(纯文本转HTML格式) (笔记)
|
3月前
|
机器学习/深度学习 存储 自然语言处理
用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类
用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类
|
3月前
|
XML JavaScript 数据格式
python - bs4提取XML/HTML中某个标签下的属性
python - bs4提取XML/HTML中某个标签下的属性
50 0
|
3月前
|
Python Windows
python图形页面:tkinter文字标签
python图形页面:tkinter文字标签