5

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

  • 没有as.magick功能
  • as.matrix功能不起作用

但我想要类似的东西:

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,这将是一个矫枉过正)

我错过了什么?

4

1 回答 1

8

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

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

如果要将魔术对象转换回数组:

image_data(img, 'rgba')

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

于 2017-12-03T11:24:00.113 回答