检测图像中的标记以用于OpenCV中的透视变换

时间:2014-12-11 21:29:09

标签: opencv image-processing computer-vision hough-transform

我花了几个晚上修补OpenCV。我正在开发一个小项目,对页面内容进行一些分析。我想先对页面进行透视转换,然后首先适应整​​个屏幕。但是,我不能相信人们会将纸张放在不同颜色的背景上,或者回到足以适应整个页面边界。

所以我想在页面的对角添加标记来跟踪,获取它们的位置,并用它们进行变形转换。以下是我要检测的角标记的示例图像:sample image

最佳方法是什么?我主要是在找人指出正确的方向。

2 个答案:

答案 0 :(得分:1)

可爱的主意!正如其他人所指出的,两点是不够的,但你的标记定义了四条线,这些就足够了。

如果能够可靠地检测形成标记的线段上的边缘,则可以将线条拟合到它们,然后直接计算线条单应性(然后反转换它以将其转换为点单应性),或者相交成对的线条得到四个独立的角点,然后计算它们上的点单应性。

可能需要一些实验来可靠地检测您的标记物。您可能需要考虑使用模板匹配。

答案 1 :(得分:0)

  1. 您可以先在图像中获取第一个黑色像素 应用二进制阈值后,图像中的最后黑色像素。您将获得彼此对角线的2个点。

  2. 使用这两个点可以获得其他对角点 使用img.shape属性。

  3. 现在您有4分,之后您可以执行扭曲变换