Как найти коэффициент масштабирования проекции камеры - PullRequest
0 голосов
/ 01 июля 2019

Согласно этой документации: http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html

enter image description here

enter image description here

Я получил m ', A и [R | t]. И тогда я хочу найти М '. Но я понятия не имею, чтобы найти значение s, которое является масштабным фактором. Я также могу получить расстояние между камерой и целью, используя датчик глубины. (Я использую Intel RealSense 435D)

Скажите, пожалуйста, как найти значение s, используя информацию о глубине.

1 Ответ

1 голос
/ 01 июля 2019

Правда в том, что вам не нужно находить значение, просто найдите обратную матрицу Q. Пусть Opencv обработает все остальное.так как у вас D435 означает, что у вас есть стерео, и вы можете выполнить обычное стерео согласование и получить список вещей.

Первая получена

Матрица Q

матрица из

.T, R1, R2, P1, P2, Q, CALIB_ZERO_DISPARITY, 0, frame_size, 0, 0);

Затем получить глубину и цветное изображение из выходного стереосогласования.

sgbm-> compute (img1, img2, disp);

Как минимум вызов

C ++: void reprojectImageTo3D (несоответствие InputArray,OutputArray _3dImage, InputArray Q, bool handleMissingValues ​​= false, int ddepth = -1)

Трехмерное облако точек находится в переменной с именем _3Dimage

Если вы ищете 3 функции, выпоймет, что вы можете найти его в OpenCV непосредственно https://github.com/opencv/opencv/blob/master/samples/cpp/stereo_match.cpp

enter image description here

enter image description here

enter image description here

...