<!– wp:paragraph –>

在OpenCV中,cv2.aruco 模块确实没有名为 drawMarker 的函数。如果你尝试调用 cv2.aruco.drawMarker,你会遇到 AttributeError,因为该函数不存在。

<!– /wp:paragraph –><!– wp:paragraph –>

正确的函数来绘制Aruco标记的是 cv2.aruco.drawMarker 的旧版本,即 cv2.aruco.drawMarker。然而,请注意,OpenCV的某些版本可能已经弃用了这个旧版本的函数,并引入了新的API。

<!– /wp:paragraph –><!– wp:paragraph –>

在较新版本的OpenCV中,绘制Aruco标记的正确方式应该是使用 cv2.aruco.drawDetectorMarkers 函数。以下是一个例子:

<!– /wp:paragraph –><!– wp:code –>

<pre class=“wp-block-code”><code>import cv2 import numpy as np # 加载Aruco字典 aruco_dict = cv2.aruco.Dictionary_get(cv2.aruco.DICT_6X6_250) # 创建标记ID列表 marker_ids = [22] # 创建空白的图像,其大小足够容纳标记 marker_image = np.zeros((200, 200, 3), dtype=np.uint8) # 绘制标记 (success, image) = cv2.aruco.drawDetectorMarkers(marker_image, marker_ids, aruco_dict) if success: # 显示或保存图像 cv2.imshow(‘Marker’, image) cv2.waitKey(0) cv2.destroyAllWindows()</code></pre>

<!– /wp:code –><!– wp:paragraph –>

在上面的代码中,drawDetectorMarkers 函数接受一个空白图像、一个包含标记ID的列表、Aruco字典以及可选参数(如标记的大小和边距)。函数会返回一个布尔值表示是否成功绘制了标记,以及包含绘制标记的更新图像。

<!– /wp:paragraph –><!– wp:paragraph –>

如果你正在使用的OpenCV版本仍然包含 drawMarker 函数,并且你想使用它,那么你需要确保你的OpenCV版本是较旧的,并且该函数尚未被弃用。然而,通常建议升级到最新版本的OpenCV,并使用最新的API,因为这样可以获得更好的性能、新功能和错误修复。

<!– /wp:paragraph –><!– wp:paragraph –>

请确保你的OpenCV库是最新版本,或者至少是一个包含 drawDetectorMarkers 函数的版本。你可以通过运行 pip install --upgrade opencv-python 来更新你的OpenCV库。如果这不起作用,你可能需要手动安装一个特定版本的OpenCV,或者从源代码编译它。

<!– /wp:paragraph –>