首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >任意轮廓到矩形的OpenCV变换形状

任意轮廓到矩形的OpenCV变换形状
EN

Stack Overflow用户
提问于 2015-06-23 16:50:13
回答 1查看 3.4K关注 0票数 7

简短的问题是如何使用OpenCV将像下面这样的形状转换成矩形?

备注:

  1. 形状轮廓不一定是直线--它们可能是轻微的弯曲。
  2. 形状内的内容必须相应地沿x和y轴拉伸。

长篇故事

我试图纠正扭曲的图像,代表一张纸与文字,标志等,在纸张折叠2或4次,并使它几乎完美的矩形。

输入图像已采用黑白格式,并带有校正的透视图。所以一切都很好,除了它周围有黑色的区域,扭曲的边缘和文字是有点波浪。

我的想法是,顺序应该是这样的:

  1. 找到纸的轮廓
  2. 计算一个校正矩阵,将形状区域映射到适当的矩形区域。
  3. 使用计算矩阵对图像进行转换

例如,我们使用Imgproc.findContours来执行透视校正,然后找到工作表角,然后是Imgproc.getPerspectiveTransform,最后使用Imgproc.warpPerspective进行校正。

但我找不到适合这个案子的算法。

有人能指出在图像处理中人们是如何做到的吗?

EN

回答 1

Stack Overflow用户

发布于 2018-08-21 20:47:25

在本例中,您希望对该图像进行非线性转换。传统上,您会使用整个文件的单一转换,使其成为一个矩形。这只能用拐角处来完成。更复杂的校正,如镜头畸变,你需要在页面上选择点,并断言它们应该是共面的,以生成你的转换矩阵。基本上,你需要对你的图像中的几何学有一个理解,以消除它。所以你需要找到的几何图形是页面的三维曲面。

为了找到你那张破损的纸的高度非线性几何学,你可以拍摄多张页面的图像并对它们进行三角剖分。如果你想走这条路,拿起哈特利和齐瑟曼的“多视图几何”的副本。

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

https://stackoverflow.com/questions/31008791

复制
相关文章

相似问题

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