Lidar calibration with fixed intrinsic parameters
Mostra commenti meno recenti
Hi, I have a calibration data which is,
Angle : LR, UD, Rot
-14.144831,-0.008000,0.000249
TranslationMatrix
-0.010000,-0.090000,-0.135700
intrinsicCameraParameter
1055.465497,1055.605856,969.483445,603.504962,-0.146335,0.063113,-0.001973,0.000488
and I wonder if there's a way that I can apply these parameters for lidar-camera calibration in MATLAB.
Risposte (1)
Maneet Kaur Bagga
il 7 Set 2023
Hi Seungryul Lee,
Please follow the steps provided below to apply these parameters for Lidar-Camera Calibration:
- Load the Calibration data in MATLAB by either reading the data from a file or directly assigning the values to the variables.
- You can create the "cameraIntrinsics" object using the provided Intrinsic Camera Parameter as shown in the code provided below.
focalLength = [1055.465497, 1055.605856];
principalPoint = [969.483445, 603.504962];
radialDistortion = [-0.146335, 0.063113];
tangentialDistortion = [-0.001973, 0.000488];
intrinsics = cameraIntrinsics(focalLength, principalPoint,'RadialDistortion', radialDistortion, ...
'TangentialDistortion', tangentialDistortion);
- Create a transformation Matrix that represents the rotation and translation between the lidar, and the camera coordinate systems as shown in the code provided below.
rotationAngles = [-14.144831, -0.008000, 0.000249];
translationVector = [-0.010000, -0.090000, -0.135700];
rotationMatrix = eul2rotm(deg2rad(rotationAngles), 'XYZ');
translationMatrix = translationVector';
extrinsics = rigidtform3d(rotationMatrix, translationMatrix);
Now you can apply the intrinsic and extrinsic calibration parameters to the lidar and camera data:
- For lidar data, you can transform the lidar points to the camera coordinate system using the "transformPointsForward" function as shown in the code provided below.
lidarPoints = ... % Your lidar data, Nx3 matrix
cameraPoints = transformPointsForward(extrinsics, lidarPoints);
- For camera data, you can undistort the distorted image points using the “undistortPoints” function as shown in the code provided below.
distortedImagePoints = ... % Your distorted image points, Nx2 matrix
undistortedImagePoints = undistortPoints(distortedImagePoints, intrinsics);
For better understanding please refer to the following MATLAB Documentations provided below:
cameraParameters
cameraIntrinsics
rigidtform3d
I hope this helps!
Thank You
Maneet Bagga
Categorie
Scopri di più su Process Point Clouds in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!