c++ opencv对图像进行畸变矫正
作者:互联网
已知图像内参和畸变系数
// undistort // OpenCV camera model. // CamParam: fx, fy, cx, cy, k1, k2, p1, p2 void distort_image(const string & img_path, vector<double> &CamParam){ Mat undistort_img = imread(img_path); string img_name = img_path.substr(img_path.find_last_of("/")+1); cout<<"image_name:"<<img_name<<endl; double fx = CamParam[0]; double fy = CamParam[1]; double cx = CamParam[2]; double cy = CamParam[3]; double k1 = CamParam[4]; double k2 = CamParam[5]; double p1 = CamParam[6]; double p2 = CamParam[7]; cv::Mat cv_cam_matrix_ = (cv::Mat_<double>(3, 3) << fx, 0, cx, 0, fy, cy, 0, 0, 1); cv::Mat cv_dist_params_ = (cv::Mat_<float>(4, 1) << k1, k2, p1, p2); Mat distort_img; cv::undistort(undistort_img, distort_img, cv_cam_matrix_, cv_dist_params_, noArray()); cv::imwrite("../output/"+img_name, distort_img); }
标签:string,img,CamParam,c++,undistort,opencv,畸变,path 来源: https://www.cnblogs.com/xiaohuidi/p/16074059.html