def process(line,d):
    line = line.strip().split(tab)
    sample=line[1]
    image=line[0]
    featureimages=line[2:]
    img=Image.open(image)
    images=imageTransforms.normalizeImage(img) #Arjun's thing
    features=[]
    featurecoordinates=[]
    labels=[]
    for j in xrange(len(featureimages)):
        c=getcoordinates.getcoordinates(featureimages[j],sample)
        for i in xrange(len(c)):
            featurecoordinates.append(c[i])
        del c
    for j in xrange(len(featurecoordinates)):
        a=d.get(featurecoordinates[j][5],0)
        m=max([a,featurecoordinates[j][2]-featurecoordinates[j][0],featurecoordinates[j][3]-featurecoordinates[j][1]])
        d[featurecoordinates[j][5]]=m
    for j in xrange(len(featurecoordinates)):
        newfeature=runtraininganalysis(images[RGB],featurecoordinates[j])
        if newfeature:
            for i in xrange(len(newfeature)):
                features.append(newfeature[i])
                print("new feature",i)
            labels.append(featurecoordinates[j][4]+"_"+featurecoordinates[j][5])
            labels.append(featurecoordinates[j][4]+"_"+featurecoordinates[j][5])
            labels.append(featurecoordinates[j][4]+"_"+featurecoordinates[j][5])
            labels.append(featurecoordinates[j][4]+"_"+featurecoordinates[j][5])
    return labels,features,d
def process(line):
    line = line.strip().split(tab)
    sample=line[1]
    image=line[0]
    featureimages=line[2:]
    img=Image.open(image)
    normimg=normalize(img) #Arjun's thing
    features=[]
    featurecoordinates=[]
    for j in range(len(featureimages)):
        inf = featureimages[j].split('.')
        features.append(inf[1])
        c=getcoordinates.getcoordinates(featureimages[j],sample)
        featurecoordinates.append(c)
        del c