我希望使用magick
软件包,因为它具有出色的图像处理功能。浏览here我似乎无法找到如何将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
读取,这将是一种过度杀伤)
我错过了什么?
答案 0 :(得分:6)
您也可以使用<div style="height:100%;position:relative">
<div style="??? background:tomato;">square (1:1)</div>
</div>
来读取矩阵。但请注意,惯例是在双精度的情况下缩放0到1之间的值。因此,您需要将image_read()
除以255.试试这个:
X
如果要将magick对象转换回数组:
img <- magick::image_read(X / 255) %>% magick::image_scale("500x400")
或者只是image_data(img, 'rgba')
也可以。