在 R 中导入原始图像

Posted

技术标签:

【中文标题】在 R 中导入原始图像【英文标题】:Import Raw image in R 【发布时间】:2018-05-16 00:57:25 【问题描述】:

我正在寻找一种将原始图像导入 R 的方法。

确实,有许多软件包允许将 .bmp、.png、.jpeg 或 .tiff 图像导入 R(ImageMagickEBImageimagerbmptiff、@987654326 @、pixmapMomocs 和许多其他文件格式。拍照是标准化的,但物体有不同的大小或颜色。 Raw图片没有这个问题。

我知道扩展名因相机品牌而异,这使事情变得复杂。

但我想以比 .jpeg 或 .tiff 更精确和相关的方式分析饱和度、亮度之间的差异。

尽管我进行了研究,但我还是阻止了第一步:原始图像导入..

有人已经通过了这个通行证吗? 是否存在 bash 命令来导入这种文件? 我不是要看图片,而是要访问原始数据。

【问题讨论】:

不确定要对数据做什么,但 ImageMagick 可以导入原始数据。我认为 Rmagick 也可以做到。例如:convert -size 512x512 -depth 8 image.rgb image.png。 ImageMagick 使用 dcraw 或 ufraw 作为委托来完成工作。 【参考方案1】:

您可以使用hexView 包中的readRaw() 函数:

library(hexView)
raw_image <- readRaw("image_path")

然后数据在raw_image$fileRaw 中。它被存储为“raw”类的向量。

你可以简单地把它变成一个矩阵:

image_matrix <- matrix(raw_image$fileRaw, nrow = image_height, ncol = image_width, byrow = TRUE)

它应该重新创建原始文件中的内容。

注意:image_height 和 image_width 将以像素为单位。

现在您可以通过as.raster 轻松绘制图像:

plot(as.raster(image_matrix))

【讨论】:

【参考方案2】:

请注意,如果您不想添加包依赖项并且需要读入原始数据,readBin 就足够了。

例子:

raw_data <- readBin("test.png", "raw")
raw_data[1:10]
# [1] 89 00 00 00 00 00 00 00 00 00

您可以使用?readBin 探索readBin 的其他选项

【讨论】:

以上是关于在 R 中导入原始图像的主要内容,如果未能解决你的问题,请参考以下文章

无法在 SPM 中导入 dicom 图像

如何在 R 中导入的 jpeg 上绘制数据?

在 xbap 中导入带有图像的 RTF

在 Typescript 中导入 React 图像

在 TensorFlow 中导入巨大的非图像数据集

使用 Webpack 4 和 react js 在 scss 中导入字体或图像文件时出错