【发布时间】:2019-09-17 04:11:13
【问题描述】:
众所周知,我们可以使用函数cv::getOptimalNewCameraMatrix() alpha = 1 来获得一个新的CameraMatrix。然后我们使用函数cv::undistort()和新的CameraMatrix可以得到去失真后的图像。但是,我发现失真后的图像与原始图像一样大,并且失真后的图像的某些部分被黑色覆盖。
所以我的问题是:这是否意味着原始图像像素丢失了?有什么方法可以避免像素丢失或使用opencv获取尺寸大于原始图像的图像?
cv::Mat NewKMatrixLeft = cv::getOptimalNewCameraMatrix(KMatrixLeft,DistMatrixLeft ,cv::Size(image.cols,image.rows),1);
cv::undistort(image, show_image, KMatrixLeft, DistMatrixLeft,NewKMatrixLeft);
image和show_image的尺寸都是640*480,但是在我看来,变形后的图片尺寸应该大于640*480,因为有些部分是没有意义的。 谢谢!
【问题讨论】:
标签: c++ opencv pixel camera-calibration