NIfTI.jl icon indicating copy to clipboard operation
NIfTI.jl copied to clipboard

Reading nifti files on windows 10 with julia 0.5.1

Open dagap opened this issue 7 years ago • 1 comments

Just installed the 0.5.1 Julia Pro bundle and installed the package. In attempting to read an unompressed Nifti file on Windows 10, I get the following error:

x=niread("E:\\Dropbox\\source.nii")

256×170×256 NIfTI.NIVolume{Int16,3}:
[:, :, 1] =
Error showing value of type NIfTI.NIVolume{Int16,3}:
ERROR: MethodError: no method matching setindex!(::Int16, ::Float32, ::Int64)
 in getindex(::NIfTI.NIVolume{Int16,3}, ::Int64, ::Int64, ::Int64) at C:\Users\Windows\AppData\Local\JuliaPro-0.5.1.1\pkgs-0.5.1.1\v0.5\NIfTI\src\NIfTI.jl:523
 in getindex(::SubArray{Int16,2,NIfTI.NIVolume{Int16,3},Tuple{Base.OneTo{Int64},Base.OneTo{Int64},Int64},false}, ::Int64, ::Int64) at .\subarray.jl:134
 in isassigned(::SubArray{Int16,2,NIfTI.NIVolume{Int16,3},Tuple{Base.OneTo{Int64},Base.OneTo{Int64},Int64},false}, ::Int64, ::Int64, ::Vararg{Int64,N}) at .\abstractarray.jl:186
 in alignment(::IOContext{Base.Terminals.TTYTerminal}, ::SubArray{Int16,2,NIfTI.NIVolume{Int16,3},Tuple{Base.OneTo{Int64},Base.OneTo{Int64},Int64},false}, ::Array{Int64,1}, ::Array{Int64,1}, ::Int64, ::Int64, ::Int64) at .\show.jl:1277
 in print_matrix(::IOContext{Base.Terminals.TTYTerminal}, ::SubArray{Int16,2,NIfTI.NIVolume{Int16,3},Tuple{Base.OneTo{Int64},Base.OneTo{Int64},Int64},false}, ::String, ::String, ::String, ::String, ::String, ::String, ::Int64, ::Int64) at .\show.jl:1407
 in print_matrix(::IOContext{Base.Terminals.TTYTerminal}, ::SubArray{Int16,2,NIfTI.NIVolume{Int16,3},Tuple{Base.OneTo{Int64},Base.OneTo{Int64},Int64},false}, ::String, ::String, ::String) at .\show.jl:1379
 in show_nd(::IOContext{Base.Terminals.TTYTerminal}, ::NIfTI.NIVolume{Int16,3}, ::Base.##343#344, ::Bool) at .\show.jl:1531
 in #showarray#342(::Bool, ::Function, ::IOContext{Base.Terminals.TTYTerminal}, ::NIfTI.NIVolume{Int16,3}, ::Bool) at .\show.jl:1620
 in display(::Base.REPL.REPLDisplay{Base.REPL.LineEditREPL}, ::MIME{Symbol("text/plain")}, ::NIfTI.NIVolume{Int16,3}) at .\REPL.jl:132
 in display(::Base.REPL.REPLDisplay{Base.REPL.LineEditREPL}, ::NIfTI.NIVolume{Int16,3}) at .\REPL.jl:135
 in display(::NIfTI.NIVolume{Int16,3}) at .\multimedia.jl:143
 in print_response(::Base.Terminals.TTYTerminal, ::Any, ::Void, ::Bool, ::Bool, ::Void) at .\REPL.jl:154
 in print_response(::Base.REPL.LineEditREPL, ::Any, ::Void, ::Bool, ::Bool) at .\REPL.jl:139
 in (::Base.REPL.##22#23{Bool,Base.REPL.##33#42{Base.REPL.LineEditREPL,Base.REPL.REPLHistoryProvider},Base.REPL.LineEditREPL,Base.LineEdit.Prompt})(::Base.LineEdit.MIState, ::Base.AbstractIOBuffer{Array{UInt8,1}}, ::Bool) at .\REPL.jl:652
 in run_interface(::Base.Terminals.TTYTerminal, ::Base.LineEdit.ModalInterface) at .\LineEdit.jl:1579
 in run_frontend(::Base.REPL.LineEditREPL, ::Base.REPL.REPLBackendRef) at .\REPL.jl:903
 in run_repl(::Base.REPL.LineEditREPL, ::Base.##952#953) at .\REPL.jl:188
 in _start() at .\client.jl:363

On attempting to read a compressed Nifti file, I get:

 niread("E:\\Dropbox\\cbf_test.nii.gz")
ERROR: ccall: could not find function dup
 in gzdopen(::String, ::Int64, ::String, ::Int64) at C:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Users\Windows\AppData\Local\JuliaPro-0.5.1.1\pkgs-0.5.1.1\v0.5\GZip\src\GZip.jl:282
 in gzdopen(::IOStream) at C:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\Users\Windows\AppData\Local\JuliaPro-0.5.1.1\pkgs-0.5.1.1\v0.5\GZip\src\GZip.jl:302
 in #niread#8(::Bool, ::Function, ::String) at C:\Users\Windows\AppData\Local\JuliaPro-0.5.1.1\pkgs-0.5.1.1\v0.5\NIfTI\src\NIfTI.jl:447
 in niread(::String) at C:\Users\Windows\AppData\Local\JuliaPro-0.5.1.1\pkgs-0.5.1.1\v0.5\NIfTI\src\NIfTI.jl:445

dagap avatar Mar 24 '17 14:03 dagap

This seems to happen only on Windows platform. I tested it on 64-bit Win 10 with Julia 0.5.1. Tested it on Ubuntu 16.04 64 bit and it is working fine.

dagap avatar Mar 27 '17 13:03 dagap