gpt4 book ai didi

opencv - 图像角落的相机校准

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

我正在使用 OpenCV 并致力于校准相机,这是第一次测试 charuco 型校准器。
我对这个校准器有很多期望,我想用它我可以比标准棋盘更接近图像的角落,因为不需要完全看到 charuco。这在理论上应该有助于投影系统的建模,因为角落处的光学变形更大。
不过,我得到的结果让我有点困惑。 interpolateCharucoCorners函数,永远不会返回棋盘的最后一行/列,因此无法使用图像的这些区域进行校准。
只是为了给您一个想法,我附上了下图,其中我突出显示了由 interpolateCharucoCorners 提取的点所描述的区域。 (面积是整个点集的凸包)。
查鲁科委员会:
Charuco Board
如您所见,标记右侧的最后一列尚未提取。你能帮我解释一下为什么吗?如何在校准中包含这些像素? ChArUco 角提取如下。
这是我的代码,但与示例中的代码相同:

image_grayscale = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
corners, ids, rejected_points = cv2.aruco.detectMarkers(image_grayscale, board.dictionary)
_, charuco_corners, charuco_ids = cv2.aruco.interpolateCornersCharuco(corners, ids, image_grayscale, board)

最佳答案

我终于找到了解决方案。可以通过设置参数minMarkers = 0提取边缘附近的标记。在 interpolateCornersChaurco .从文档:
MinMarkers:必须检测到的相邻标记的数量才能返回一个 charuco 角。
https://docs.opencv.org/3.4/d9/d6a/group__aruco.html#gadcc5dc30c9ad33dcf839e84e8638dcd1
这是生成的图像:
enter image description here

关于opencv - 图像角落的相机校准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62528891/

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