2012-11-17 111 views
1

我运行一个网站,上面有数千个用户提供的照片。我想要的是一个脚本来帮助我从好照片中清除糟糕的照片。显然这不是100%可能,但应该可以确定图像是否没有可辨别的聚焦区域?我认为?GD/imagick代码来查找图像是否聚焦良好?

我做了一点谷歌搜索,并找不到太多的主题。

我写了一个非常简单的脚本,它对像素进行迭代,并将相邻像素之间的亮度差值相加。这为锐利的对比度图像提供了很高的价值,而对于模糊/失焦图像则为较低的值。尽管这样做远非理想,就好像框架中有一个完美集中的小主体,以及一个很好的散景背景,它的价值很低。

所以我想我想要的是一个脚本,可以确定图像的一部分是否集中精力,如果没有人然后提醒我?

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

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

回答

1

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

对于你的焦点问题,我想你会碰到这个问题的很多问题。我强烈建议查找内核卷积,因为我有一种感觉,你会需要它。这使您可以对基于邻居的像素执行更复杂的操作 - 并且大多数Photoshop滤镜都是如何完成的!

一旦你有了数学背景来做到这一点,我会做的是将你的图像转换为一个代表亮度的独特值(而不是RGB)。从那里,使用边缘寻找器内核(索贝尔操作员应该做的伎俩),并找到边缘。一旦完成,再次迭代,绘制没有边缘的位,并计算没有边缘的最大方形区域。这可能是CPU密集度最低的解决方案,尽管不是最深奥的解决方案。