3

I have a some scanned images, where the scanner appears to have introduced a certain kind of noise that I've not encountered before. I would like to find a way to remove it automatically. The noise looks like high frequency vertical shear. In other words, a horizontal line that should look like ------------ shows up as /\/\/\/\/\/\/\/\/\, where the amplitude and frequency of the shear seem pretty regular.

Can someone suggest a way of doing the following steps?

  1. Given an image, identify the frequency and amplitude of the shear noise. One can assume that it is always vertical and the characteristic frequency is higher than other frequencies that naturally appear in the image.

  2. Given the above parameters, apply an opposite, vertical, periodic shear to the image to cancel this noise.

It would also be helpful to know how these could be implemented using the tools implemented by a freely available image processing package. (Netpbm, ImageMagick, Gimp, some Python library are some examples.)

Update: Here's a sample from an image with this kind of distortion. Actually, this sample shows that the shear amplitude need not be uniform throughout the image. :-( The original images are higher resolution (600 dpi).

enter image description here

4

2 回答 2

0

您可以先使用 Hough 拟合或 RANSAC 拟合线。为了使 Hough 工作,您可能需要使用高斯模糊或形态膨胀来“涂抹”这些点,以便在参数空间中为给定的 (rho, theta) 线获得更多命中。

一旦你有了线拟合,你就可以确定原始点到每条线的相对距离。从该空间信息中,您可以使用 FFT 帮助找到“最适合”的空间频率,然后相应地向上/向下移动像素。

首先,您甚至可以跳过 FFT 并使用更多的蛮力方法:

  1. 使用 Hough 或 RANSAC 找到最佳拟合线。
  2. 确定线条的方向。
  3. 垂直于(名义上的)水平线进行采样,找到沿该列相对于最接近的最佳拟合线的点。
  4. 如果一个样本上的点平均距离它们的最佳拟合线有 +N 的距离,则将该列(或沿该垂直样本)中的所有像素移动 -N。

如果沿垂直样品的剪切是一致的,但不一定是从左到右,这种技术应该有效。如果剪切总是完全垂直的,那么找到水平线应该相对容易。

从您的示例图像来看,在 3 路或 4 路交叉点与标称垂直线段之间的水平线段上,剪切似乎是一致的。您可以使用角检测器或其他方法来查找这些交叉点,以限制像素移位操作发生的范围。

我在这里发布的一项技术是另一种查找水平延伸的暗像素以防它们不落在一条线上的方法: 是否有一种有效的手写文本分割算法?

除此之外,您是否有机会修复扫描仪?

于 2012-02-11T05:48:24.803 回答
0

我对这个问题的解决方案是使用 FFT 将图像转换为频域。结果将是两个矩阵:图像信号幅度和图像信号相位。这两个矩阵应该具有与输入图像相同的维度。

现在,您应该使用幅度矩阵来检测与噪声频率对应的区域中的尖峰。请注意,该矩阵的左上角应对应低频分量,右下角对应高频分量。

识别出尖峰后,应将相应的系数(幅度矩阵条目)设置为零。应用逆 FFT 后,您应该得到没有噪声的输入图像。

请为您的问题提供更具体(实用)的解决方案的示例图像。

于 2012-02-10T19:59:33.083 回答