Какими должны быть правильные «объекты» для калибровки камеры и стереокалибровки? - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть стереокамера, и мне нужно выполнить внутреннюю и внешнюю калибровку. Хотя ошибка перепроецирования выглядит нормально (<0,1 пикселя), внешние признаки странные. Перевод между левой и правой камерами слишком мал. </p>

Я следовал этому учебнику для встроенных функций обеих камер, затем использовал стереоКалибрат для внешних.

# prepare object points, like (0,0,0), (1,0,0), (2,0,0) ....,(8,6,0)
objp = np.zeros((9*7,3), np.float32)
objp[:,:2] = np.mgrid[0:9,0:7].T.reshape(-1,2)
objpoints2 = []
imgpoints2 = []

# Load images
images = glob.glob('*.tiff')
for fname in images:
    img = cv2.imread(fname)
    # Find the chess board corners
    ret, corners = cv2.findCirclesGrid(img, (9,7), flags=cv2.CALIB_CB_SYMMETRIC_GRID, blobDetector=detector)
    # If found, add object points, image points (after refining them)
    if ret:
        objpoints2.append(objp)
        imgpoints2.append(corners)
        # Draw and display the corners
        img = cv2.drawChessboardCorners(img, (9,7), corners, ret)
        cv2.imshow('img', img)
        cv2.waitKey(50)
cv2.destroyAllWindows()
matrix2, distort2 = cv2.calibrateCamera(objpoints2, imgpoints2, (640,480), None, None)

Затем я делаю стереокалибровку:

R, T = cv2.stereoCalibrate(objpoints2, imgpoints1, imgpoints2, matrix1, distort1, matrix2, distort2, (640,480))

Мой вопрос: какое должно быть правильное значение для objp? Я использовал значение из учебного пособия, но означает ли это, что мои шаблоны имеют размер 1 мм?

objp[:,:2] = np.mgrid[0:9,0:7].T.reshape(-1,2)

Большое спасибо.

1 Ответ

0 голосов
/ 17 апреля 2019

Я нашел ответ.

Для внутренней калибровки не имеет значения, если я не предоставлю правильное расстояние между углами.

Однако для внешней (стерео) калибровки я должен предоставить правильные значения, иначе масштаб будет неправильным, а перевод будет небольшим.

В качестве альтернативы мне нужно умножить фактическое расстояние шаблона до конечного вектора перевода для правильного масштаба.

...