カメラ パラメーター オブジェクトを使用したイメージからの歪みの除去
カメラ キャリブレーション関数を使用してイメージから歪みを除去します。この例では cameraParameters オブジェクトを手動で作成していますが、実際は estimateCameraParameters または "カメラ キャリブレーター" アプリを使用してオブジェクトを派生させます。
cameraParameters オブジェクトを手動で作成します。
k = [715.2699 0 565.6995; 0 711.5281 355.3466; 0 0 1]; radialDistortion = [-0.3361 0.0921]; cameraParams = cameraParameters("K",k,"RadialDistortion",radialDistortion)
cameraParams =
cameraParameters with properties:
Camera Intrinsics
Intrinsics: [0×0 cameraIntrinsics]
Camera Extrinsics
PatternExtrinsics: [0×1 rigidtform3d]
Accuracy of Estimation
MeanReprojectionError: NaN
ReprojectionErrors: [0×2 double]
Calibration Settings
NumPatterns: 0
DetectedKeypoints: [0×2 double]
WorldPoints: [0×2 double]
WorldUnits: 'mm'
EstimateSkew: 0
NumRadialDistortionCoefficients: 2
EstimateTangentialDistortion: 0
イメージから歪みを除去します。
I = imread(fullfile(matlabroot,"toolbox","vision","visiondata","calibration","mono","image01.jpg")); J = undistortImage(I,cameraParams);
元のイメージと歪み補正後のイメージを表示します。
montage({I,J})
title("Original Image (left) vs. Corrected Image (right)")