2012-11-17 110 views
1

我運行一個網站,上面有數千個用戶提供的照片。我想要的是一個腳本來幫助我從好照片中清除糟糕的照片。顯然這不是100%可能,但應該可以確定圖像是否沒有可辨別的聚焦區域?我認爲?GD/imagick代碼來查找圖像是否聚焦良好?

我做了一點谷歌搜索,並找不到太多的主題。

我寫了一個非常簡單的腳本,它對像素進行迭代,並將相鄰像素之間的亮度差值相加。這爲銳利的對比度圖像提供了很高的價值,而對於模糊/失焦圖像則爲較低的值。儘管這樣做遠非理想,就好像框架中有一個完美集中的小主體,以及一個很好的散景背景,它的價值很低。

所以我想我想要的是一個腳本,可以確定圖像的一部分是否集中精力,如果沒有人然後提醒我?

什麼好主意?我在浪費時間嗎?

我會對任何可以確定其他類型的「壞」照片的代碼感興趣 - 太暗,太輕,太平坦,諸如此類。

回答

1

太暗太亮很容易 - 在迭代每個像素時計算顏色平均值。

對於你的焦點問題,我想你會碰到這個問題的很多問題。我強烈建議查找內核卷積,因爲我有一種感覺,你會需要它。這使您可以對基於鄰居的像素執行更復雜的操作 - 並且大多數Photoshop濾鏡都是如何完成的!

一旦你有了數學背景來做到這一點,我會做的是將你的圖像轉換爲一個代表亮度的獨特值(而不是RGB)。從那裏,使用邊緣尋找器內核(索貝爾操作員應該做的伎倆),並找到邊緣。一旦完成,再次迭代,繪製沒有邊緣的位,並計算沒有邊緣的最大方形區域。這可能是CPU密集度最低的解決方案,儘管不是最深奧的解決方案。