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" 字典相对来说是比较大的,包含了很多不同的标签,所以生成的标签图片可能会相对复杂一些。

目录
相关文章
|
9天前
|
XML 存储 数据处理
python绘制热力图-数据处理-VOC数据类别标签分布及数量统计(附代码)
python绘制热力图-数据处理-VOC数据类别标签分布及数量统计(附代码)
72 0
|
9天前
|
机器学习/深度学习 存储 计算机视觉
python深度学习图像处理CSV文件分类标签图片到各个文件夹
python深度学习图像处理CSV文件分类标签图片到各个文件夹
87 0
|
9天前
|
数据可视化 Python
python数据可视化 - matplotlib专题:带数据标签的双batch的Bar图绘制示例
python数据可视化 - matplotlib专题:带数据标签的双batch的Bar图绘制示例
41 0
|
3天前
|
XML 数据格式 Python
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
|
9天前
|
机器学习/深度学习 存储 自然语言处理
用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类
用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类
|
9天前
|
XML JavaScript 数据格式
python - bs4提取XML/HTML中某个标签下的属性
python - bs4提取XML/HTML中某个标签下的属性
30 0
|
9天前
|
Python Windows
python图形页面:tkinter文字标签
python图形页面:tkinter文字标签
python 绘图中的一些小技巧(显示中文标签,显示负号,共用x轴,设置轴的属性。。。)
python 绘图中的一些小技巧(显示中文标签,显示负号,共用x轴,设置轴的属性。。。)
|
11月前
|
Python
Python应用专题 | 13:将标签转为onehot形式
在做文本分类的时候,常常需要将标签转为one-hot的数值形式,本文主要从代码的角度介绍该操作。
|
12月前
|
Python
python脚本两个文件夹里的文件名对比找出不同图片和标签
使用labelimg给图片集标注,标注后发现图片文件夹内的图片数量和标签文件夹里面的标签文件数量不同,由于数量太多难以找出哪些差别,可以使用python脚本进行图片文件夹和标签文件夹两个文件夹的对比,将它们下有差别的文件名列出来。 以下是源码。
148 0