Skip to content

Commit

Permalink
added todorovic_equal illusion
Browse files Browse the repository at this point in the history
  • Loading branch information
LynnSchmittwilken committed Dec 12, 2022
1 parent aed377e commit 760da79
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 5 deletions.
5 changes: 3 additions & 2 deletions stimuli/illusions/overview.py
Expand Up @@ -60,7 +60,7 @@
# Dungeon
"Dungeon": dungeon.dungeon_illusion(**p, n_cells=5),
# Frames
"Frames": frames(**p, frequency=0.5, target_indices=(1, 3)),
"Frames": frames(**p, frequency=0.5, target_indices=3),
"Bullseye": bullseye(**p, frequency=0.5),
# Grating
"Grating with targets": grating.square_wave(**p, frequency=0.5, target_indices=(3, 6)),
Expand All @@ -81,6 +81,7 @@
"Todorovic rectangle": todorovic.todorovic_rectangle(**p, target_size=4, covers_size=2, covers_offset=2),
"Todorovic cross, general": todorovic.todorovic_cross_generalized(**p, cross_size=4, cross_arm_ratios=1., cross_thickness=2, covers_size=2, covers_x=(2, 6), covers_y=(2, 6)),
"Todorovic cross": todorovic.todorovic_cross(**p, cross_size=4, cross_thickness=2, covers_size=2),
"Todorovic equal": todorovic.todorovic_equal(**p, cross_size=4, cross_thickness=2),
# Wedding cake
"Wedding cake": wedding_cake.wedding_cake_stimulus(**p, L_size=(3, 3, 1), target_height=1, target_indices1=((1, 1), (2, 1)),),
# White
Expand All @@ -94,4 +95,4 @@


if __name__ == "__main__":
plot_stimuli(stims, mask=True, save=None)
plot_stimuli(stims, mask=False, save=None)
63 changes: 63 additions & 0 deletions stimuli/illusions/todorovic.py
Expand Up @@ -371,6 +371,68 @@ def todorovic_cross(
return stim


def todorovic_equal(
visual_size=None,
ppd=None,
cross_size=None,
cross_thickness=None,
intensity_background=0.0,
intensity_target=0.5,
intensity_covers=1.0,
):
"""
Todorovic's illusion with cross target and four rectangular covers added at inner cross corners
Parameters
----------
visual_size : float or (float, float)
size of the stimulus in degrees of visual angle (height, width)
ppd : int
pixels per degree (visual angle)
cross_size : float or (float, float)
size of target cross in visual angle
cross_thickness : float
thickness of target cross in visual angle
intensity_background : float
intensity value for background
intensity_target : float
intensity value for target
intensity_covers : float
intensity value for covers
Returns
-------
A stimulus dictionary with the stimulus ['img'] and target mask ['mask']
References
-----------
Blakeslee, B., & McCourt, M. E. (1999). A multiscale spatial filtering account of the
White effect, simultaneous brightness contrast and grating induction. Vision
Research, 39, 4361–4377.
Pessoa, L., Baratoff, G., Neumann, H., & Todorovic, D. (1998). Lightness and junctions:
variations on White’s display. Investigative Ophthalmology and Visual Science
(Supplement), 39, S159.
Todorovic, D. (1997). Lightness and junctions. Perception, 26, 379–395.
"""
if isinstance(cross_size, (float, int)):
cross_size = (cross_size, cross_size)

covers_size = ((cross_size[0] - cross_thickness) / 2,
(cross_size[1] - cross_thickness) / 2)

stim = todorovic_cross(
visual_size=visual_size,
ppd=ppd,
cross_size=cross_size,
cross_thickness=cross_thickness,
covers_size=covers_size,
intensity_background=intensity_background,
intensity_target=intensity_target,
intensity_covers=intensity_covers,
)
return stim


if __name__ == "__main__":
from stimuli.utils import plot_stimuli

Expand All @@ -395,5 +457,6 @@ def todorovic_cross(
covers_size=2,
covers_x=(2, 6),
covers_y=(2, 6)),
"Todorovic equal": todorovic_equal(**params, cross_size=4, cross_thickness=2),
}
plot_stimuli(stims, mask=True, save=None)
5 changes: 2 additions & 3 deletions stimuli/papers/RHS2007.py
Expand Up @@ -1057,17 +1057,16 @@ def todorovic_equal(ppd=PPD, pad=True):
"ppd": ppd,
"cross_size": 8.0,
"cross_thickness": 1.6,
"covers_size": 3.2,
"intensity_target": v2,
}

stim1 = illusions.todorovic.todorovic_cross(
stim1 = illusions.todorovic.todorovic_equal(
intensity_background=1.0,
intensity_covers=0.0,
**params,
)

stim2 = illusions.todorovic.todorovic_cross(
stim2 = illusions.todorovic.todorovic_equal(
intensity_background=0.0,
intensity_covers=1.0,
**params,
Expand Down

0 comments on commit 760da79

Please sign in to comment.