8

我有一个 JPG 图像文件夹,我正在尝试为 kaggle 比赛进行分类。我在 Python 中看到了一些我认为可以在论坛上完成此操作的代码,但想知道是否可以在 R 中执行此操作?我正在尝试将这个包含许多 jpg 图像的文件夹转换为 csv 文件,其中的数字显示每个像素的灰度,类似于此处的手形数字识别器http://www.kaggle.com/c/digit-recognizer/

所以基本上是 R 中的 jpg -> .csv,显示用于分类的每个像素的灰度数字。我想在上面放一个随机森林或线性模型。

4

1 回答 1

9

在这个链接上有一些关于如何做到这一点的公式。该raster软件包是一种方法。这基本上将 RGB 波段转换为一个黑白波段(它使它的尺寸更小,我猜你想要什么。)

library(raster)
color.image <- brick("yourjpg.jpg")

# Luminosity method for converting to greyscale
# Find more here http://www.johndcook.com/blog/2009/08/24/algorithms-convert-color-grayscale/
color.values <- getValues(color.image)
bw.values <- color.values[,1]*0.21 + color.values[,1]*0.72 + color.values[,1]*0.07

我认为该EBImage软件包也可以帮助解决此问题(不在 CRAN 上,通过以下方式安装source

source("http://bioconductor.org/biocLite.R")
biocLite("EBImage")
library(EBImage)

color.image <- readImage("yourjpg.jpg")
bw.image <- channel(color.image,"gray")
writeImage(bw.image,file="bw.png")
于 2014-12-15T19:49:49.023 回答