Python 如何使用ids offset生成charuco板
我正在python中使用Opencv中的Charuco标记。我以前使用的是Aruco board,我可以选择创建一个id和偏移量(例如:偏移量为40)的board 但是,该选项似乎不适用于Charuco板。我发现的最接近的解决方案是在C++中提出的,但是,由于ID不可写,所以选项不在Python中工作。p>Python 如何使用ids offset生成charuco板,python,opencv,aruco,Python,Opencv,Aruco,我正在python中使用Opencv中的Charuco标记。我以前使用的是Aruco board,我可以选择创建一个id和偏移量(例如:偏移量为40)的board 但是,该选项似乎不适用于Charuco板。我发现的最接近的解决方案是在C++中提出的,但是,由于ID不可写,所以选项不在Python中工作。p> board = ar.CharucoBoard_create(15, 7, 1, .8, ar_dict) board.ids += 10 ------------------------
board = ar.CharucoBoard_create(15, 7, 1, .8, ar_dict)
board.ids += 10
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-11-410d8ac9fdda> in <module>
----> 1 board.ids += 10
AttributeError: attribute 'ids' of 'cv2.aruco_Board' objects is not writable
board=ar.CharucoBoard\u create(15,7,1,8,ar\u dict)
board.ids+=10
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
在里面
---->1板ID+=10
AttributeError:“cv2.aruco_Board”对象的属性“ID”不可写
有人知道在python中,在创建Charuco board对象时,是否有其他替代方法可以向标记ID添加偏移量
import cv2
from cv2 import aruco
aruco_dict = aruco.Dictionary_get(aruco.DICT_5X5_250)
aruco_dict.bytesList=aruco_dict.bytesList[30:,:,:]
board = aruco.CharucoBoard_create(7, 5, 1, 0.5, aruco_dict)
imboard = board.draw((2000, 2000))
cv2.imwrite("chessboard1.png", imboard)
您可以使用OpenCV 4.1.0的自定义版本更改aruco_dict的字节列表相同的问题:我还检查了源代码以查看成员说明符,但是
CV_PROP std::vectorids
按预期公开。您使用的是哪个OpenCV版本?我使用的是OpenCV 4.0.0,它在公共场合也有CV_PROP std::vectorids
。我不熟悉python包装方法,但我看到有CV\u PROP
和CV\u PROP\u RW
。简要说明两者的区别。有人建议CV\u PROP
不允许与CV\u PROP\u RW
相反的可写属性。这将改变印制板,但无助于检测
import cv2
from cv2 import aruco
aruco_dict = aruco.Dictionary_get(aruco.DICT_5X5_250)
aruco_dict.bytesList=aruco_dict.bytesList[30:,:,:]
board = aruco.CharucoBoard_create(7, 5, 1, 0.5, aruco_dict)
imboard = board.draw((2000, 2000))
cv2.imwrite("chessboard1.png", imboard)