使用R将jpg转换为greyscale csv

bar*_*ker 7 csv jpeg r grayscale kaggle

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

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

Mik*_*han 8

有一些公式可以在这个链接上执行此操作.该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
Run Code Online (Sandbox Code Playgroud)

我认为该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")
Run Code Online (Sandbox Code Playgroud)