我在 photo stackexchange 上问过这个问题,但认为它也可能在这里相关,因为我想在我的实现中以编程方式实现这个问题。
我正在尝试为我的成像管道实现模糊检测算法。我想要检测的模糊是 -
1) 相机抖动:当快门速度较低时,用手移动/抖动拍摄的照片。
2) 镜头聚焦错误 - (景深)问题,例如聚焦在不正确的物体上,导致一些模糊。
3) 运动模糊:场景中快速移动的物体,使用不够高的快门速度拍摄。例如。夜间移动的汽车可能会在图像中显示出模糊的前灯/尾灯痕迹。
如何检测这种模糊并以某种方式对其进行量化,以便根据计算出的“模糊度量”做出某些决定?
模糊检测背后的理论是什么?
我正在寻找好的阅读材料,使用它我可以在 C/Matlab 中实现一些算法。
谢谢。
-AD.
当你考虑原因时,运动模糊和相机抖动是同一件事:相机和物体的相对运动。你提到慢快门速度——这两种情况都是罪魁祸首。
焦点缺失是主观的,因为它们取决于intent关于摄影师。不知道what摄影师想要聚焦,这是不可能实现的。即使你do知道你想关注什么,这仍然不是微不足道的。
撇开现实主义不谈,让我向你保证,模糊检测实际上是一个非常活跃的研究领域,并且已经有一些metrics您可以在您的图像上尝试。以下是我最近使用过的一些:
- 边缘宽度。基本上,对图像执行边缘检测(使用Canny http://en.wikipedia.org/wiki/Canny_edge_detector或其他),然后测量边缘的宽度。模糊图像的边缘更宽且更分散。更清晰的图像将具有更薄的边缘。谷歌搜索“无参考感知模糊指标”马尔齐利亚诺 http://www.ntu.edu.sg/home/epina/research/publications.html——这是一篇著名的论文,很好地描述了这种方法,足以实现全面实施。如果你正在处理运动模糊,那么边缘将在运动方向上变得模糊(宽)。
- 精细细节的存在。看看我的回答这个问题 https://stackoverflow.com/questions/4192972/assessing-the-quality-of-an-image-with-respect-to-compression(编辑部分)。
- 频域方法。获取图像的 DCT 系数的直方图(假设您正在使用 JPEG)可以让您了解图像有多少精细细节。就是这样 https://stackoverflow.com/questions/4470107/extracting-dct-coefficients-from-encoded-images-and-video您可以直接从 JPEG 文件中获取 DCT 系数。如果非 DC 项的计数较低,则图像可能会模糊。这是最简单的方法——频域中有更复杂的方法。
还有更多,但我觉得这应该足以让您开始。如果您需要有关这两点的更多信息,请启动谷歌学术 http://scholar.google.com/并环顾四周。特别是,请查看 Marziliano 论文的参考文献,了解过去尝试过的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)