GD / imagick代码,以查找图像是否聚焦良好?

时间:2012-11-17 23:55:56

标签: php focus imagemagick gd imagick

我在网站上运行了数千张用户提供的照片。我想要的是一个脚本,可以帮助我从好照片中清除可怜的照片。显然这不是100%可能,但应该可以确定图像是否没有可识别的聚焦区域?我想?

我做了一些谷歌搜索,但在这个问题上找不到多少。

我编写了一个非常简单的脚本,迭代像素,并总结相邻像素之间的亮度差异。这为锐利的对比度图像提供了高值,而对于模糊/失焦图像则给出了低值。它远非理想,好像框架中有一个完美聚焦的小主题,以及漂亮的散​​景背景,它会给出一个低价值。

所以我认为我想要的是一个脚本,可以确定图像的部分是否聚焦良好,如果没有提醒我的话?

有什么好主意吗?我在浪费时间吗?

我对任何可以确定其他类型的“坏”照片的代码感兴趣 - 太黑暗,太轻,太平坦,等等。

1 个答案:

答案 0 :(得分:1)

太暗和太轻很容易 - 在迭代每个像素时计算颜色平均值。

对于你的焦点问题,我认为你会遇到很多问题。我强烈建议查找内核卷积,因为我有一种下沉的感觉,你需要它。这允许您基于邻居对像素执行更复杂的操作 - 并且是大多数Photoshop滤镜的完成方式!

一旦掌握了数学背景,我会做的是将图像转换为表示亮度的唯一值(而不是RGB)数组。从那里,使用边缘探测器内核(Sobel算子应该做的技巧)并找到边缘。完成后,重复迭代,映射没有边缘的位,并计算没有边缘的最大方块区域。它可能是CPU密集度最低的解决方案,尽管不是最深奥的解决方案。