opencv实现鱼眼图像畸变校正

一、参数说明

origin:鱼眼图像
undistorted:畸变校正后的图像
K:内参矩阵,大小为3×3
opencv实现鱼眼图像畸变校正_第1张图片
D:畸变系数,大小为4×1
[ k 1 , k 2 , k 3 , k 4 ] T [k_1,k_2,k_3,k_4]^T [k1,k2,k3,k4]T
factor:焦距调节系数,可以调整去畸变图像的视野大小

二、实现代码

void CreateUndistortedImage(const cv::Mat& origin, cv::Mat& undistorted, cv::Mat& K, cv::Mat& D, const double factor)
{
	cv::Mat map_x, map_y;
	cv::Mat P = K.clone();
	double fx = K.at<double>(0, 0);
	double fy = K.at<double>(1, 1);
	P.at<double>(0, 0) = factor * fx;
	P.at<double>(1, 1) = factor * fy;
	cv::fisheye::initUndistortRectifyMap(K, D, cv::Matx33d::eye(), P, cv::Size(origin.cols, origin.rows), CV_16SC2, map_x, map_y);
	cv::remap(origin, undistorted, map_x, map_y, cv::INTER_LINEAR);
}

你可能感兴趣的:(opencv)