假设我有一个 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/

10-10 00:29
查看更多