小编Joc*_*pek的帖子

opencv charuco相机校准不会正确扭曲

我在使 Charuco 相机校准正常工作时遇到了一些麻烦。据我所知,我做的一切都是正确的,但最终未失真的图像比预期的扭曲得多。它确实适用于 4x4 板,但校正的区域太小,因此我需要使其适用于 7x7 板。如果有人能看到我做错了什么,非常感谢帮助,我现在有点卡住了。所以情况是这样的:

我设置了 4 个相机,每个相机都需要校准。我每个相机都有 11 张 charuco 板 7x7_1000 的照片,所以总共 44 张图像

这些是原始图像(适用于所有相机):

图片描述

根据我在教程中的理解*,并不是所有标记都需要可见,charuco 相机校准才能工作(这是 charuco bord 的整个想法)所以据我所知,源图像很好。

我检索每个相机图像集的标记和插值棋盘角,并将它们提供给 v2.aruco.calibrateCameraCharuco 函数。一切看起来都很好,正如这张带有除一个标记之外的所有标记的图像所示:

图片描述

于是我继续调用cv2.un Distort函数,但结果不是我所期望的:

图片描述

这是我根据教程中的示例编写的代码:

def draw_charuco_board( filename, board, size=(2000, 2000) ):
    imboard = board.draw(size)
    cv2.imwrite(filename, imboard)


def detect_charuco_corners( full_board_image_gray, board ):
    parameters = cv2.aruco.DetectorParameters_create()
    return cv2.aruco.detectMarkers(full_board_image_gray, board.dictionary, parameters=parameters)


def charuco_camera_calib( board, filename_glob_pattern, do_flip=False, flip_axis=0 ):
    """
    calibrates the camera using the charuco board
    @see https://docs.opencv.org/trunk/d9/d6a/group__aruco.html#ga54cf81c2e39119a84101258338aa7383
    @see https://github.com/opencv/opencv_contrib/blob/master/modules/aruco/samples/calibrate_camera_charuco.cpp
    """
    charuco_corners = []
    charuco_ids = [] …
Run Code Online (Sandbox Code Playgroud)

opencv camera-calibration aruco

6
推荐指数
1
解决办法
2048
查看次数

标签 统计

aruco ×1

camera-calibration ×1

opencv ×1