Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing julia lang-将图像转换为黑白_Image Processing_Julia - Fatal编程技术网

Image processing julia lang-将图像转换为黑白

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.

我正在尝试使用阈值为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.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));