检测部分模糊的图像
Detecting a Partially Blurred Image
如何创建一种算法来检测图片的未模糊部分?例如,它会看这张图片:
并实现非模糊部分是:
我看过 here 如何测量整张图片的模糊度。对于这个问题,我是否应该为像素的最大绝对二阶导数创建一个阈值?然后超过哪个就属于非模糊区域?
一个简单的解决方案是检测高频内容。
如果某个区域没有高频内容,可能是因为模糊了。
如何检测没有高频内容的区域?可以在频域上做(比如用DCT),也可以在空间域上做。
首先推荐空间域法
您需要某种高通滤波器。最简单的方法是把图像模糊(比如用高斯滤镜),然后从原图减去,然后转成灰度:
模糊:
减去:
如你所见,所有模糊的像素都变暗了,高频内容变亮了。现在,您可能想要模糊此图像并应用阈值,以获得:
注意:这个过程是用 gimp 手工完成的。您的算法可以很容易地遵循这一点,但需要指定一些参数(如模糊半径、阈值)。
如何创建一种算法来检测图片的未模糊部分?例如,它会看这张图片:
并实现非模糊部分是:
我看过 here 如何测量整张图片的模糊度。对于这个问题,我是否应该为像素的最大绝对二阶导数创建一个阈值?然后超过哪个就属于非模糊区域?
一个简单的解决方案是检测高频内容。
如果某个区域没有高频内容,可能是因为模糊了。
如何检测没有高频内容的区域?可以在频域上做(比如用DCT),也可以在空间域上做。
首先推荐空间域法
您需要某种高通滤波器。最简单的方法是把图像模糊(比如用高斯滤镜),然后从原图减去,然后转成灰度:
模糊:
减去:
如你所见,所有模糊的像素都变暗了,高频内容变亮了。现在,您可能想要模糊此图像并应用阈值,以获得:
注意:这个过程是用 gimp 手工完成的。您的算法可以很容易地遵循这一点,但需要指定一些参数(如模糊半径、阈值)。