Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用ids offset生成charuco板_Python_Opencv_Aruco - Fatal编程技术网

Python 如何使用ids offset生成charuco板

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

我正在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

---------------------------------------------------------------------------
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)