#! /usr/bin/env python
# -*- coding: utf-8 -*-

import math
from PIL import Image

NUMBEROFIMAGES = 700
NUMBEROFBINS = 512

NOOFDIVISION = int(round(pow(NUMBEROFBINS,1.0/3)))
SCALE = 256*256*256

def getbin(r,g,b):
	rp=r/(256/NOOFDIVISION)
	gp=g/(256/NOOFDIVISION)
	bp=b/(256/NOOFDIVISION)
	#print rp, gp, bp
	#color = rp*NOOFDIVISION**2+gp*NOOFDIVISION**1+bp
	#factor = SCALE/NUMBEROFBINS
	return rp*NOOFDIVISION**2+gp*NOOFDIVISION**1+bp

fout = open('histogram.txt','w')
fout.write(str(NUMBEROFIMAGES)+'\n')
fout.write(str(NUMBEROFBINS)+'\n')

print 'starting...'

for m in range(1,NUMBEROFIMAGES+1):
    print 'generating HISTOGRAM for',str(m)+'.jpg'
    fout.write(str(m)+'.jpg\n')        
    
    im = Image.open(str(m)+'.jpg')

    freq = [0 for i in range(NUMBEROFBINS)]
    
    pixels = list(im.getdata())
    width, height = im.size

    for i in pixels:
		r,g,b = i
		ind = getbin(r,g,b)
		#print ind
		freq[ind] = freq[ind]+1
    
    for i in range(NUMBEROFBINS):
        fout.write(str(freq[i]/(width*height*1.0)))
        #print freq[i]/(width*height*1.0)
        fout.write('\n')
    
    countp=0;
    for i in range(NUMBEROFBINS): countp=countp+freq[i]/(width*height*1.0)
    print countp

fout.close()
print 'Done!'
