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

OpenCV 4.7.0中aruco.interpolateCornersCharuco属性错误求助

问题解决:AttributeError: module 'cv2.aruco' has no attribute 'interpolateCornersCharuco'

在OpenCV 4.x版本(包括你使用的4.7.0)中,interpolateCornersCharuco函数已作为CharucoBoard类的成员方法存在,不再是cv2.aruco模块的顶层函数,需通过创建好的board对象调用该方法。

修改后的代码如下:

board = aruco.CharucoBoard((row, col), squareLength, markerLenght, arUsedDictionnary)
# 改用board对象调用interpolateCorners方法
charucoretval, charucoCorners, charucoIds = board.interpolateCorners(arMarkersCorners, arMarkersId, 
                                                                     grayImg, cameraCalibrationMatrix, calibrationDistCoef)
# 修正drawDetectedCornersCharuco的参数:使用插值得到的Charuco角点和ID
computedImage = aruco.drawDetectedCornersCharuco(img, charucoCorners, charucoIds, (0,255,0))
retval, rvec, tvec = aruco.estimatePoseCharucoBoard(charucoCorners, charucoIds, board, cameraCalibrationMatrix, calibrationDistCoef)

补充两个关键细节:

  • 调用interpolateCorners时传入相机内参和畸变系数,可提升角点插值精度;若无需高精度,也可传None替代。
  • 原代码中drawDetectedCornersCharuco的参数错误,需使用插值生成的charucoCorners和charucoIds,才能正确绘制Charuco板的内角点。

若问题仍存在,确认安装的是完整的opencv-contrib-python包(ArUco/Charuco属于OpenCV的contrib扩展模块),执行以下命令更新:

pip install --upgrade opencv-contrib-python

内容的提问来源于stack exchange,提问作者Maxime Dumonteil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:57:55