1

目标:以双层格式保存图像,如https://memorynotfound.com/convert-image-black-white-java/所示

代码:

using Images, ImageView;

function save_as_binary_image(img_path::String, threshold::Float16)
    img_binary = load(img_path);
    img_binary = (Gray.(img_binary) .> threshold);
    imshow(img_binary);
    typeof(img_binary);#=>BitArray{2}
    save("/path/to/dest/image.png", img_binary);
    img_saved = load("/path/to/dest/image.png");
    imshow(img_saved);
    typeof(img_saved);#=>Array{Gray{Normed{UInt8,8}},2}
end

save_as_binary_image("/path/to/image/file", convert(Float16, 0.5));

它保存为深度 8 的图像,但不保存深度 1 的图像。

请指导我将双层图像保存到文件中!

4

1 回答 1

1

我还不是 Images.jl 用户(也许很快),但这里有一些有用的东西:

using Images, ImageView

function save_binary_image(img_path, threshold)
    img_binary = load(img_path)
    @info size(img_binary)
    tib = Gray.(Gray.(img_binary) .> threshold)
    save("$(img_path)-$(threshold).png", tib)
end

save_binary_image("/tmp/mandrill.png", 0.1)

也许你可以慢慢修改它来做你想做的事......

在 REPL 工作可能很有用,这样您就可以立即看到错误。

于 2019-07-18T15:50:08.787 回答