Beispiel #1
0
def create_stimulus(info, return_env=False):
	control(info)

	import numpy as np

	fx, fy, ft = mc.get_grids(info[height], info[width], info[frame])

	env_color = 1
	env_orientation = 1
	env_radial = 1
	env_speed = 1
	if (info[color] == True):
		if (info[ft_0] == True): ft_0_color = np.inf
		else: ft_0_color = 1
		env_color = mc.envelope_color(fx, fy, ft, alpha=info[alpha], ft_0=ft_0_color)
	if (info[orientation] == True):
		env_orientation = mc.envelope_orientation(fx, fy, ft, theta=info[theta], B_theta=info[B_theta])
	if (info[radial] == True):
		if (info[ft_0b] == True): ft_0_radial = np.inf
		else: ft_0_radial = 1
		env_radial = mc.envelope_radial(fx, fy, ft, sf_0=info[sf_0], B_sf=info[B_sf], ft_0=ft_0_radial, loggabor=info[loggabor])
	if (info[speed] == True):
		env_speed = mc.envelope_speed(fx, fy, ft, V_X=info[V_X], V_Y=info[V_Y], B_V=info[B_V])

	env = env_color * env_orientation * env_radial * env_speed
	if (info[random_cloud] == True):
		if (info[seed] == 'None'): seed_t = None
		else: seed_t = int(info[seed])
		env = mc.random_cloud(env, seed=seed_t, impulse=info[impulse], do_amp=info[do_amp])
	env = mc.rectif(env, contrast=1.)
	env = env * 255
	if (return_env == True):
		return (env)
	stimulus = np.zeros([info[height], info[width], info[frame], 3]).astype(int)

	if (info[isoluminance] == True):
		stimulus[:, :, :, 0] = env
		stimulus[:, :, :, 1] = 255 - env
		stimulus[:, :, :, 2] = 127
	else:
		for i in range(3):
			stimulus[:, :, :, i] = env[:, :, :]

	return(stimulus)
Beispiel #2
0
try:
    if mc.notebook: print('we are in the notebook')
except:
    import os
    import MotionClouds as mc
    import numpy as np


#initialize
fx, fy, ft = mc.get_grids(mc.N_X, mc.N_Y, mc.N_frame)
color = mc.envelope_color(fx, fy, ft) #

name = 'speed'
# now selects in preference the plane corresponding to the speed with some thickness
z = color*mc.envelope_speed(fx, fy, ft)
mc.figures(z, name)

# explore parameters
for V_X in [-1.0, -0.5, 0.0, 0.1, 0.5, 1.0, 4.0]:
    name_ = name + '-V_X-' + str(V_X).replace('.', '_')
    z = color * mc.envelope_speed(fx, fy, ft, V_X=V_X)
    mc.figures(z, name_)

for V_Y in [-1.0, -0.5, 0.5, 1.0, 2.0]:
    name_ = name + '-V_Y-' + str(V_Y).replace('.', '_')
    z = color * mc.envelope_speed(fx, fy, ft, V_X=0.0, V_Y=V_Y)
    mc.figures(z, name_)

for B_V in [0.001, 0.01, 0.05, 0.1, 0.5, 1.0, 10.0]:
    name_ = name + '-B_V-' + str(B_V).replace('.', '_')
Beispiel #3
0
import libpy as lb
import numpy as np
import sys, os
import MotionClouds as mc

h = 400
w = 200
f = 64

fx, fy, ft = mc.get_grids(h, w, f)
color = mc.envelope_color(fx, fy, ft)
env = color * mc.envelope_speed(fx, fy, ft)
env = mc.envelope_gabor(fx, fy, ft)
env = mc.random_cloud(env)
env = mc.rectif(env, contrast=1.)
tomat = env
env = env * 255
stimulus = np.zeros([h, w, f, 3]).astype(int)

