首页新闻找找看学习计划

opencv矫正畸变

0
悬赏园豆:20 [待解决问题]

我们先用matlab对摄像头进行了标定,然后再用opencv对摄像头得到的图像进行畸变校正,最后输出的矫正图像大小与原图像大小相同,查看opencv矫正原理后发现是因为Opencv矫正畸变后会对矫正后的图片长宽等比例进行“裁剪”操作,然后再放大至与原图片大小相同,请问能得知那个放大系数吗?或是怎么知道被“裁剪”后图片的大小?如下是我们畸变校正的相关代码。
Size imageSize(w,h);
cv::Mat distCoeffs,cameraMatrix,newcameraMatrix,map1,map2,newimage;
distCoeffs = (cv::Mat_<double>(5,1)<<k1,k2,p1,p2,0);
cameraMatrix = (cv::Mat_<double>(3,3)<<fx,0,cx,0,fy,cy,0,0,1);
initUndistortRectifyMap(cameraMatrix, distCoeffs, Mat(), Mat(), imageSize, CV_16SC2, map1, map2);
while (cam.getFrame().empty()) { ; }
mpData mpDataStruct1;
while (!SLAM.isShutdown()) {
if (cam.cam_rdy) {
//ar.flag2 = true;
cam.cam_rdy = false;
frame = cam.getFrame();
remap(frame,newimage,map1,map2,INTER_LINEAR);
extractor.setExtractor(newimage, SLAM.GetTrackingState());
// extractor.setExtractor(frame, SLAM.GetTrackingState());
extractor.IsExtractor = true;
} else {
usleep(1000);
}
}

不是橙子的橙的主页 不是橙子的橙 | 初学一级 | 园豆:182
提问于:2019-04-09 17:39
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册