2012-01-01 74 views
3

我试图一起扫描一些图片(个人3x4厘米图像),然后将它们分割成分离的图像。关于扫描的第一步已经完成,但关于第二步(边缘检测和分割)我有一些问题。通常当他们扫描图片时,一些图片会旋转一些角度,从而阻止我获得笔直的边缘。
2-如何去除大的噪音? (想象一下,当他们扫描这些图片时,他们在他们身后放了一张纸,有时候纸张会在扫描的图片中留下一些边缘......我怎么能理解它不是我寻找的边缘?)如何纠正扫描错误,如旋转?

这是示例图像:
sample image

+0

你可以发布样本图片吗?我认为我可以提供一个解决方案,但具体而言,它可以帮助您查看示例图像,或者甚至可以展示您的问题的虚假图像。新年快乐! – Rethunk 2012-01-01 04:02:08

+0

我希望以下文章有所帮助。如果你遇到困难,我可以为你写一些示例代码。我建议使用多种技术(线交点+边缘梯度方向+角点检测器)的组合以确保在各种条件下的鲁棒性。 – Rethunk 2012-01-01 04:45:56

回答

3

扫描内的示例图像都是矩形的,它们大小基本相同。有很多技术可以在图像中找到矩形(即使是完全任意旋转),但我会从更基本的技术开始。

  1. 霍夫线拟合可以用来查找图像中的线条,即使背景噪音很大。从霍夫线适合你可以找到交点,也许比较这些交点到找角点检测(见下面3)。
  2. 线上的边缘点具有与这些线垂直的梯度。在搜索边缘点时,您可以倾向于大致距离L的边缘点或与平行方向上具有梯度的其他边缘点之间的距离W,其中L和W是图像的已知长度和宽度。
  3. 角落探测器可以帮助识别您的小矩形图像的角落。你知道图片的长度和宽度,这应该有助于你接受/拒绝角落。
  4. 如果你想获得幻想(我不推荐),那么一个简单的归一化互相关技术可以在较大的图像中检测到“模板”子图像的所有实例。这项技术有点粗糙,但如果没有太多的旋转,它可以工作。由于子图像具有已知形状和(大概)一致大小的明确界限,因此只需找到边缘而不是尝试匹配图像内容就会更容易。

一旦您确定了每个矩形子图像的位置和方向,那么一个简单的旋转变换+内插就可以生成每个图像的“右侧向上”版本。使用扫描仪时,您不会遇到透视失真的问题,但是如果在将来的某个时间点以某个角度拍摄图片(?),则仿射变换可以将失真梯形图像映射到矩形图像。

Hough变换 http://en.wikipedia.org/wiki/Hough_transform

角检测 http://en.wikipedia.org/wiki/Corner_detection

对于简单的边缘检测应该在维基百科上的边缘检测的文章在工作足够好为你的应用程序,请参见“其他一阶方法” 。该技术易于理解并且易于实施。 http://en.wikipedia.org/wiki/Edge_detection

祝你好运,再次新年快乐!