gauss = filters.makeGauss(x=np.linspace(-1.0,1.0,size), mean=0, sd=width)/np.sqrt(2*np.pi*width**2)
        smthEdge = np.convolve(edge, gauss,'same')
        smthEdge = (smthEdge[size:size*2]-smthEdge.min())/(smthEdge.max()-smthEdge.min())#just take the middle section
        smthEdge.shape=(1,size)
        return np.tile(smthEdge,(size,1))*2-1

#Setting for Trial Handler
stimList = data.importConditions('MOAConflictConds.xlsx')
trials = data.TrialHandler(trialList=stimList, nReps=repeats, extraInfo=info)
trials.data.addDataType('LumEdge')
trials.data.addDataType('Marker')
#trials.data.addDataType('Condition')

#Create stimuli
if info['Flip']=='n':
    lum = colorFunctions.makeEdgeGauss(width=info['Blur'],center=0.5, size=512)*info['Edge Contrast Lum']
    lmlms= colorFunctions.makeEdgeGauss(width=info['Blur'],center=0.5, size=512)*info['Edge Contrast LM']
    slms= colorFunctions.makeEdgeGauss(width=info['Blur'],center=(0.5+info['Gap']), size=512)*info['Edge Contrast S']
    lm= colorFunctions.makeEdgeGauss(width=info['Blur'],center=(0.5+info['Gap']), size=512)*info['Edge Contrast LM']
    s= colorFunctions.makeEdgeGauss(width=info['Blur'],center=(0.5+info['Gap']), size=512)*info['Edge Contrast S']

if info['Flip']=='y':
    lum = makeRevEdgeGauss(width=info['Blur'],center=0.5, size=512)*info['Edge Contrast Lum']
    lmlms= makeRevEdgeGauss(width=info['Blur'],center=0.5, size=512)*info['Edge Contrast LM']
    slms= makeRevEdgeGauss(width=info['Blur'],center=(0.5-info['Gap']), size=512)*info['Edge Contrast S']
    lm= makeRevEdgeGauss(width=info['Blur'],center=(0.5-info['Gap']), size=512)*info['Edge Contrast LM']
    s= makeRevEdgeGauss(width=info['Blur'],center=(0.5-info['Gap']), size=512)*info['Edge Contrast S']

tex= colorFunctions.dklCartToRGB_2d(LUM=lum, LM=lm, S=s)
texlms = colorFunctions.dklCartToRGB_2d(LUM=lum, LM=lmlms, S=slms)
edgePos = 0.0
Example #2
0
    
if DEBUG==False:
    monitor = 'heron'
    bitsMode = 'Fast'
    myMon=monitors.Monitor('heron')
    conversionMatrix = myMon.getDKL_RGB(RECOMPUTE=False)
   
def makeFilteredNoise(res, radius, shape='gauss'):
    noise = np.random.random([res, res])
    kernel = filters.makeMask(res, shape='gauss', radius=radius)
    filteredNoise = filters.conv2d(kernel, noise)
    filteredNoise = ((filteredNoise-filteredNoise.min())/(filteredNoise.max()-filteredNoise.min())*2-1)
    return filteredNoise
   
#Create stimuli
lum = colorFunctions.makeEdgeGauss(width=blur,center=0.5)*0.3
lm= colorFunctions.makeEdgeGauss(width=blur,center=(0.5+gap))*0.3
s=colorFunctions.makeEdgeGauss(width=0.2,center=0.5)*0.0
tex= colorFunctions.dklCartToRGB_2d(LUM=lum, LM=lm, S=s)

noiseContrast = 1.0

noise1 = makeFilteredNoise(512, radius=noiseSize)*noiseContrast
lum += noise1
noise2 = makeFilteredNoise(res=512, radius=noiseSize)*noiseContrast
lm += noise2

lumEdge= colorFunctions.dklCartToRGB_2d(LUM=lum, LM=lm*0, S=s*0, conversionMatrix = conversionMatrix)
rgEdge = colorFunctions.dklCartToRGB_2d(LUM=lum*0, LM=lm, S=s*0, conversionMatrix = conversionMatrix)
combEdge = colorFunctions.dklCartToRGB_2d(LUM=lum, LM=lm, S=s*0, conversionMatrix = conversionMatrix)
Example #3
0
info["lumEdgePos"] = float(random.randrange(20, 80, 1)) / float(100)
print "edge", info["lumEdgePos"]

