Image processing julia lang-将图像转换为黑白
我正在尝试使用阈值为0.5的Julia将图像转换为黑白。我已将图像转换为灰度,但不确定这是否有帮助。我是Julia的新手,希望您能提供帮助。您能提供一个输入示例和所需输出的规格说明吗? 通常,如果Image processing julia lang-将图像转换为黑白,image-processing,julia,Image Processing,Julia,我正在尝试使用阈值为0.5的Julia将图像转换为黑白。我已将图像转换为灰度,但不确定这是否有帮助。我是Julia的新手,希望您能提供帮助。您能提供一个输入示例和所需输出的规格说明吗? 通常,如果x是包含灰度图像的Float64矩阵,则Float64.(x.>0.5)将为您提供所需。例如: julia> img = rand(5,4) 5×4 Array{Float64,2}: 0.294821 0.719161 0.36838 0.0962881 0.262626 0.
x
是包含灰度图像的Float64
矩阵,则Float64.(x.>0.5)
将为您提供所需。例如:
julia> img = rand(5,4)
5×4 Array{Float64,2}:
0.294821 0.719161 0.36838 0.0962881
0.262626 0.0169155 0.7068 0.668797
0.450861 0.493318 0.0125666 0.783241
0.267667 0.652534 0.0860362 0.811446
0.586622 0.08407 0.316635 0.36396
julia> Float64.(img .> 0.5)
5×4 Array{Float64,2}:
0.0 1.0 0.0 0.0
0.0 0.0 1.0 1.0
0.0 0.0 0.0 1.0
0.0 1.0 0.0 1.0
1.0 0.0 0.0 0.0
如果您想明确指定目标值(上面的代码使用true
转换为1.0
和false
转换为0.0
),您可以编写:
julia> ifelse.(img .> 0.5, 1.0, 0.0)
5×4 Array{Float64,2}:
0.0 1.0 0.0 0.0
0.0 0.0 1.0 1.0
0.0 0.0 0.0 1.0
0.0 1.0 0.0 1.0
1.0 0.0 0.0 0.0
您也可以使用理解来实现此结果:
julia> Float64[v > 0.5 for v in img]
5×4 Array{Float64,2}:
0.0 1.0 0.0 0.0
0.0 0.0 1.0 1.0
0.0 0.0 0.0 1.0
0.0 1.0 0.0 1.0
1.0 0.0 0.0 0.0
julia> [ifelse(v > 0.5, 1.0, 0.0) for v in img]
5×4 Array{Float64,2}:
0.0 1.0 0.0 0.0
0.0 0.0 1.0 1.0
0.0 0.0 0.0 1.0
0.0 1.0 0.0 1.0
1.0 0.0 0.0 0.0
请尝试使用以下代码段:
using Images, ImageView;
function show_binary_image(img_path::String, threshold::Float16)
img_binary = load(img_path);
img_binary = (Gray.(img_binary) .> threshold);
imshow(img_binary);
end
show_binary_image("/path/to/image/file", convert(Float16, 0.5));