首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >OpenCV只对鱼眼图像的中心部分进行无损处理

OpenCV只对鱼眼图像的中心部分进行无损处理
EN

Stack Overflow用户
提问于 2018-02-26 05:52:44
回答 2查看 6K关注 0票数 3

我试图执行鱼眼相机校准通过OpenCV 3.4.0 (C++,微软视窗)。

我用cv::fisheye::校准来制作K和D(摄像机矩阵和径向畸变系数矩阵)。然后,我使用cv::fisheye::initUn变形Then生成X和Y坐标的地图。最后,我使用cv::remap通过initUndistortRectifyMap的地图对鱼眼相机的图像进行非失真处理。一切看上去都是正确的,但OpenCV只使鱼眼图像的中心部分退化。边缘被移到外面。我想把整张照片都拆开。我试图手动改变K矩阵的焦距,得到了不失真的边缘,但它们变得非常模糊。我在这项任务中发现了一些结果。例如

https://www.youtube.com/watch?v=Ll8KCnCw4iU

https://www.youtube.com/watch?v=p1kCR1i2nF0

据你所见,这些结果与我的结果非常相似。有人能解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-11 23:53:19

在过去的两周里,我分析了很多论文。我想我找到了问题的根源。OpenCV 3.4.0鱼眼无失真方法是基于针孔摄像机模型的.我们有一个角度之间的光轴的相机和光线从某个物体。我们也有一个角度,到这个物体的一个不失真的点与相机光轴的方向。如果鱼眼图像不被正确扭曲,这两个角度是相等的。我的鱼眼相机的视场是180度。这意味着与未失真图像中心和对应于未失真图像边缘的点之间的距离等于无穷远。换句话说,如果我们有一个视场在180度左右的鱼眼相机,那么100%的鱼眼图像表面就不可能不失真(通过OpenCV)。

票数 3
EN

Stack Overflow用户

发布于 2018-11-27 05:02:21

这是可以实现的,只是使用一个投影而不是试图去扭曲它。

更多信息请访问OpenCV fisheye calibration cuts too much of the resulting image

举例结果:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48990136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档