# For Loop to Run Through the Trials
for thisDistance in stairs:
    trialClock.reset()

    print thisDistance

    #    #Calculate the size of the gap in percentage terms
    #    gapPix = (misc.deg2pix(info['Gap'], monitor = myMon)*0.0512)
    #    gapDeg = info['Gap']/2

    # Create stimuli

    lum = colorFunctions.makeEdgeGauss(width=info["Blur"], center=info["lumEdgePos"]) * 0.3
    lm = s = colorFunctions.makeEdgeGauss(width=info["Blur"], center=(info["lumEdgePos"] + info["Gap"])) * 0.3
    #    s=colorFunctions.makeEdgeGauss(width=info['Blur'],center=(info['lumEdgePos']+info['Gap']))*0.3
    tex = colorFunctions.dklCartToRGB_2d(LUM=lum, LM=lm, S=s)

    #    noise1 = makeFilteredNoise(512, radius=info['Noise Size'])*info['Noise Contrast']
    #    lum += noise1
    #    noise2 = makeFilteredNoise(res=512, radius=info['Noise Size'])*info['Noise Contrast']
    #    lm += noise2
    #    noise3 = makeFilteredNoise(res=512, radius=info['Noise Size'])*info['Noise Contrast']
    #    s += noise3

    #    lumEdge= colorFunctions.dklCartToRGB_2d(LUM=lum, LM=lm*0, S=s*0, conversionMatrix = conversionMatrix)
    #    rgEdge = colorFunctions.dklCartToRGB_2d(LUM=lum*0, LM=lm, S=s*0, conversionMatrix = conversionMatrix)
    sEdge = colorFunctions.dklCartToRGB_2d(LUM=lum * 0, LM=lm * 0, S=s, conversionMatrix=conversionMatrix)
    #    combEdge = colorFunctions.dklCartToRGB_2d(LUM=lum, LM=lm, S=s*0, conversionMatrix = conversionMatrix)
                                                        nDown=info['nDown'],
                                                        extraInfo=thisInfo,
                                                        minVal=info['minVal'],
                                                        maxVal=info['maxVal']
                                                        )
    thisStair.extraInfo['condition']=thisCond
    stairs.append(thisStair)

for trialN in range(info['nTrials']):
    shuffle(stairs)
    for thisStair in stairs:
        thisContrast=thisStair.next()
       
            #Create stimuli
        if thisStair.extraInfo['condition']=='LM':
            lum = colorFunctions.makeEdgeGauss(width=info['Blur'],center=0.5)*0
            lm= colorFunctions.makeEdgeGauss(width=info['Blur'],center=0.5)
            s= colorFunctions.makeEdgeGauss(width=info['Blur'],center=0.5)*0
        if thisStair.extraInfo['condition']=='S':
            lum = colorFunctions.makeEdgeGauss(width=info['Blur'],center=0.5)*0
            lm= colorFunctions.makeEdgeGauss(width=info['Blur'],center=0.5)*0
            s= colorFunctions.makeEdgeGauss(width=info['Blur'],center=0.5)
        if thisStair.extraInfo['condition']=='Lum':
            lum = colorFunctions.makeEdgeGauss(width=info['Blur'],center=0.5)
            lm= colorFunctions.makeEdgeGauss(width=info['Blur'],center=0.5)*0
            s= colorFunctions.makeEdgeGauss(width=info['Blur'],center=0.5)*0
        order = random.randint(1.0, 2.0)
       
        rgbEdge = misc.dklCart2rgb(lum, lm, s, conversionMatrix)
       
        #Draw the picture
    myWin.flip()
    junk = event.waitKeys()

    #Jitter position of edges
    info['markerPos'] = float(random.randrange(-10, 10, 1))/10
    print 'marker', info['markerPos']

    #For Loop to Run Through the Trials
    for thisDistance in stairs:
        trialClock.reset()
        
        print thisDistance
        info['lumEdgePos'] = (thisDistance)

        #Create stimuli
        lum = colorFunctions.makeEdgeGauss(width=info['Blur'],center=info['lumEdgePos'])*info['Edge Contrast Lum']
        lm= colorFunctions.makeEdgeGauss(width=info['Blur'],center=(info['lumEdgePos']+info['Gap']))*info['Edge Contrast LM']
        s= colorFunctions.makeEdgeGauss(width=info['Blur'],center=(info['lumEdgePos']+info['Gap']))*info['Edge Contrast S']
        tex= colorFunctions.dklCartToRGB_2d(LUM=lum, LM=lm, S=s)
        
        rand1 = random.randrange(0,99,1)
        noise1 = (noise[rand1])*info['Noise Contrast Lum']
        lum += noise1
        info['LumNoise'].append(rand1)
        rand2 = random.randrange(0,99,1)
        noise2 = noise[rand2]*info['Noise Contrast LM']
        lm += noise2
        info['LMNoise'].append(rand2)
        rand3 = random.randrange(0,99,1)
        noise3 = noise[rand3]*info['Noise Contrast S']
        s += noise3
Example #6
0
    myWin = visual.Window(size=(1024, 768), monitor = 'testMonitor', units = 'deg',
        fullscr=False, allowGUI=True, bitsMode=None)
    myMon = monitors.Monitor('testMonitor')
    conversionMatrix = numpy.asarray([ \
        #LUMIN    %L-M    %L+M-S  (note that dkl has to be in cartesian coords first!)
        [1.0000, 1.0000, -0.1462],#R
        [1.0000, -0.3900, 0.2094],#G
        [1.0000, 0.0180, -1.0000]])#B
    
info = {}
info['Blur'] = 0.1
edgeSize = 10.0
edgeSF = 1/10.0
edgePos = 0.5
   
lum = colorFunctions.makeEdgeGauss(width=info['Blur'],center=0.5, size=512)
lm= colorFunctions.makeEdgeGauss(width=info['Blur'],center=(0.5), size=512)*0.0
s= colorFunctions.makeEdgeGauss(width=info['Blur'],center=(0.5), size=512)

sphEdge = misc.cart2sph(z = lum, y = s, x = lm)

print len(sphEdge.shape)


#print sphEdge[:,:,0][0]

temp = copy.copy(sphEdge[:,:,1])+1
temp = (temp/numpy.abs(temp))*-15.0
sphEdge[:,:,0] += temp

#print sphEdge[:,:,0][0]