使用R将jpg转换为greyscale csv

convert jpg to greyscale csv using R

我有一个JPG图片的文件夹,我正在为一个格格比赛分类。我在python中看到过一些代码,我认为这些代码将在论坛上实现,但我想知道在r中是否可以实现这一点?我正在尝试将这个包含许多JPG图像的文件夹转换成具有显示每个像素灰度的数字的csv文件,类似于这里的手数字识别器http://www.kaggle.com/c/digit-recognizer。/

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


在这个链接中,有一些公式可以用来计算这个问题。raster包是一种方法。这基本上将RGB带转换为一个黑白带(它使其尺寸变小,我猜你想要什么)。

1
2
3
4
5
6
7
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包也有助于解决这个问题(不在起重机上,通过source安装它:

1
2
3
4
5
6
7
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")