Skip to content

Commit

Permalink
Make Python2.7 proof
Browse files Browse the repository at this point in the history
Mainly fixing circular imports, and dividing by floats instead of ints
  • Loading branch information
JorisVincent committed Sep 23, 2021
1 parent cdbda26 commit 0528281
Show file tree
Hide file tree
Showing 14 changed files with 837 additions and 204 deletions.
12 changes: 6 additions & 6 deletions stimuli/__init__.py
@@ -1,6 +1,6 @@
from . import contrast_metrics
from . import illusions
from . import texture
from . import transparency
from . import papers
from .utils import utils
from stimuli import contrast_metrics
from stimuli import illusions
from stimuli import texture
from stimuli import transparency
from stimuli import papers
from .utils import utils
27 changes: 23 additions & 4 deletions stimuli/illusions/benary_cross.py
@@ -1,9 +1,18 @@
import numpy as np
from stimuli.utils import degrees_to_pixels, pad_img, plot_stim
from stimuli.Stimulus import Stimulus
from stimuli import illusions

def benarys_cross(ppd=10, cross_size=(8,8,8,8), cross_thickness=5, padding=(1,1,1,1), target_size=2, back=1., cross=0., target=.5):

def benarys_cross(
ppd=10,
cross_size=(8, 8, 8, 8),
cross_thickness=5,
padding=(1, 1, 1, 1),
target_size=2,
back=1.0,
cross=0.0,
target=0.5,
):
"""
Benary's Cross Illusion (with square targets)
Expand Down Expand Up @@ -71,9 +80,19 @@ def domijan2015():
Generates Benary Cross illusion as used in the Domijan 2015 paper.
"""

return illusions.benarys_cross(ppd=10, cross_size=(3,3,3,3), cross_thickness=2.1, padding=(.9,1.0,.9,1.0),target_size=1.1, back=9., cross=1., target=5.)
return benarys_cross(
ppd=10,
cross_size=(3, 3, 3, 3),
cross_thickness=2.1,
padding=(0.9, 1.0, 0.9, 1.0),
target_size=1.1,
back=9.0,
cross=1.0,
target=5.0,
)


if __name__ == '__main__':
import matplotlib.pyplot as plt
stim = benarys_cross()
plot_stim(stim, mask=True)
plot_stim(stim, mask=True)
36 changes: 31 additions & 5 deletions stimuli/illusions/bullseye.py
Expand Up @@ -2,7 +2,6 @@
from stimuli.illusions.rings import ring_pattern
from stimuli.utils import degrees_to_pixels, pad_img
from stimuli.Stimulus import Stimulus
from stimuli import illusions

