假设我有一个 m
-by- n
-by- 3
Uint8
数组,它表示一个图像,其中假定 RGB 颜色空间。我想使用 Images
包将其导出为每像素 24 位的 PNG 图像。我怎样才能做到这一点?
我天真地尝试将 imwrite
应用于随机生成的原始数组,如下所示:
imwrite(rand(Uint8,300,300,3),"test.png")
但是,这给出了一个错误,指出“mapinfo 没有方法 mapinfo...”。
同样,使用
imwrite(rand(Float32,300,300,3),"test.png")
给出了一个错误,说它不能推断颜色空间,我应该使用
AbstractImage
类型来代替。因此,假设 Images
-by- m
-by- n
数组自动是 RGB 图像(3
文档引用了由于 3D 和 4D 图像类型的存在而导致的复杂性作为不自动推断这一点的原因),大概 Images
包不舒服)。如何将数字数组导出为图像?可以直接完成,还是需要为数组创建包装器?
最佳答案
更新 imwrite
(和 imread
)自 Images 包的 0.5 版(2015 年 10 月)以来已被弃用。它们被 save
(和 load
)取代。
原始答案:
体重:
imwrite(grayim(rand(300,300)),"test.png")
颜色:
imwrite(convert(Image,rand(300,300,3)),"test.png")
为我工作(我有 Julia v0.4 和 Images.jl v0.4.0)
关于arrays - 使用 Julia 中的图像导出图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25706309/