【问题标题】:Which deconvolution algorithm is best suited for removing motion blur from text?哪种反卷积算法最适合从文本中去除运动模糊?
【发布时间】:2012-10-02 03:46:26
【问题描述】:

我正在使用 OpenCV 处理手机拍摄的图片。图片包含文字,并且有少量运动模糊,我需要将其移除。

最可行的算法是什么?到目前为止,我已经测试了 Lucy-Richardson 和 Weiner 反卷积,但它们没有产生令人满意的结果。

【问题讨论】:

  • 您找到任何有效可行的解决方案了吗?或者只是接受接受的答案。

标签: c++ algorithm image-processing opencv


【解决方案1】:

运动模糊是一个难以克服的问题。当

  1. 相机相对于场景的速度是已知的
  2. 您有许多可以关联的模糊对象的图片。

您确实有一个主要优势,那就是您正在查看文本(通常构成高对比度特征)。如果您仅将反卷积应用于图像的高对比度(我知道该理论通常是排除高对比度)区域,您应该得到可以让您更好地识别字符的结果。此外,锐化/模糊滤镜前/后处理的组合可能会有所帮助。

我记得以前对this paper 印象深刻。也许对他们的实施进行调整是值得一试的。

【讨论】:

    【解决方案2】:

    您无法消除运动模糊。信息将永远丢失。您正在处理的是一个 CCD,它将多个真实物体记录到一个像素上,并将它们涂抹在一起。换句话说,如果像素读数为 56,您无法神奇地确定实际读数在时间 1 时应为 37,在时间 2 时应为 62,在时间 3 时应为 43。

    另一种看法:假设您有 5 张图片。然后,您使用 Photoshop 将图片混合在一起,平均每个像素的值。你现在能从混合图片中以某种方式说出最初的 5 张图片是什么吗?不,你不能,因为你没有这样做的信息。

    【讨论】:

    • 不正确,如果您可以估计点扩散函数 (PSF),那么您可以应用反卷积算法(如标题中的 OP 所述)来增强图像。
    • 我想这取决于你对“增强”的定义。实际上,您不能以任何普通人认为是显着改进的方式对图像进行去模糊处理。仅当您具有已知的信号转换时,反卷积才从实际的角度有意义。运动模糊是一种高度混沌的函数,除了一些人为的实验室示例外,您无法确定它是否有用。
    • 现实世界的典型数字图像有很多冗余,这就是为什么当应用于具有最大熵的图像时,您可以从许多转换中恢复,这意味着不可逆的信息丢失。
    【解决方案3】:

    我认为您的点扩散函数的估计可能比使用的算法更重要。这取决于您要消除的运动模糊类型,线性运动可能是最简单的,但不太可能是您要消除的那种:我想它是曝光期间手部运动引起的非线性.

    【讨论】:

    • 是的,它是非线性的。当人们按下相机按钮时,他们的手在实践中似乎在加速相机。所以肯定有一个非线性分量。
    【解决方案4】:

    同意@TheJuice,您的问题在于 PSF 估计。通常为了能够从单帧执行此操作,需要对导致模糊的因素(物体的运动、传感器的运动类型等)做出几个假设。

    您可以找到一些指针,尤其是在单维情况下,here。他们使用一种过滤方法,主要从模糊中留下相关性,丢弃原始图像的空间相关性,并使用它来推断运动方向,从而推断出 PSF。对于小的模糊,您可以将运动视为恒定;否则你将不得不使用更复杂的加速运动模型。

    不幸的是,手机模糊通常是 CCD 集成和非线性运动(垂直于视线的平移、手腕运动的偏航和手腕周围的旋转)的复合,因此 Yitzhaky 和 ​​Kopeika 的方法可能只能产生可接受的结果导致少数情况。我知道有一些方法可以解决这个问题(“深度意识”等),但我从来没有机会处理它们。

    您可以使用 Focus Magic 等照片恢复软件预览结果;虽然他们不使用 YK 估计器(运动描述留给您),但其余的工作流程必然非常相似。如果您的图片适合 Focus Magic 恢复,那么可能 YK 方法会起作用。如果它们不够(或不够,或不够值得),那么即使尝试实现它也毫无意义。

    【讨论】:

    猜你喜欢
    • 2015-12-05
    • 2015-08-13
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    相关资源
    最近更新 更多