我正在寻找一种将Raw图像导入R的方法。
确实,有许多软件包允许将.bmp,.png,.jpeg或.tiff图像导入R(ImageMagick
,EBImage
,imager
,{{1} },bmp
,tiff
,TIFF
,pixmap
和许多其他..)但这些文件格式有转换(白平衡,对比度,饱和度......)和即使拍摄照片是标准化的,但物体具有不同的尺寸或颜色,照片也可能不同(在饱和度,亮度方面......)。 Raw图片没有出现这个问题。
我知道扩展名根据相机的品牌而有所不同,这使得事情变得复杂。
但我想以比.jpeg或.tiff更精确和相关的方式分析饱和度,亮度之间的差异。
尽管我进行了研究,但我阻止了第一步:原始图像输入..
有人已经取得了这个通行证吗?
是否存在导入此类文件的bash命令?
我不是要查看图片,而是要访问原始数据。
答案 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
的其他选项