示例#1
0
def createSample(noize = 0.0):
    A = math.cos(random.random()*math.pi - math.pi/2) #cos a
    B = random.random()*2 -1
    O = random.choice([False,False,False,False,False,True])
    C1 = random.choice([False,True])
    C2 = random.choice([False,True])
    G = random.choice([False,False,True])
    Li =  ((random.random()*2-1)**1)/2 +0.5
    L = [Li -0.15 + random.random()*0.3 for i in range(4)]
    L.sort()
    L = [None]+ L
    for i in range(1,5):
        if L[i] <0: L[i] = 0.
        elif L[i] >1: L[i] =1. 
    Lm = sum(L[1:5])/4 
    C = False
    R = True
    if O: 
        R=False
        C = True
    elif A<0.15:
        R = False
        if A<0.15:
            C =True
    elif max(L[1:5]) - min(L[1:5]) > 0.20:
        R = False
    elif Lm < 0.19:
        R = False
    elif C1:
        if Lm < 0.35:
            R = False
        elif C2 and (Lm <0.4):
            R = False
    elif G == True:
        C = True
        if Lm > 0.65:
            R = False
        elif (not C1) and (not C2) and Lm >0.6:
            R = False
        elif max(L[1:5]) - min(L[1:5]) > 0.15:
            R = False



    if Lm<0.15:
        C = False
    elif max(L[1:5]) - min(L[1:5]) < 0.1:
        C = False
    
    if random.random() < noize:
        R = random.choice([True,False])
        C = random.choice([True,False])
    
    
    return samples.sample(['A','B','O','C1','C2','G',
                           'L1','L2','L3','L4','R','C'],
                           [A,B,O,C1,C2,G, L[1],L[2],L[3],L[4],R,C])
示例#2
0
def createSample_prejudiced():

    A = 1
    B = random.random()*2 -1
    O = False
    C1 = False
    C2 = random.choice([False,True])
    G = False
    Li =  ((random.random()*2-1)**3)/2 +0.5
    L = [Li -0.1 + random.random()*0.2 for i in range(4)]
    L.sort()
    L = [None]+ L
    for i in range(1,5):
        if L[i] <0: L[i] = 0.
        elif L[i] >1: L[i] =1. 
    Lm = sum(L[1:5])/4 
    C = True
    R = True
    if O: 
        R=False
    elif A<0.25:
        R = False
    elif max(L[1:5]) - min(L[1:5]) > 0.3:
        R = False
    elif Lm < 0.25:
        R = False
    elif C1:
        if Lm < 0.35:
            R = False
        elif C2 and (Lm <0.4):
            R = False
    elif G == True:
        if Lm > 0.65:
            R = False
        elif (not C1) and (not C2) and Lm >0.6:
            R = False

    R = random.choice([True,False])
    C = random.choice([True,False])

    
    
    return samples.sample(['A','B','O','C1','C2','G',
                           'L1','L2','L3','L4','R','C'],
                           [A,B,O,C1,C2,G,L[1],L[2],L[3],L[4],R,C])
示例#3
0
def sampleFromBitmap( bitmap):

    r = samples.sample([],[])
    imin=rmin = gmin = bmin = 1
    imax =rmax = gmax = bmax = 0
    isum = rsum = gsum = bsum = 0
    
    for i in range(width):
        for j in range(height):
            pixel = bitmap.GetPixel(i,j)
            intense = colorIntensity(pixel)
            
            #setattr(r, 'intensity_'+str(i)+'_'+str(j), intense)
            #setattr(r, 'colorR_'+str(i)+'_'+str(j), pixel.R)
            #setattr(r, 'colorG_'+str(i)+'_'+str(j), pixel.G)
            #setattr(r, 'colorB_'+str(i)+'_'+str(j), pixel.B)
            if intense< imin: imin = intense
            if intense> imax: imax = intense
            isum+= intense
            if pixel.R< rmin: rmin = pixel.R
            if pixel.R> imax: rmax = pixel.R
            rsum+= pixel.R
            if pixel.G< rmin: rmin = pixel.G
            if pixel.G> imax: rmax = pixel.G
            gsum+= pixel.G
            if pixel.B< rmin: rmin = pixel.B
            if pixel.B> imax: rmax = pixel.B
            bsum+= pixel.B
            
    setattr(r,'MinIntensity',imin)
    setattr(r,'MaxIntensity',imax)
    setattr(r,'AvgIntensity',isum/width/height)

    setattr(r,'MinBlue',bmin)
    setattr(r,'MaxBlue',bmax)
    setattr(r,'Blue',bsum/width/height)

    setattr(r,'MinGreen',gmin)
    setattr(r,'MaxGreen',gmax)
    setattr(r,'Green',gsum/width/height)

    setattr(r,'MinRed',rmin)
    setattr(r,'MaxRed',rmax)
    setattr(r,'Red',rsum/width/height)
    return r
示例#4
0
def sampleFromBitmap( bitmap):

    r = samples.sample([],[])
    imin = 1
    imax = 0
    isum = 0
    for i in range(width):
        for j in range(height):
            pixel = bitmap.GetPixel(i,j)
            intense = colorIntensity(pixel)
            #setattr(r, 'intensity_'+str(i)+'_'+str(j), intense)
            #setattr(r, 'colorR_'+str(i)+'_'+str(j), pixel.R)
            #setattr(r, 'colorG_'+str(i)+'_'+str(j), pixel.G)
            #setattr(r, 'colorB_'+str(i)+'_'+str(j), pixel.B)
            if intense< imin: imin = intense
            if intense> imax: imax = intense
            isum+= intense
    setattr(r,'MinIntensity',imin)
    setattr(r,'MaxIntensity',imax)
    setattr(r,'AvgIntensity',isum/width/height)

    return r
示例#5
0
def copySample(sample, attrs):
    vals = []
    for attr in attrs:
        vals.append(getattr(sample,attr))
    return samples.sample(attrs,vals)