如何纠正扫描错误,如旋转?

问题描述 投票:3回答:1

我正在尝试将一些图片扫描在一起(个人3x4厘米图像),然后将它们分成单独的图像。关于扫描的第一步已完成,但关于第二步(边缘检测和分裂)我遇到了一些问题。 1-通常当他们扫描图片时,一些图片会旋转一定程度,这会阻止我有直边。 2-如何清除大噪音? (想象一下,当他们扫描那些照片时,他们会在背后放一张纸。有时纸张会在扫描图片中留下一些边缘......我怎么能理解它不是我想要的边缘?)

这是一个示例图像:

c# image-processing edge-detection
1个回答
3
投票

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

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

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

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

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

对于应该适合您的应用程序的简单边缘检测,请参阅Wikipedia上边缘检测文章中的“其他一阶方法”部分。该技术易于理解且易于实施。 http://en.wikipedia.org/wiki/Edge_detection

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

© www.soinside.com 2019 - 2024. All rights reserved.