def bullseye_illusion(ppd=10, n_rings=8, ring_width=.5, target_pos_l=0, target_pos_r=0, padding=(1.0,1.0,1.0,1.0), back=0., rings=1., target=.5):
"""
Expand Down Expand Up @@ -48,29 +47,56 @@ def bullseye_illusion(ppd=10, n_rings=8, ring_width=.5, target_pos_l=0, target_p

return stim


def domijan2015():
"""
Generates Bullseye illusion as used in the Domijan 2015 paper.
"""

img = illusions.bullseye_illusion(n_rings=8, ring_width=.5, target_pos_l=0, target_pos_r=0, padding=(.9,1.0,.9,1.0), back=1., rings=9., target=5.)
img = bullseye_illusion(
n_rings=8,
ring_width=0.5,
target_pos_l=0,
target_pos_r=0,
padding=(0.9, 1.0, 0.9, 1.0),
back=1.0,
rings=9.0,
target=5.0,
)
return img


def RHS2007_bullseye_thin():
"""
Generates Bullseye thin illusion as used in the Robinson, Hammon and de Sa 2007 paper.
"""
return illusions.bullseye_illusion(n_rings=8, ring_width=1, padding=(100,100,100,100), back=1., rings=9., target=5.)
return bullseye_illusion(
n_rings=8,
ring_width=1,
padding=(100, 100, 100, 100),
back=1.0,
rings=9.0,
target=5.0,
)


def RHS2007_bullseye_thick():
"""
Generates Bullseye thick illusion as used in the Robinson, Hammon and de Sa 2007 paper.
"""

return illusions.bullseye_illusion(n_rings=8, ring_width=1, padding=(50,50,50,50), back=1., rings=9., target=5.)
return bullseye_illusion(
n_rings=8,
ring_width=1,
padding=(50, 50, 50, 50),
back=1.0,
rings=9.0,
target=5.0,
)


if __name__ == '__main__':
import matplotlib.pyplot as plt
stim = bullseye_illusion()
plt.imshow(stim.img, cmap='gray')
plt.show()
plt.show()
32 changes: 25 additions & 7 deletions stimuli/illusions/checkerboard_contrast_contrast.py
@@ -1,10 +1,19 @@
import numpy as np
from stimuli.utils import degrees_to_pixels, pad_img, plot_stim
from stimuli.Stimulus import Stimulus
from stimuli import illusions

def checkerboard_contrast_contrast_effect(ppd=10, n_checks=8, check_size=1.0, target_length=4, padding=(1.0,1.0,1.0,1.0), check1=0., check2=2.,
tau=.5, alpha=.5):

def checkerboard_contrast_contrast_effect(
ppd=10,
n_checks=8,
check_size=1.0,
target_length=4,
padding=(1.0, 1.0, 1.0, 1.0),
check1=0.0,
check2=2.0,
tau=0.5,
alpha=0.5,
):
"""
Contrast-contrast effect on checkerboard with square transparency layer.
Expand Down Expand Up @@ -79,15 +88,24 @@ def checkerboard_contrast_contrast_effect(ppd=10, n_checks=8, check_size=1.0, ta
return stim



def domijan2015():
"""
Generates checkerboard contrast contrast illusion as used in Domijan 2015 paper.
"""
return illusions.checkerboard_contrast_contrast_effect(ppd=10, n_checks=8, check_size=1.0, target_length=4, padding=(.9,1.1,.9,1.1), check1=1.,
check2=9., tau=5, alpha= .5)
return checkerboard_contrast_contrast_effect(
ppd=10,
n_checks=8,
check_size=1.0,
target_length=4,
padding=(0.9, 1.1, 0.9, 1.1),
check1=1.0,
check2=9.0,
tau=5,
alpha=0.5,
)


if __name__ == '__main__':
import matplotlib.pyplot as plt
stim = checkerboard_contrast_contrast_effect()
plot_stim(stim, mask=True)
plot_stim(stim, mask=True)
93 changes: 77 additions & 16 deletions stimuli/illusions/checkerboard_sbc.py
@@ -1,11 +1,25 @@
import numpy as np
from stimuli.utils import degrees_to_pixels, pad_img, pad_img_to_shape, plot_stim
from stimuli.utils import (
degrees_to_pixels,
pad_img,
pad_img_to_shape,
plot_stim,
)
from stimuli.Stimulus import Stimulus
import matplotlib.pyplot as plt
from stimuli import illusions

def checkerboard_contrast(ppd=10, board_shape=(8,8), check_size=1.0, target1_coords=(3, 2), target2_coords=(5, 5), extend_targets=False,
check1=0., check2=1., target=.5):

def checkerboard_contrast(
ppd=10,
board_shape=(8, 8),
check_size=1.0,
target1_coords=(3, 2),
target2_coords=(5, 5),
extend_targets=False,
check1=0.0,
check2=1.0,
target=0.5,
):
"""
Checkerboard Contrast
Expand Down Expand Up @@ -74,9 +88,19 @@ def domijan2015():
"""
Generates checkerboard_sbc illusion as used in Domijan 2015 paper.
"""
stim = illusions.checkerboard_contrast(ppd=10, board_shape=(8,8), check_size=1.0, target1_coords=(3, 2), target2_coords=(5, 5), extend_targets=False, check1=1., check2=9., target=5.)
padding = (.9, 1.1, .9, 1.1)
stim.img = pad_img(stim.img, padding, ppd=10, val=5.)
stim = checkerboard_contrast(
ppd=10,
board_shape=(8, 8),
check_size=1.0,
target1_coords=(3, 2),
target2_coords=(5, 5),
extend_targets=False,
check1=1.0,
check2=9.0,
target=5.0,
)
padding = (0.9, 1.1, 0.9, 1.1)
stim.img = pad_img(stim.img, padding, ppd=10, val=5.0)
stim.target_mask = pad_img(stim.target_mask, padding, ppd=10, val=0)
return stim

Expand All @@ -85,9 +109,19 @@ def domijan2015_extended():
"""
Generates checkerboard_sbc extended illusion as used in Domijan 2015 paper.
"""
stim = illusions.checkerboard_contrast(ppd=10, board_shape=(8,8), check_size=1.0, target1_coords=(3, 2), target2_coords=(5, 5), extend_targets=True, check1=1., check2=9., target=5.)
padding = (.9, 1.1, .9, 1.1)
stim.img = pad_img(stim.img, padding, ppd=10, val=5.)
stim = heckerboard_contrast(
ppd=10,
board_shape=(8, 8),
check_size=1.0,
target1_coords=(3, 2),
target2_coords=(5, 5),
extend_targets=True,
check1=1.0,
check2=9.0,
target=5.0,
)
padding = (0.9, 1.1, 0.9, 1.1)
stim.img = pad_img(stim.img, padding, ppd=10, val=5.0)
stim.target_mask = pad_img(stim.target_mask, padding, ppd=10, val=0)
return stim

Expand All @@ -103,8 +137,17 @@ def RHS2007_Checkerboard016():

check1, check2, target = 1, 0, .5
target_height = height_checks // 2
stim = illusions.checkerboard_contrast(ppd=ppd, board_shape=board_shape, check_size=check_height, target1_coords=(target_height, 16), target2_coords=(target_height, 85),
extend_targets=False, check1=check1, check2=check2, target=target)
stim = checkerboard_contrast(
ppd=ppd,
board_shape=board_shape,
check_size=check_height,
target1_coords=(target_height, 16),
target2_coords=(target_height, 85),
extend_targets=False,
check1=check1,
check2=check2,
target=target,
)

stim.img = pad_img_to_shape(stim.img, (1024, 1024), val=target)
stim.target_mask = pad_img_to_shape(stim.target_mask, (1024, 1024), val=0)
Expand All @@ -123,8 +166,17 @@ def RHS2007_Checkerboard0938():

check1, check2, target = 0, 1, .5
target_height = height_checks // 2
stim = illusions.checkerboard_contrast(ppd=ppd, board_shape=board_shape, check_size=check_height, target1_coords=(target_height, 6), target2_coords=(target_height, 17),
extend_targets=False, check1=check1, check2=check2, target=target)
stim = checkerboard_contrast(
ppd=ppd,
board_shape=board_shape,
check_size=check_height,
target1_coords=(target_height, 6),
target2_coords=(target_height, 17),
extend_targets=False,
check1=check1,
check2=check2,
target=target,
)
stim.img = pad_img_to_shape(stim.img, (1024, 1024), val=target)
stim.target_mask = pad_img_to_shape(stim.target_mask, (1024, 1024), val=0)

Expand All @@ -142,8 +194,17 @@ def RHS2007_Checkerboard209():

check1, check2, target = 0, 1, .5
target_height = height_checks // 2
stim = illusions.checkerboard_contrast(ppd=ppd, board_shape=board_shape, check_size=check_height, target1_coords=(target_height, 2), target2_coords=(target_height, 7),
extend_targets=False, check1=check1, check2=check2, target=target)
stim = checkerboard_contrast(
ppd=ppd,
board_shape=board_shape,
check_size=check_height,
target1_coords=(target_height, 2),
target2_coords=(target_height, 7),
extend_targets=False,
check1=check1,
check2=check2,
target=target,
)
stim.img = pad_img_to_shape(stim.img, (1024, 1024), val=target)
stim.target_mask = pad_img_to_shape(stim.target_mask, (1024, 1024), val=0)

Expand Down
57 changes: 50 additions & 7 deletions stimuli/illusions/cube.py
@@ -1,10 +1,24 @@
import numpy as np
from stimuli.utils import degrees_to_pixels, pad_img, plot_stim
from stimuli.Stimulus import Stimulus
from stimuli import illusions

def cube_illusion(ppd=10, n_cells=5, target_length=2, cell_long=1.5, cell_short=1.0, corner_cell_width=1.8, corner_cell_height=1.8,
cell_spacing=.5, padding=(1.0,1.0,1.0,1.0), occlusion_overlap=(.7,.7,.7,.7), back=0., grid=1., target=.5, double=True):

def cube_illusion(
ppd=10,
n_cells=5,
target_length=2,
cell_long=1.5,
cell_short=1.0,
corner_cell_width=1.8,
corner_cell_height=1.8,
cell_spacing=0.5,
padding=(1.0, 1.0, 1.0, 1.0),
occlusion_overlap=(0.7, 0.7, 0.7, 0.7),
back=0.0,
grid=1.0,
target=0.5,
double=True,
):

"""
Cube illusion (Agostini & Galmonte, 2002)
Expand Down Expand Up @@ -138,8 +152,22 @@ def cube_illusion(ppd=10, n_cells=5, target_length=2, cell_long=1.5, cell_short=
mask = pad_img(mask, padding, ppd, 0)

if double:
stim2 = cube_illusion(ppd=ppd, n_cells=n_cells, target_length=target_length, cell_long=cell_long, cell_short=cell_short, corner_cell_width=corner_cell_width, corner_cell_height=corner_cell_height,
cell_spacing=cell_spacing, padding=padding, occlusion_overlap=occlusion_overlap, back=grid, grid=back, target=target, double=False)
stim2 = cube_illusion(
ppd=ppd,
n_cells=n_cells,
target_length=target_length,
cell_long=cell_long,
cell_short=cell_short,
corner_cell_width=corner_cell_width,
corner_cell_height=corner_cell_height,
cell_spacing=cell_spacing,
padding=padding,
occlusion_overlap=occlusion_overlap,
back=grid,
grid=back,
target=target,
double=False,
)
img = np.hstack([img, stim2.img])
mask = np.hstack([mask, stim2.target_mask])

Expand All @@ -151,8 +179,23 @@ def cube_illusion(ppd=10, n_cells=5, target_length=2, cell_long=1.5, cell_short=


def domijan2015():
return illusions.cube_illusion(ppd=10, n_cells=4, target_length=2, cell_long=1.5, cell_short=1.1, corner_cell_width=1.8, corner_cell_height=1.8, cell_spacing=.5, padding=(.9,1.0,.9,1.0),
occlusion_overlap=(.7,.7,.7,.7), back=1., grid=9., target=5., double=True)
return cube_illusion(
ppd=10,
n_cells=4,
target_length=2,
cell_long=1.5,
cell_short=1.1,
corner_cell_width=1.8,
corner_cell_height=1.8,
cell_spacing=0.5,
padding=(0.9, 1.0, 0.9, 1.0),
occlusion_overlap=(0.7, 0.7, 0.7, 0.7),
back=1.0,
grid=9.0,
target=5.0,
double=True,
)


if __name__ == '__main__':
import matplotlib.pyplot as plt
Expand Down

0 comments on commit 0528281

Please sign in to comment.