我目前正在研究R中的面部识别代码。我正在使用att数据库中的400张图像: http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html
我已经阅读了所有400张图片(请参阅下面的代码)。 我想知道如何将这些图像的像素值提取到像素值矩阵中以用于面部识别。
我的代码很远:
rm(list = ls())
library(imager)
library(magick)
library(png)
Load_Image <- function(fn) {
img <- image_read(fn)
img_bmp <- img[[1]][1,,]
img_dims <- attributes(img_bmp)$dim
imga <- as.cimg(as.integer(img_bmp),x=img_dims[1],y=img_dims[2])
list(imga,img_dims)
}
A <- list.files(path="./orl_faces/")
B <- A[grep(pattern="^s",A)]
C <- paste("./orl_faces/",B,"/",sep="")
Clen <- length(C)
ImgDB <- data.frame(person=character(),imgfile=character(),imgfile_fq=character(),
xdim=integer(),ydim=integer(),bmpindx=integer())
Imgs <- vector("list",400)
bmpindx <- 1
for(i in 1:Clen) {
img_files <- list.files(path=C[i],full.names=FALSE)
img_files_full <- paste(C[i],img_files,sep="")
for(j in (1:length(img_files))) {
Img <- Load_Image(img_files_full[j])
ImgDB <- rbind(ImgDB,data.frame(person=B[i],imgfile=img_files[j],
imgfile_fq=img_files_full[j],xdim=Img[[2]][[1]],
ydim = Img[[2]][[2]],bmpindx = bmpindx))
Imgs[[bmpindx]] <- Img[[1]]
bmpindx <- bmpindx + 1
}
}
save(ImgDB,Imgs,file="orl_faces.Rdata")