fixing intrinsics during stereoCalibration (during R,T refinment)
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi.
So relating to the case in which I want to do Stereo Calibration, in the documentation of the function:
estimateCameraParameters
it said that it has an argument of initial intrinsic matrix (3 x 3 dimnesions).
I don't clearly understand why is there only one, if for exmaple I wish to initialize both initial intrisics of both CameraParameteres.
The more important question for me is:
Can I fix the intrinsics after they calculated by calibrateOneCamera , as it is done in OpenCV with flags like: CALIB_FIX_INTRINSIC and CALIB_USE_INTRINSIC_GUESS.
That way for exmaple I can calibrate each of my two cameras (for better results, especially if they are different) alone and then try to find only R and T without refining the intrinsics. But it will be also sufficient to calibrate them together and speaking openCV language using only the flag CALIB_FIX_INTRINSIC.
In my case I see that without the refinment the intrinsics look better for me ( relying on the scale of the numbers and the real intrinsics of one of the cameras which I know before the callibration).
What I'm asking actually, should I just turn off (comment) the refinment and may I rely on the estimateInitialTranslationAndRotation
in the following matlab peace of code in estimateCameraParameters or can the refinment (refine function below) be done (i.e code modificated somehow) to refine the R and T with fixation of the intrinsics calculated before in the code by calibrateOneCamera:
calibrationParams.shouldComputeErrors = false;
[cameraParameters1, imagesUsed1] = calibrateOneCamera(imagePoints1, ...
worldPoints, imageSize, cameraModel, worldUnits, calibrationParams);
progressBar.update();
[cameraParameters2, imagesUsed2] = calibrateOneCamera(imagePoints2, ...
worldPoints, imageSize, cameraModel, worldUnits, calibrationParams);
progressBar.update();
% Compute the initial estimate of translation and rotation of camera 2
[R, t] = vision.internal.calibration.estimateInitialTranslationAndRotation(...
cameraParameters1, cameraParameters2);
stereoParams = stereoParameters(cameraParameters1, cameraParameters2, R, t);
errors = refine(stereoParams, imagePoints1(:, :, pairsUsed), ...
imagePoints2(:, :, pairsUsed), shouldComputeErrors);
Thank you in advance.
0 comentarios
Respuestas (1)
Birju Patel
el 5 de Mayo de 2022
You can use the estimateStereoBaseline function to estimate the translation and rotation between two cameras given fixed intrinsics:
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!