无法使用 R 中的 EBImage 包显示实际的灰度图像
Not able to display actual grayscale image using EBImage package in R
我是 R 中图像处理的新手。首先,我为此使用 EBImage
R 包。我有一个 260 by 134
Matrix
,我使用
将其转换为图像
> image1 <- as.Image(matrix1)
而且,这里是图像对象摘要
> image1
colorMode : Grayscale
storage.mode : double
dim : 260 134
frames.total : 1
frames.render: 1
imageData(object)[1:5,1:6]
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 0 0 0 0 0 0
[2,] 0 0 0 0 0 0
[3,] 0 0 0 0 0 0
[4,] 0 0 0 0 0 0
[5,] 0 0 0 0 0 0
image
对象中特定单元格的大于零的值如下所示:
> imageData(image1)[9,2]
[1] 3686.308
然后我使用 EBImage
包中的 display
函数来查看从矩阵数据构建的图像。
> display(image1, method = "raster")
但是,我得到的是二值图像,即黑白像素。我在下面展示了它。我的数据不仅仅包含 0
和 1
。背景值为零,但具有实际图像图案的区域的值高于 1。如何使用灰度显示图像并使用此包中的函数?有人遇到过类似的问题吗?我也找不到指定渐变级别的参数。
图像仅呈现为黑白的原因是因为 display
函数需要 [0, 1] 范围内的值。高于 1 的值将被剪裁并有效显示为 1(白色)。
要正确可视化您的数据,您首先需要将像素强度值缩放到 [0, 1] 范围内。这可以在 normalize
函数的帮助下完成:
image1 <- normalize(image1)
display(image1, method = "raster")
我是 R 中图像处理的新手。首先,我为此使用 EBImage
R 包。我有一个 260 by 134
Matrix
,我使用
> image1 <- as.Image(matrix1)
而且,这里是图像对象摘要
> image1
colorMode : Grayscale
storage.mode : double
dim : 260 134
frames.total : 1
frames.render: 1
imageData(object)[1:5,1:6]
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 0 0 0 0 0 0
[2,] 0 0 0 0 0 0
[3,] 0 0 0 0 0 0
[4,] 0 0 0 0 0 0
[5,] 0 0 0 0 0 0
image
对象中特定单元格的大于零的值如下所示:
> imageData(image1)[9,2]
[1] 3686.308
然后我使用 EBImage
包中的 display
函数来查看从矩阵数据构建的图像。
> display(image1, method = "raster")
但是,我得到的是二值图像,即黑白像素。我在下面展示了它。我的数据不仅仅包含 0
和 1
。背景值为零,但具有实际图像图案的区域的值高于 1。如何使用灰度显示图像并使用此包中的函数?有人遇到过类似的问题吗?我也找不到指定渐变级别的参数。
图像仅呈现为黑白的原因是因为 display
函数需要 [0, 1] 范围内的值。高于 1 的值将被剪裁并有效显示为 1(白色)。
要正确可视化您的数据,您首先需要将像素强度值缩放到 [0, 1] 范围内。这可以在 normalize
函数的帮助下完成:
image1 <- normalize(image1)
display(image1, method = "raster")