在R

时间:2018-05-16 00:57:26

标签: r image image-processing import

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

确实,有许多软件包允许将.bmp,.png,.jpeg或.tiff图像导入R(ImageMagickEBImageimager,{{1} },bmptiffTIFFpixmap和许多其他..)但这些文件格式有转换(白平衡,对比度,饱和度......)和即使拍摄照片是标准化的,但物体具有不同的尺寸或颜色,照片也可能不同(在饱和度,亮度方面......)。 Raw图片没有出现这个问题。

我知道扩展名根据相机的品牌而有所不同,这使得事情变得复杂。

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

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

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

2 个答案:

答案 0 :(得分:2)

您可以使用readRaw()包中的hexView功能:

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))

答案 1 :(得分:1)

请注意,如果您不想添加程序包依赖性,并且仅需要 读取原始数据,则readBin就足够了。

示例:

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

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