一、标定
设备使用的是insta 360 pro
Insta360 Pro 是一个全景相机,它使用了多个镜头(通常是六个)来捕捉全方位的图像和视频。这些镜头捕捉到的图像会经过软件处理,最终生成一个全景图像或视频
在matlab中进行相机标定,具体标定方法可以看相关文章相机标定
由于拍摄的是全景照片,记得要把Camera Model设置成fisheye
鱼眼镜头标定完后会有四个参数分别是
Mapping Coefficients: 映射系数
Image Size: 图像大小
Distortion Center: 畸变中心
Stretch Matrix: 拉伸变换
二、去畸变
经过鱼眼镜头畸变校正后,图像的畸变效果将会得到纠正,使得图像中的直线和几何形状更加接近实际场景。校正后的图像可以提供更准确的视觉信息,适用于各种图像处理和计算机视觉应用。以下是鱼眼镜头畸变校正后的一些结果:
-
直线变直: 鱼眼镜头通常会导致图像中的直线呈现弯曲或弯曲的形状。经过校正后,这些直线将会变得更加直,更符合实际场景中的直线。
-
几何形状恢复: 如果图像中存在一些几何形状,比如正方形或矩形,经过校正后,这些形状将会更接近真实的形状,而不会因畸变而变形。
-
视觉感知更自然: 校正后的图像通常会使视觉感知更加自然和真实。人眼对于直线和几何形状的识别更容易,校正后的图像在人眼中看起来更符合直觉。
-
测量和分析准确性提升: 如果你需要在图像上进行测量或分析,校正后的图像能够提供更准确的信息,因为畸变不再影响图像中的几何关系。
-
图像配准更准确: 在一些需要将多张图像配准在一起的情况下,校正后的图像会更容易进行精确的配准,因为畸变已被消除。
直线变直操作
#直线变直的操作
img = imread("num_1.jpg");%图片路径
% 使用相机参数进行矫正
intrinsics =cameraParams.Intrinsics;
% intrinsics = cameraIntrinsics(cameraParams.Intrinsics);
%intrinsics = calibrationSession.CameraParameters.Intrinsics;
%result = undistortFisheyeImage(img, intrinsics);
result = undistortFisheyeImage(img, intrinsics, 'OutputView', 'same');
% 显示结果
subplot(1,2,1); imshow(img); title('原始图像')
subplot(1,2,2); imshow(result); title('校正图像')
% 更改显示比例
set(gcf,'Visible','off')
set(gcf,'units','normalized','outerposition',[0 0 1 1]);
set(gcf,'Visible','on')