#include"stdafx.h"
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat frame = imread("E:\\RotPosExperiment\\12.23\\侧面相机标定\\内参标定\\Image0019.bmp");
Mat frameCalibration;
Mat cameraMatrix = Mat::eye(3, 3, CV_64F);
cameraMatrix.at<double>(0, 0) = 10563.8903044684;
cameraMatrix.at<double>(0, 2) = 669.668916244199;
cameraMatrix.at<double>(1, 1) = 10562.3756744171;
cameraMatrix.at<double>(1, 2) = 420.598821623544;
Mat distCoeffs = Mat::zeros(5, 1, CV_64F);
distCoeffs.at<double>(0, 0) = -0.634420489651422;
distCoeffs.at<double>(1, 0) = -1.54726242755999;
distCoeffs.at<double>(2, 0) = 0;
distCoeffs.at<double>(3, 0) = 0;
distCoeffs.at<double>(4, 0) = 0;
Mat map1, map2;
Size imageSize;
imageSize = frame.size();
initUndistortRectifyMap(cameraMatrix, distCoeffs, Mat(),
getOptimalNewCameraMatrix(cameraMatrix, distCoeffs, imageSize, 1, imageSize, 0),
imageSize, CV_16SC2, map1, map2);
remap(frame, frameCalibration, map1, map2, INTER_LINEAR);
imshow("Origianl", frame);
imshow("Calibration", frameCalibration);
waitKey();
return 0;
}
相机畸变校正
最新推荐文章于 2025-05-28 13:42:20 发布