<!– 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 –>