如何创建一种算法来检测图片的不模糊部分?例如,它会查看这张图片:
并意识到非模糊部分是:
我看到了here如何测量整个图片的模糊度。对于这个问题,我是否应该为像素的最大绝对二阶导数创建一个阈值?那么超过哪一个就算是非模糊区域?
最佳答案
一个简单的解决方案是检测高频内容。
如果某个区域没有高频内容,可能是因为该区域比较模糊。
如何检测没有高频内容的区域?您可以在频域中执行此操作(例如,使用 DCT ),也可以在空间域中执行此操作。
首先,我推荐空间域方法。
您需要某种高通滤波器。最简单的方法是对图像进行模糊处理(例如使用高斯滤波器),然后从原始图像中减去它,然后转换为灰度:
模糊:
减去:
如您所见,所有模糊像素都变暗,高频内容变亮。现在,您可能想要模糊该图像,并应用阈值,以获得以下结果:
注意:此过程是使用 gimp 手动完成的。您的算法可以轻松遵循这一点,但需要指定一些参数(例如模糊半径、阈值)。
关于algorithm - 检测部分模糊的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45130183/