image-processing - 检测图像/视频序列中的模糊

标签 image-processing

我曾在photo stackexchange上问过这个问题,但我认为它在这里也可能有意义,因为我想在实现中以编程方式实现它。

我正在尝试为成像管道实现模糊检测算法。我要检测的模糊都是-

1)相机抖动:当快门速度较小时,使用移动/抖动的手拍摄的照片。

2)镜头聚焦错误-(景深)问题,例如聚焦在不正确的物体上会引起一些模糊。

3)运动模糊:使用不够高的快门速度捕获场景中快速移动的对象。例如。夜间行驶的汽车可能在图像中显示出其前大灯/尾灯的踪迹为模糊。

一个人如何才能检测到这种模糊并以某种方式对其进行量化,从而根据计算出的“模糊指标”做出决策?

模糊检测背后的理论是什么?

我正在寻找不错的阅读 Material ,使用它们我可以在C / Matlab中实现一些算法。

谢谢。

-广告。

最佳答案

当您考虑原因时,运动模糊和相机抖动是同一回事:相机和物体的相对运动。您提到过慢的快门速度-这两种情况都是罪魁祸首。

焦点缺失是主观的,因为它们取决于摄影师的意向。如果不知道,摄影师想专注于什么,就不可能实现这一点。而且,即使您知道您想重点关注的内容,它也不是一件容易的事。

除了现实主义之外,让我向您保证,模糊检测实际上是非常活跃的研究 Realm ,并且已经有一些指标可以在图像上进行尝试。这是我最近使用过的一些东西:

  • 边缘宽度。基本上,对图像执行边缘检测(使用Canny或其他方式),然后测量边缘的宽度。模糊的图像将具有较宽的边缘,这些边缘更分散。较清晰的图像边缘较细。 Google通过Marziliano提出了“无引用感知模糊度量”,这是一篇著名的论文,充分描述了这种方法以进行完整的实现。如果要处理运动模糊,则边缘将在运动方向上模糊(宽)。
  • 存在精细细节。看看我对this question(已编辑的部分)的回答。
  • 频域方法。取图像的DCT系数的直方图(假设您正在使用JPEG)将使您了解图像的精细程度。 This is how您可以直接从JPEG文件中获取DCT系数。如果非DC项的计数很低,则图像可能很模糊。这是最简单的方法-频域中有更复杂的方法。

  • 还有更多,但我认为这足以使您入门。如果您需要有关这些方面的进一步信息,请启动Google Scholar并四处看看。特别是,请查阅Marziliano论文的引用文献,以了解过去尝试过的方法。

    关于image-processing - 检测图像/视频序列中的模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5180327/

    相关文章:

    image - 洪水填充算法 - 忽略边缘

    performance - F#图像处理性能问题

    c++ - 将屏幕上的图像与模板图片匹配

    opencv - 使用 Opencv 进行人脸识别

    javascript - 如何用图案填充图像(衬衫上的织物)

    java - 一张图像中包含多个数据矩阵条形码

    image - 突出显示图像中的特定 RGB 并忽略其余部分

    android - 使用 Android 内置的手势监听器和缩放监听器实现捏缩放和拖动

    php - 从外部链接中选择缩略图

    python - 如何使用 OpenCV 确定对象是浮雕还是凹陷?