Does Meshing.isosurface() work only with the exact value of iso in maching_cube()

I tried to use the function isosurface with marching_cube, from Meshing.jl.
I have volumetric data in an array of size(91, 109, 91), with Float64 values in the interval [-3, 3], and I wanted to get the mesh for the isosurface corresponding to iso=1.25 (a brain).

Inspecting the array (MNI152.npy - Google Drive)

findall(x->x==1.25, brain_vol)

I get:


Although no array element has exact this value, I was expecting that calling

verts, triangles =  Meshing.isosurface(brain_vol, MarchingCubes(iso=1.25));

to get the brain mesh (because other tools work even in this case), but plotting it I get an empty plot.
Trying with Python skimage marching_cube

verts, triangles= skimage.measure.marching_cubes_lewiner(brain_vol, 1.25)

I get:

I suspect that the algorithm used by skimage selects values at some distance from the transmitted iso-value.

My question:
Is there a keyword that must be set when calling Meshing.isosurface() to ensure that it generate the right mesh?

Meshing.isosurface(brain_vol, MarchingCubes(iso=1.25));

returns non-empty verts and triangles, but using almost the same code(Plotly JS vs for visualizing meshes, I get an empty plot with PlotlyJS, that works for any other mesh I tested. Here is the code to get the brain mesh:

using Meshing
using NPZ
brain_vol = npzread("MNI152.npy")
verts, triangles =  Meshing.isosurface(brain_vol, MarchingCubes(iso=1.25));

The isosurface will separate voxels with value >= 1.25 from those below that number. I suspect that the voxels hold integer values.

The isosurface was not drawn because
triangles had elements from 1 to N, but for PlotlyJS.jl they must start from 0.
Thse two lines fixed my issue:

matr_tri = reshape(reinterpret(Int64, triangles), (3, size(triangles,1)));
matr_tri = matr_tri .- 1