我有一个JPG图像的文件夹,我试图为一个讨人喜欢的比赛进行分类。我已经看到Python中的一些代码,我认为会在论坛上实现这一点,但是想知道是否可以在R中完成?我试图将许多jpg图像的此文件夹转换为csv文件,其中数字显示每个像素的灰度,类似于此处的手数字识别器http://www.kaggle.com/c/digit-recognizer/
所以基本上是jpg - > R中的.csv,显示用于分类的每个像素的灰度数。我想在其上放置一个随机森林或线性模型。
答案 0 :(得分:8)
有一些关于如何在此link执行此操作的公式。 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")