@@ -17,24 +17,86 @@ n_conditions = 2
1717sites_grouping = rand (1 : n_conditions,n_sites)
1818
1919
20- grid = Int .(zeros (500 ,500 ))
21- grid_combined = CuArray (grid)
22- sites = CartesianIndices (size (grid))[rand (1 : length (grid),n_sites)]
20+
21+ grid_combined, grid_singles, sites =
22+ setup (grid_densities, 100 )
23+
2324```
2425
2526``` julia
2627include (" ../simulate_densities.jl" )
27- n_conditions = 2
28- grid_densities = simulate_densities (;timepoints = 10 ,grid_sz = size (grid_combined),n_conditions)
28+ n_conditions = 3
29+ grid_densities = CuArray .(simulate_densities (;timepoints = 10 ,grid_sz = (500 ,500 ),n_conditions))
30+ colors = [:red ,:green ,:blue ]
31+ # ---
32+ # using TestImages
33+ grid_densities = [CuArray (Float32 .(1 .- rotr90 (testimage (" cameraman" )))),CuArray (Float32 .(rotr90 (testimage (" cameraman" ))))]
34+ colors = [:black ,:white ]
35+
36+ # ---
37+ _X = testimage (" toucan" )
38+ using ImageTransformations
39+ percentage_scale = 5
40+ new_size = trunc .(Int, size (_X) .* percentage_scale)
41+ X = rotr90 (imresize (_X, new_size))
42+
43+ # exract a colorscheme
44+ n = tempname ()* " .jpg" ;save (n,X)
45+ colors = extract (n,5 ,25 ,0.1 )
46+ using Colors
47+ function extract_color (X,color)
48+ out = Colors. colordiff .(color,RGB .(X))
49+
50+ # out = out ./ maximum(out)
51+ return Float32 .(out)
52+ end
53+ colordiffs = extract_color .(Ref (X),colors)
54+ m = maximum (maximum .(colordiffs))
55+ X_cd = map (x-> 1 .- x./ m,colordiffs)
56+ X_cd = map (x-> (alpha .(X)). * x,X_cd)
57+ grid_densities = CuArray .(X_cd)
58+
59+
60+ # grid_densities = [CuArray(Float32.(rotr90(getproperty.(X,:r)))),
61+ # CuArray(Float32.(rotr90(getproperty.(X,:g)))),
62+ # CuArray(Float32.(rotr90(getproperty.(X,:b))))]
63+ ```
2964
30- # grid_densities = [testimage("cameraman")]
65+ ``` julia
66+ trig = Observable (20 )
67+ stipplemap (grid_densities;
68+ colors= colors[end : - 1 : 1 ],
69+ density_factor= 0.2 ,
70+ hysteresis= 0.95 ,
71+ markersize= 5 ,
72+
73+ axis= (;aspect= 1 ,limits= ((0 ,size (grid_densities[1 ],1 )),(0 ,size (grid_densities[1 ],2 )))),
74+ one_more_iteration= trig)
3175```
3276
3377run setup without iterations
3478
3579``` julia
36- grid_singles,sites_sets = MakieStippling. run_iterations! (grid_combined,sites,sites_grouping,grid_densities;
37- n_iter= 0 )
80+
81+ grid_combined, grid_singles, sites =
82+ MakieStippling. setup (grid_densities, 100 )
83+ MakieStippling. jfa_voronoi_gpu! (grid_combined, collect (reduce (union, to_value .(sites))))
84+ n_groups = length (grid_densities)
85+ [MakieStippling. jfa_voronoi_gpu! (grid_singles[k], collect (to_value (sites[k]))) for k = 1 : n_groups]
86+
87+
88+ _sites = Set .(MakieStippling. linearized_sites .(collect .(to_value .(sites)), Ref (size (grid_combined))))
89+
90+ @run MakieStippling. one_iteration! (
91+ grid_combined,
92+ grid_singles,
93+ _sites,
94+ to_value (grid_densities);
95+ markersize = 5 ,
96+ hysteresis_a = 0.8
97+ )
98+
99+
38100```
39101
40102setup ` Observables.jl ` to quickly update the plot
0 commit comments