imwrite 中的 InexactError()

InexactError() in imwrite

我是 Julia 的新手,当我执行以下代码时,我无法解释这个 InexactError() 的来源:

ImBin=rgb2bin(im); # convert image into binary image with own function returns Array{Float64} at the moment
ImBin=round(ImBin); 
ImOut=grayim(ImBin);
imwrite(ImOut,"ImOut.png");

我写了另一个函数,它运行良好:

ImArray=convert(Array{Float64}, ImInput); #ImInput is a BitArray
Im=grayim(ImArray);
imwrite(Im,"Im.png");

第一个代码块的错误信息:

ERROR: InexactError()
 in _map_a! at /root/.julia/v0.3/Images/src/map.jl:372
 in map! at /root/.julia/v0.3/Images/src/map.jl:364
 in image2wand at /root/.julia/v0.3/Images/src/io.jl:341
 in imwrite at /root/.julia/v0.3/Images/src/io.jl:189
 in main at /home/user/Desktop/julia/Test.jl:35
 in include at ./boot.jl:245
 in include_from_node1 at loading.jl:128
 in process_options at ./client.jl:285
 in _start at ./client.jl:354

提前致谢, 问候 clax

它可能是在警告您您的图像中的某些内容超出了范围 0.0 <= x <= 1.0。您可以手动限制图像,或通过添加 mapi 关键字强制它为您执行此操作:

imwrite(ImOut, "ImOut.png", mapi=mapinfo(Clamp, ImOut))

如果这不能解决问题,请在 Images.jl 提出问题,包括重现错误的完整方法。