包display
有一个Image
功能,可以显示imagematrix
个对象,但matrix
,array
或combine
是输入时,也可以显示(作为栅格)。
现在,当我尝试Image
多个图片时,只能合并imagematrix
个对象,因为我的初始图片是matrix
或combine
格式,不能使用此Image
功能,然后显示多个图像。
所以我的问题是:如何将矩阵转换为@EnableGlobalAuthentication
对象(EBImage)?
(如果您有另一个功能可以将多个矩阵显示为光栅图像,也会有所帮助。)
答案 0 :(得分:1)
TL; DR:使用Image()
构造函数将矩阵或数组转换为Image
个对象。
您可以在Image
访问者和imageData()
构造函数的帮助下轻松地在纯矩阵/数组和Image()
对象之间切换。将像素强度矩阵强制转换为Image
的另一种方法是使用as.Image()
。有关在单通道灰度图像上显示此方法的信息,请参阅以下示例。
library(EBImage)
## sample grayscale image
f <- system.file("images", "sample.png", package="EBImage")
x <- readImage(f)
## extract pixel intensity matrix from the Image object
m <- imageData(x)
## convert matrix to Image
img <- Image(m)
## combine and display the result
img2 <- combine(img, img)
display(img2, method="raster", all=TRUE)
如果您的像素强度数组包含红色,绿色和蓝色分量的单独颜色通道,您还需要为colormode=Color
指定Image()
参数。
## get sample pixel intensity RGB array
x <- readImage(system.file("images", "sample-color.png", package="EBImage"))
a <- imageData(x)
## convert back to Image
img <- Image(a, colormode=Color)
## combine and display the result
img2 <- combine(img, img)
display(img2, method="raster", all=TRUE)
如果您将颜色通道作为单独的矩阵,则可以在Image
的帮助下将它们组合成颜色rgbImage()
。
## matrices corresponding to red, green and blue color channels
r <- a[,,1]
g <- a[,,2]
b <- a[,,3]
## construct an color Image object
img <- rgbImage(r, g, b)