image-processing - 自动检测图像的模糊区域

标签 image-processing computer-vision

我正在处理某些部分部分模糊的图像。这些是应该注意的噪音,但这里是问题所在:

是否有方法可以检测图像的某些部分是模糊还是部分模糊?例如,看看下面的示例图像:

blur test

您可以在图像中看到有 3 个部分在视觉上模糊:左下角、靠近中心区域和右上角。现在,是否有可能检测到图像的任何部分在编程或数学上是模糊的?

最佳答案

正如 lain_b 指出的那样,对于这样的图像,您可以使用边缘检测器并查找边缘的缺失。我在你的图像上试过,它似乎工作得很好。首先我使用内核

[0,1,0,
 1,-4,1,
 0,1,0]

这是一个简单的边缘检测器。它的结果是

enter image description here

然后我用一个阈值来得到

enter image description here

然后我关闭图像并打开它以获取

enter image description here

这显然不是一个完成的版本,右上角的部分根本认不出来。也许您可以通过在执行阈值之前进行模糊来改进它,或者通过为阈值和打开和关闭操作的半径选择更好的值来改进它。您需要做出的许多决定取决于您可以对问题施加的限制。我认为这种技术对你有用。

编辑
如果您正在寻找任意图像的模糊检测,您将不得不研究各种技术。如果您可以对输入图像集做出假设,事情就会容易得多。没有任何假设,我不知道什么最适合你。这是有关该主题的一些阅读 Material

Image Blur Metrics

Reserach paper on using the Harr wavelet transform

Similar SO Question并查看问题链接到的问题

模糊检测是一个非常活跃的研究领域,没有一个答案。你只需要尝试你能找到的所有方法(这些是通过谷歌搜索检测图像模糊找到的)。

关于image-processing - 自动检测图像的模糊区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12039463/

相关文章:

image - Matlab 金字塔问题

c++ - GDIPlus::位图亮化图像 C++

ruby-on-rails - 调整回形针大小以适合矩形框

c++ - YUV 图像中的像素

c++ - 从 MAT Image 获取行数/列数

python - 使用python将图像转换为矩阵

c++ - OpenCV hello world 没有像它应该的那样编译

matlab - 每个超像素上的 Gabor 滤波器

azure - 将数据从 Azure Blob 容器读取到计算机视觉服务中

python - 如何使用 OpenCV 找到最大的空矩形?