【问题标题】:Not able to display actual grayscale image using EBImage package in R无法使用 R 中的 EBImage 包显示实际灰度图像
【发布时间】:2016-04-07 19:36:29
【问题描述】:

我是 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")

但是,我得到一个二值图像,即只有黑白像素。我在下面展示了它。我的数据不仅包含01。背景值为零,但具有实际图像图案的区域的值高于 1。如何使用灰度显示图像并使用此包中的功能?有人遇到过类似的问题吗?我也找不到指定渐变级别的参数。

【问题讨论】:

    标签: r image-processing grayscale r-package binary-image


    【解决方案1】:

    图像仅呈现为黑白的原因是因为display 函数需要 [0, 1] 范围内的值。大于 1 的值将被剪裁并有效地显示为 1(白色)。

    要正确可视化您的数据,您首先需要将像素强度值缩放到 [0, 1] 范围。这可以在normalize 函数的帮助下完成:

    image1 <- normalize(image1)
    display(image1, method = "raster")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-30
      相关资源
      最近更新 更多