检测部分模糊的图像

Detecting a Partially Blurred Image

如何创建一种算法来检测图片的未模糊部分?例如,它会看这张图片:

并实现非模糊部分是:

我看过 here 如何测量整张图片的模糊度。对于这个问题,我是否应该为像素的最大绝对二阶导数创建一个阈值?然后超过哪个就属于非模糊区域?

一个简单的解决方案是检测高频内容。

如果某个区域没有高频内容,可能是因为模糊了。

如何检测没有高频内容的区域?可以在频域上做(比如用DCT),也可以在空间域上做。

首先推荐空间域法

您需要某种高通滤波器。最简单的方法是把图像模糊(比如用高斯滤镜),然后从原图减去,然后转成灰度:

模糊:

减去:

如你所见,所有模糊的像素都变暗了,高频内容变亮了。现在,您可能想要模糊此图像并应用阈值,以获得:

注意:这个过程是用 gimp 手工完成的。您的算法可以很容易地遵循这一点,但需要指定一些参数(如模糊半径、阈值)。