相机畸变校正

#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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值