Reprojected points not matching the checkerboard image

54 visualizaciones (últimos 30 días)
Jiajian
Jiajian el 24 de Oct. de 2025 a las 18:20
Respondida: Qu Cao el 27 de Oct. de 2025 a las 20:17
I tried to manually visuallize my multi-cam calibration results and I was stuck at the following issue:
I first visualized the imagePoints extracted from detectCheckerboardPoints onto my image. This step was fine (I could tell that the points were located exactly at the checkerboard intersections).
Then I visualized the reprojected points from the result of estimateMultiCameraParameters. I obtained these points in this path:
multiParams.CameraParameters{:}.ReprojectedPoints(:,:,:)
However, I found the reprojectedPoints were not matching the imagePoints well. I found the reprojected points shared the same origin as the detected points, but had a rotational difference (see image belowm, red dots are imagePoints and blue circles are reprojectdPoints). The reprojection error in this calibration is only 0.4 pixel, with less than 1 pixel for all single images.
Can anyone explain this for me. I appreciate your answer.
  6 comentarios
Jiajian
Jiajian el 24 de Oct. de 2025 a las 21:00
@Matt J, also thank you for your second comment. I'm only showing the path of the reprojected points. For sure if I need to visualize, I will need to specify my index, which means I should replace the ":" with my cam numbers or the image index.
Thanks, Jiajian
Jiajian
Jiajian el 24 de Oct. de 2025 a las 21:12
Editada: Jiajian el 24 de Oct. de 2025 a las 21:16
@Qu Cao, there are a few more things I've noticed when using estimateMultiCameraParameters:
  1. It does not account for the camera distortion, although I claimed non-zero RadialDistortion in my intrinsics. This is contradictory to the description of its official document: "The function adjusts all image points for distortion according to the lens distortion parameters specified in the intrinsics input."
  2. Its CameraPoses outcome is inconsistent with the stereo calibrator app. From one to the other, their rotation matrices are inversed.
Thanks, Jiajian

Iniciar sesión para comentar.

Respuesta aceptada

Qu Cao
Qu Cao el 27 de Oct. de 2025 a las 20:17
The problem stems from an incorrect rotationVector assignment in estimateMultiCameraParameters. To fix the issue, please change Line 111 in estimateMultiCameraParameters
from
rotationVectors(i, :) = rotmat2vec3d(patternExtrinsics(viewIdx, camIdx).R');
to
rotationVectors(i, :) = rotmat2vec3d(patternExtrinsics(viewIdx, camIdx).R);
Note that the transpose should be removed.

Más respuestas (0)

Categorías

Más información sobre MATLAB Support Package for USB Webcams en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2025a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by