Ejemplo n.º 1
0
# -*- coding: utf-8 -*-
"""
the minimum script to run 10 seconds of black screen
"""

import matplotlib.pyplot as plt
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence

# Initialize Monitor object
mon = Monitor(resolution=(1200, 1920), dis=15., mon_width_cm=52., mon_height_cm=32.)

# Initialize Inicator object
ind = Indicator(mon)

# Initialize DisplaySequence object
ds = DisplaySequence(log_dir='C:/data')

# Initialize UniformContrast object
uc = stim.UniformContrast(monitor=mon, indicator=ind, duration=10., color=-1.)

# set uniform contrast stimulus into the DisplaySequence object
ds.set_stim(uc)

# start display
ds.trigger_display()

# plot distribution of frame duration
plt.show()
ds_trigger_event = "negative_edge"
ds_trigger_NI_dev = 'Dev1'
ds_trigger_NI_port = 1
ds_trigger_NI_line = 0
ds_is_sync_pulse = False
ds_sync_pulse_NI_dev = 'Dev1'
ds_sync_pulse_NI_port = 1
ds_sync_pulse_NI_line = 1
ds_display_screen = 0
ds_initial_background_color = 0.
# =================================================================================


# Initialize Monitor object
mon = Monitor(resolution=mon_resolution, dis=mon_dis_cm, mon_width_cm=mon_width_cm, mon_height_cm=mon_height_cm,
              C2T_cm=mon_C2T_cm, C2A_cm=mon_C2A_cm, center_coordinates=mon_center_coordinates,
              downsample_rate=mon_downsample_rate)

# plot warpped monitor coordinates
mon.plot_map()
plt.show()

# initialize Indicator object
ind = Indicator(mon, width_cm=ind_width_cm, height_cm=ind_height_cm, position=ind_position, is_sync=ind_is_sync,
                freq=ind_freq)


