我有M
个N
乘以3个浮点数的数组,我想把它解释为图像的HSV通道。我想生成并导出图像。
根据功能文档,
colorim(A, [colorspace])
从AbstractArray创建一个二维彩色图像,自动检测哪个 第一个或最后一个维度对颜色进行编码并在两者之间进行选择 "水平 - "和#34;垂直专业"因此。 colorspace默认为 " RGB"但也可以是例如"实验室"或" HSV"。
我首先测试了RGB情况:
using Images
imwrite(colorim(rand(Float64, 200, 200, 3), "RGB"), "Image.PNG")
产生以下内容:
然而,当我更换" RGB"用" HSV"根据文档,我收到一条错误消息。
将数组解释并导出为HSV数据的正确语法是什么?
答案 0 :(得分:5)
using Images, Color
B = permutedims(A, [3,1,2]) # put color first
C = reinterpret(HSV{Float64}, B)
答案 1 :(得分:1)
Array{HSV{Float64}, 2}
将数据转换为reinterpret
。缺少的部分是,imwrite
似乎与使用HSV
元素的数组完美匹配,并且使用Array{RGB{Float64}, 2}
转换为convert
是必要的,正如Tim在A = ones(Float64, 3, 200, 200);
A[1, :, :] = 180.0;
B = reinterpret(HSV{Float64}, A);
C = convert(Array{RGB{Float64}}, B);
imwrite(C, "test.png")
所指出的那样。 {3}}
把这一切放在一起:
{{1}}
给