R中的图像处理/颜色检测:我应该使用哪个库?

时间:2011-03-30 16:53:05

标签: image r image-processing colors computer-vision

我正在进行一些图像处理,虽然我认为我对我的方法非常了解,但我没有太多运气找到我应该使用哪些库来专门用于R。

我有一个类似图像的大型数据库,每个图像在白色背景上都有任意数量的各种大小的彩色斑点。我最终希望找到红色,绿色和蓝色值,并计算特定日期所有图像中所有彩色像素的平均RGB亮度。这意味着能够以某种方式区分彩色像素与近白色像素并存储它们的值。

我认为我想要做的是为许多测试图像创建color histograms,查看直方图的峰值以确定构成“白色”或“彩色”像素的阈值,然后循环每个图像中的像素找到与我的阈值匹配的彩色像素(我知道如何在图像中读取并获得像素RGB值)。

在我的首选语言Python中,听起来我使用PIL中Image模块的直方图方法,但我不知道R等价物(这可能只是我谷歌中的一个弱点;搜索结果主要是“R”,而不是语言。我确实找到了这个:R: Histogram,但我不知道它是否相关/如何使用它。)

如果信号/图像处理领域可能有更好的方法,我也很乐意听到。

TL; DR:如何使用R来制作图像的颜色直方图,或以其他方式选择某些颜色值的像素?

(相关但非特定于R:How to calculate the amount of "green spots" in an image?

2 个答案:

答案 0 :(得分:5)

还有一个到ImageJ的R接口(我曾用过一次,它是用Java编写的优秀的图像分类软件)Bio7 package

其他链接以获取更多信息:

http://www.r-bloggers.com/image-data-and-classification-with-r/

http://www.r-bloggers.com/plots-in-r-and-the-imagej-visualization/

http://www.r-bloggers.com/image-classification-limits-part-2/

答案 1 :(得分:4)

CRAN上有一个出色的'rimage'包。

试试这个:

library(rimage)
x <- read.jpeg(system.file("data", "cat.jpg", package="rimage"))
par(mfrow=c(1,3))
hist(x[,,1])
hist(x[,,2])
hist(x[,,3])