# initialize LocallySparseNoise object
lsn = stim.LocallySparseNoise(monitor=mon, indicator=ind, pregap_dur=pregap_dur,
                              postgap_dur=postgap_dur, coordinate=coordinate,
                              background=background, subregion=lsn_subregion,
import matplotlib.pyplot as plt
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence

# Initialize Monitor object
mon = Monitor(resolution=(768, 1360),
              dis=15.,
              mon_width_cm=52.,
              mon_height_cm=32.)
mon.plot_map()
# Hiding indicator on a "throwaway" monitor
mon_temp = Monitor(resolution=(8, 8),
                   dis=15.,
                   mon_width_cm=10.,
                   mon_height_cm=10.)
ind = Indicator(mon_temp)
ds = DisplaySequence(log_dir='C:/data',
                     is_by_index=False,
                     is_save_sequence=True)
fc = stim.FlashingCircle(monitor=mon,
                         indicator=ind,
                         coordinate='degree',
                         center=(0., 60.),
                         radius=10.,
                         is_smooth_edge=False,
                         smooth_width_ratio=0.2,
                         smooth_func=stim.blur_cos,
                         color=1.,
                         flash_frame_num=60,
                         pregap_dur=2.,
Ejemplo n.º 4
0
import matplotlib.pyplot as plt
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence

# Initialize Monitor object
mon = Monitor(resolution=(768, 1360), dis=15., mon_width_cm=52., mon_height_cm=32.)

# Initialize Inicator object
ind = Indicator(mon)

# Initialize DisplaySequence object
ds = DisplaySequence(log_dir='C:/data')

# Initialize UniformContrast object
sl = stim.SinusoidalLuminance(monitor=mon, indicator=ind,
                              pregap_dur=1.,
                              midgap_dur=0.,
                              postgap_dur=3.,
                              max_level=0.,
                              min_level=-0.8,
                              frequency=0.5, cycle_num=3,
                              start_phase=0.)

# set uniform contrast stimulus into the DisplaySequence object
ds.set_stim(sl)

# start display
ds.trigger_display()

# plot distribution of frame duration
    'exposure_gain': [28000, 22],
    'width': 1376 / camera_downsample,
    'height': 1038 / camera_downsample,
    'framerate': 10,
    'downsampling': camera_downsample
}
camera = XimeaCamera(
    config=camcfg
)  # expected_recording_length=stimulus_parameters['repeat_stimulus'] * 90)
camera.start()

mon = Monitor(
    resolution=(1024, 1280),
    dis=20.0,
    mon_width_cm=stimulus_parameters['monitor_width_cm'],
    mon_height_cm=stimulus_parameters['monitor_height_cm'],
    C2T_cm=stimulus_parameters['gaze_center_to_monitor_top_edge_cm'],
    C2A_cm=stimulus_parameters['gaze_center_to_monitor_anterior_edge_cm'],
    visual_field='right',
    downsample_rate=8)  # 20

indicator = Indicator(mon)
'''
KS_stim_all_dir = stim.KSstimAllDir(mon, indicator, sweep_width=stimulus_parameters['sweep_width'], square_size=25,
                                   flicker_frame=6, iteration=1,
                                   step_width=stimulus_parameters['step_width'], pregap_dur=2.,
                                   postgap_dur=3.)  # stepWidth=0.15, # stepWidth*refreshRate=speed, i.e. 0.15 deg *60 = 9 deg/s
'''
ds = DisplaySequence(
    log_dir=r'C:\data',
    display_screen=0,
Ejemplo n.º 6
0
ss_indicator_on_frame_num = 4
ss_indicator_off_frame_num = 4
ss_cycle_num = 10
# =================================================================================

# ============================ CombinedStimuli ====================================
cs_stim_ind_sequence = [0, 7, 1, 7, 2, 7, 3, 7, 4, 7, 5, 7, 6, 7]
cs_imgs_file_path = r"D:\data2\rabies_tracing_project\method_development" \
                    r"\2017-09-06-natural-scenes\wrapped_images_for_display.hdf5"
# =================================================================================

# ================ Initialize the monitor object ==================================
mon = Monitor(resolution=mon_resolution,
              dis=mon_dis,
              mon_width_cm=mon_width_cm,
              mon_height_cm=mon_height_cm,
              C2T_cm=mon_C2T_cm,
              C2A_cm=mon_C2A_cm,
              mon_tilt=mon_tilt,
              downsample_rate=mon_downsample_rate)
# mon.plot_map()
# plt.show()
# =================================================================================

# ================ Initialize the indicator object ================================
ind = Indicator(mon,
                width_cm=ind_width_cm,
                height_cm=ind_height_cm,
                position=ind_position,
                is_sync=ind_is_sync,
                freq=ind_freq)
# =================================================================================
Ejemplo n.º 7
0
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence

# This script is meant to be used to test the synchronization between the stim. pc and the microscope, by flashing gray images at the sensor

mon = Monitor(resolution=(1024, 1280), dis=20., mon_width_cm=33.28, mon_height_cm=26.624, refresh_rate=60.0)

# creating a monitor object to display the indicator on (since we don' use it)
mon_bin = Monitor(resolution=(0,0), dis=15., mon_width_cm=52., mon_height_cm=32.)
ind = Indicator(mon_bin)

uc = stim.UniformContrast(mon, ind, duration=1, color=0)
repeated_stim = stim.CombinedStimuli(mon, ind, background=-1, pregap_dur=1, postgap_dur=0)
repeated_stim.set_stimuli([uc]*10) # set the number of iterations here

ds = DisplaySequence(log_dir="C:/data", is_by_index=True, display_screen=1, is_sync_pulse_LJ=True)

ds.set_stim(repeated_stim)
ds.trigger_display(fullscr=False)
Ejemplo n.º 8
0
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence
import matplotlib
import matplotlib.pyplot as plt

matplotlib.use('TkAgg')

if __name__ == '__main__':
    mon = Monitor(resolution=(600, 800),
                  dis=20.,
                  mon_width_cm=2,
                  mon_height_cm=1.5,
                  refresh_rate=60.0)

    # mon.plot_map()
    # plt.show()

    # creating a monitor object to display the indicator on (since we don' use it)
    mon_bin = Monitor(resolution=(0, 0),
                      dis=15.,
                      mon_width_cm=52.,
                      mon_height_cm=32.)
    ind = Indicator(mon_bin, width_cm=3, height_cm=3, is_sync=True, freq=1)

    sparse_noise = stim.SparseNoise(mon,
                                    ind,
                                    grid_space=(0.5, 0.5),
                                    probe_size=(0.5, 0.5),
                                    probe_frame_num=6,
                                    coordinate='linear',
ds_trigger_event = "negative_edge"
ds_trigger_NI_dev = 'Dev1'
ds_trigger_NI_port = 1
ds_trigger_NI_line = 0
ds_is_sync_pulse = False
ds_sync_pulse_NI_dev = 'Dev1'
ds_sync_pulse_NI_port = 1
ds_sync_pulse_NI_line = 1
ds_display_screen = 0
ds_initial_background_color = 0.
# =================================================================================


# Initialize Monitor object
mon = Monitor(resolution=mon_resolution, dis=mon_dis_cm, mon_width_cm=mon_width_cm, mon_height_cm=mon_height_cm,
              C2T_cm=mon_C2T_cm, C2A_cm=mon_C2A_cm, center_coordinates=mon_center_coordinates,
              downsample_rate=mon_downsample_rate)

# plot warpped monitor coordinates
mon.plot_map()
plt.show()

# initialize Indicator object
ind = Indicator(mon, width_cm=ind_width_cm, height_cm=ind_height_cm, position=ind_position, is_sync=ind_is_sync,
                freq=ind_freq)


# initialize LocallySparseNoise object
lsn = stim.LocallySparseNoise(monitor=mon, indicator=ind, pregap_dur=pregap_dur,
                              postgap_dur=postgap_dur, coordinate=coordinate,
                              background=background, subregion=lsn_subregion,
Ejemplo n.º 10
0
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence

if __name__ == "__main__":
    mon = Monitor(resolution=(1920, 1080),
                  dis=60.,
                  mon_width_cm=88.6,
                  mon_height_cm=49.8,
                  refresh_rate=60.0)

    # creating a monitor object to display the indicator on (since we don' use it)
    mon_bin = Monitor(resolution=(0, 0),
                      dis=15.,
                      mon_width_cm=52.,
                      mon_height_cm=32.)
    ind = Indicator(mon_bin)

    ks = stim.DriftingGratingCircle(
        mon,
        ind,
        radius_list=[50],
        dire_list=[0, 45, 90, 135, 180, 225, 270, 315],
        pregap_dur=3,
        postgap_dur=2,
        is_smooth_edge=False,
        block_dur=5,
        midgap_dur=5,
        center=(0., 60.),
        sf_list=[0.05],
        tf_list=[0.8],
Ejemplo n.º 11
0
import retinotopic_mapping.StimulusRoutines as stim
from retinotopic_mapping.MonitorSetup import Monitor, Indicator
from retinotopic_mapping.DisplayStimulus import DisplaySequence
import matplotlib
import matplotlib.pyplot as plt

matplotlib.use('TkAgg')

if __name__ == '__main__':
    mon = Monitor(resolution=(600, 800), downsample_rate=2, dis=20., mon_width_cm=39, mon_height_cm=29,
                  refresh_rate=60.0)

    mon.plot_map()
    plt.show()

    # creating a monitor object to display the indicator on (since we don' use it)
    mon_bin = Monitor(resolution=(0, 0), dis=15., mon_width_cm=52., mon_height_cm=32.)
    ind = Indicator(mon_bin, width_cm=3, height_cm=3, is_sync=True, freq=1)

    flashing_circle = stim.FlashingCircle(mon, ind, coordinate='linear', center=(2.5, 2.5), radius=2.5, color=1,
                                          midgap_dur=2, iteration=5)

    ds = DisplaySequence(log_dir="C:/data", is_by_index=True, display_screen=1, is_sync_pulse_LJ=False)

    ds.set_stim(flashing_circle)
    ds.trigger_display(fullscr=True)