i = 0
while (i != f):
	if (i % 2 == 0):
		stimulus[:, :, i, 0] = env[:, :, i]
		stimulus[:, :, i, 1] = 0 # 128 #env[:, :, i]
		stimulus[:, :, i, 2] = 0 # 255 - env[:, :, i]
	else:
		#stimulus[:, :, i, 0] = 255 - env[:, :, i]
		stimulus[:, :, i, 1] = 255 - env[:, :, i]
		stimulus[:, :, i, 0] = 0 #128 #env[:, :, i]
		stimulus[:, :, i, 2] = 0 #env[:, :, i]
#		stimulus[:, :, i, :] = 255 - env[:, :, i, np.newaxis]
Beispiel #4
0
def create_stimulus(info, return_env=False):
    control(info)

    import numpy as np

    fx, fy, ft = mc.get_grids(info[height], info[width], info[frame])

    env_color = 1
    env_orientation = 1
    env_radial = 1
    env_speed = 1
    if (info[color] == True):
        if (info[ft_0] == True): ft_0_color = np.inf
        else: ft_0_color = 1
        env_color = mc.envelope_color(fx,
                                      fy,
                                      ft,
                                      alpha=info[alpha],
                                      ft_0=ft_0_color)
    if (info[orientation] == True):
        env_orientation = mc.envelope_orientation(fx,
                                                  fy,
                                                  ft,
                                                  theta=info[theta],
                                                  B_theta=info[B_theta])
    if (info[radial] == True):
        if (info[ft_0b] == True): ft_0_radial = np.inf
        else: ft_0_radial = 1
        env_radial = mc.envelope_radial(fx,
                                        fy,
                                        ft,
                                        sf_0=info[sf_0],
                                        B_sf=info[B_sf],
                                        ft_0=ft_0_radial,
                                        loggabor=info[loggabor])
    if (info[speed] == True):
        env_speed = mc.envelope_speed(fx,
                                      fy,
                                      ft,
                                      V_X=info[V_X],
                                      V_Y=info[V_Y],
                                      B_V=info[B_V])

    env = env_color * env_orientation * env_radial * env_speed
    if (info[random_cloud] == True):
        if (info[seed] == 'None'): seed_t = None
        else: seed_t = int(info[seed])
        env = mc.random_cloud(env,
                              seed=seed_t,
                              impulse=info[impulse],
                              do_amp=info[do_amp])
    env = mc.rectif(env, contrast=1.)
    env = env * 255
    if (return_env == True):
        return (env)
    stimulus = np.zeros([info[height], info[width], info[frame],
                         3]).astype(int)

    if (info[isoluminance] == True):
        stimulus[:, :, :, 0] = env
        stimulus[:, :, :, 1] = 255 - env
        stimulus[:, :, :, 2] = 127
    else:
        for i in range(3):
            stimulus[:, :, :, i] = env[:, :, :]

    return (stimulus)
    mc.figures(one + two, name_)

# explore parameters
for sf_0 in [0.0, 0.1 , 0.2, 0.3, 0.8, 0.9]:
    name_ = mc.figpath + name + '-sf_0' + str(sf_0).replace('.', '_')
    if mc.anim_exist(name_):
        one = mc.envelope_gabor(fx, fy, ft, B_theta=10.)
        two = mc.envelope_gabor(fx, fy, ft, sf_0=sf_0, B_theta=10.)
        mc.figures(one + two, name_)


name = 'counterphase_grating'
name_ = mc.figpath + name
if mc.anim_exist(name_):
    right = mc.envelope_speed(fx, fy, ft, V_X=.5 )
    left = mc.envelope_speed(fx, fy, ft, V_X=-.5 )
    grating = mc.envelope_gabor(fx, fy, ft)
    z = grating * (left + right ) # thanks to the addititivity of MCs
    mc.figures(z, name_)

name = 'plaid'
name_ = mc.figpath + name
if mc.anim_exist(name):
    color = mc.envelope_color(fx, fy, ft)
    diag1 = mc.envelope_gabor(fx, fy, ft, theta=numpy.pi/4.)
    diag2 = mc.envelope_gabor(fx, fy, ft, theta=-numpy.pi/4.)
    z = color *(diag1 + diag2)
    mc.figures(z, name_)

# explore parameters