R: Convert/Read 3D 矩阵转换为 'magick' 对象,反之亦然

R: Convert/Read 3D Matrix into a 'magick' object and vice versa

我想使用 magick 软件包,因为它具有出色的图像处理功能。浏览 here 我似乎无法找到如何将 3D 矩阵(宽度 x 高度 x 通道)转换为我可以进一步操作的 magick 对象,反之亦然。

但我想要这样的东西:

height <- 100
width <- 80
X <- array(runif(height * width * 3, min = 0, max = 255), c(height, width, 3))

magick::as.magick(X) %>% magick::image_scale("500x400")

(显然我可以将矩阵作为图像写入磁盘,然后用 magick::image_read 读取它,这太过分了)

我错过了什么?

您也可以使用 image_read() 来读取矩阵。但是请注意,在双精度的情况下,约定是在 0 和 1 之间缩放值。因此,您需要将 X 除以 255。试试这个:

img <- magick::image_read(X / 255) %>% magick::image_scale("500x400")

如果您想将魔法对象转换回数组:

image_data(img, 'rgba')

或者只是 img[[1]] 也可以。