gpt4 book ai didi

python - 如何生成带有 ids 偏移量的 charuco 板

转载 作者:行者123 更新时间:2023-12-02 16:12:05 26 4
gpt4 key购买 nike

我在 python 中使用来自 OpencvCharuco 标记。我之前使用的是 Aruco 开发板,我可以选择创建一个带有 id 偏移量(例如:偏移量为 40)的开发板。

from cv2 import aruco as ar
ar_dict = ar.getPredefinedDictionary(ar.DICT_6X6_1000)
board = ar.ar.GridBoard_create(markersX=sizeX, markersY=sizeY, markerLength=0.04, markerSeparation=0.01, dictionary=ar_dict, firstMarker=40)

但是,该选项似乎不适用于 Charuco 板。提出了我找到的最接近的解决方案 here在 C++ 中,但是,该选项在 Python 中不起作用,因为 ID 不可写。

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

有谁知道在创建 Charuco 板对象时,python 中是否有其他替代方法可以向标记 id 添加偏移量?

编辑 2021 年 9 月

看起来设置 id 的选项现在可以在 python 中使用这个提交:https://github.com/opencv/opencv_contrib/commit/7e7fbbae3ab09a026f2a350467615abd77146808#diff-1e04b23f84e112e319f8019cb9963379a43271b15bea09259638e3dfa386bd4a .运行版本的 Opencv 4.5.3 现在可以成功修改电路板 ID。

from cv2 import aruco as ar
ar_dict = ar.getPredefinedDictionary(ar.DICT_6X6_1000)
board = ar.CharucoBoard_create(15, 7, 1, .8, ar_dict)
board.ids += 10

最佳答案

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)

你可以改变aruco_dict的bytesList

关于python - 如何生成带有 ids 偏移量的 charuco 板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59935277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com