2011-02-16 17 views
5

का उपयोग करके गैर-तस्वीर या 'अनैच्छिक' छवियों की पहचान कैसे करें मेरे पास हजारों छवियां हैं और मुझे उन लोगों को बाहर निकालना होगा जो फोटोग्राफ नहीं हैं, या अन्यथा 'दिलचस्प' हैं।पायथन इमेजिंग लाइब्रेरी (पीआईएल)

उदाहरण के लिए, एक 'अनिच्छुक' छवि, सभी रंग, या अधिकतर एक रंग, या एक साधारण आइकन/लोगो हो सकता है।

समाधान को सही नहीं होना चाहिए, कम से कम दिलचस्प छवियों को हटाने के लिए पर्याप्त अच्छा है।

अब तक का सबसे अच्छा विचार पिक्सेल के यादृच्छिक नमूना लेने के लिए है, और फिर ... उनके साथ कुछ करें।

+1

मुझे लगता है कि छवि हिस्टोग्राम की जांच करना सबसे आसान तरीका है। – Tarantula

+0

मैं छवि सामग्री पर एक नोब हूँ - हिस्टोग्राम के साथ मैं क्या करूँ? – Danphe

उत्तर

2

दानपे ने मुझे मार दिया। छवि एन्ट्रॉपी की गणना करने के लिए मेरी विधि यहां दी गई है:

import Image 
from math import log 

def get_histogram_dispersion(histogram): 
    log2 = lambda x:log(x)/log(2) 

    total = len(histogram) 
    counts = {} 
    for item in histogram: 
     counts.setdefault(item,0) 
     counts[item]+=1 

    ent = 0 
    for i in counts: 
     p = float(counts[i])/total 
     ent-=p*log2(p) 
    return -ent*log2(1/ent) 


im = Image.open('test.png') 
h = im.histogram() 
print get_histogram_dispersion(h)