카메라 파라미터 객체를 사용하여 영상에서 왜곡 제거하기
카메라 보정 함수를 사용하여 영상에서 왜곡을 제거할 수 있습니다. 이 예제에서는 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)")