algorithm - 检测部分模糊的图像

标签 algorithm image-processing blur feature-detection

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

enter image description here

并意识到非模糊部分是:

enter image description here

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

最佳答案

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

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

如何检测没有高频内容的区域?您可以在频域中执行此操作(例如,使用 DCT ),也可以在空间域中执行此操作。

首先,我推荐空间域方法。

您需要某种高通滤波器。最简单的方法是对图像进行模糊处理(例如使用高斯滤波器),然后从原始图像中减去它,然后转换为灰度:

模糊:

enter image description here

减去:

enter image description here

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

enter image description here

注意:此过程是使用 gimp 手动完成的。您的算法可以轻松遵循这一点,但需要指定一些参数(例如模糊半径、阈值)。

关于algorithm - 检测部分模糊的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45130183/

相关文章:

algorithm - 什么时候非二进制数据结构比二进制数据结构更好? (即堆、BST 等)

android - 模糊 ArcGIS map View

css - 过滤器 : blur not working on MS Edge

javascript - 如何使用 jQuery 和模糊事件确定哪个 DOM 对象被单击/聚焦?

c# - 如何查找所有三个列表中存在的元素(最有效)

python - 字典对象搜索

java - 如何连接二维数组中的列?

matlab - 如何在 Matlab 中从 RGB 图像创建训练示例?

iphone - 如何使用 UIGestureRecognizers 在多个 UIView 或 UIImageView 上进行点击、捏合和旋转

python - Numpy 展平 RGB 图像数组