如何使用R从图像中提取RGB DN?

时间:2017-09-12 02:27:49

标签: r image rgb fisheye

enter image description here

这是来自鱼眼镜头相机的样本图像。我想从这张图片中提取数字,以便我进一步研究。

如何使用R?

从图像中提取RGB DN

1 个答案:

答案 0 :(得分:0)

最佳方法很可能会根据您的总体目标而有所不同。为了帮助您入门,您可以尝试使用 EBImage 程序包提供的功能,这是一个通用的图像处理和分析工具箱,可用于生物图像分析。它提供了将图像加载到R中的功能,并执行各种图像转换和过滤。下面的示例说明了如何加载样本图像并绘制直方图。有关package vignette的详细信息以及所提供功能的概述,请参阅image data representation

# package installation form Biocondcutor
# need to run this only once
source("https://bioconductor.org/biocLite.R")
biocLite("EBImage")

library("EBImage")
img <- readImage("https://i.stack.imgur.com/JTSWO.jpg")

## Image 
##   colorMode    : Color 
##   storage.mode : double 
##   dim          : 1500 1001 3 
##   frames.total : 3 
##   frames.render: 1 
## 
## imageData(object)[1:5,1:6,1]
##            [,1]       [,2]       [,3]       [,4]       [,5]       [,6]
## [1,] 0.05098039 0.09019608 0.04705882 0.00000000 0.02352941 0.02745098
## [2,] 0.06274510 0.09411765 0.05490196 0.01176471 0.02745098 0.02745098
## [3,] 0.06274510 0.08235294 0.05098039 0.01960784 0.02745098 0.02352941
## [4,] 0.04705882 0.05098039 0.03529412 0.01960784 0.01960784 0.01960784
## [5,] 0.02352941 0.01176471 0.01176471 0.01960784 0.01176471 0.01176471

hist(img)

enter image description here

例如,您可以通过mean功能在第3个图像维度上轻松计算每个颜色通道的apply像素强度值。

apply(img, 3, mean)

## [1] 0.2216768 0.2592197 0.1629841

这些值分别对应于红色,绿色和蓝色通道中的平均像素值。像素值通常标准化为[0,1]范围,因此这些数字代表图像中相应颜色的分数。请注意,如果您有兴趣可靠地比较在同一地点但在不同时间点拍摄的图像,则应确保使用相同的白平衡固定值拍摄。