You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCV 4.8.1中cv2.aruco无drawMarker()函数的报错问题

解决OpenCV 4.8.1中cv2.aruco.drawMarker()不存在的问题

OpenCV 4.8.1版本的aruco模块中,cv2.aruco.drawMarker()已被移除,取而代之的是generateImageMarker()函数,这就是触发AttributeError: module 'cv2.aruco' has no attribute 'drawMarker'错误的原因。

从OpenCV 4.7系列版本开始,aruco模块对API做了命名优化,生成单个ArUco标记的函数从drawMarker更名为generateImageMarker,两者参数和功能完全一致,只是命名更贴合“生成图像”的实际作用。

将代码中的cv2.aruco.drawMarker替换为cv2.aruco.generateImageMarker即可正常运行,修改后的完整代码如下:

import cv2
import numpy as np
import matplotlib.pyplot as plt

# 创建ArUco标记的预定义字典
dictionary = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_6X6_250)

# 生成ArUco标记图像
marker_id = 23
marker_size = 200
marker_image = cv2.aruco.generateImageMarker(dictionary, marker_id, marker_size)

# 用matplotlib显示标记
plt.imshow(marker_image, cmap='gray')
plt.axis('off')
plt.show()

你执行print(dir(cv2.aruco))得到的列表中已包含generateImageMarker,替换后即可成功生成并显示ArUco标记。

内容的提问来源于stack exchange,提问作者Mckinley Douberman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:37:46