嗨:有什么方法可以将任何照片(最好是jpg格式)转换为.rda文件,以便我可以进行PCA分析吗?我的目标是将照片转换为rda。从pca中取出前几个组件,对另一个照片文件进行类似操作,以便我可以比较它们。
答案 0 :(得分:3)
为什么.rda
?您可以将其导入R对象,例如matrix
并在其上运行PCA。
library(jpeg)
download.file("http://art.ngfiles.com/images/71000/71640_rozas_biolove.jpg", destfile = "biolove.jpg")
xy <- t(readJPEG("biolove.jpg")) # needs more rows than columns, so t() is used here
xyp <- princomp(xy)
summary(xyp)
这个例子将更加永久。已经讨论了转换回原始图像here(也请回答问题评论)。
xy <- readJPEG(system.file("img", "Rlogo.jpg", package="jpeg"))
image(xy[,, 1])
pca <- princomp(t(xy[,, 1]))
fig <- (pca$scores %*% t(pca$loadings))
image(fig)
pca2 <- prcomp(t(xy[,, 1]), center = TRUE, scale = FALSE)
image(pca2$x %*% t(pca2$rotation))