上传多张人脸图像(5-10 张人脸图像,相同尺寸),更改为矩阵并在 R shiny 中从头开始执行 PCA
Uploading multiple images of faces (5-10 face images, same dimensions), change to matrix and perform PCA from scratch in R shiny
请帮忙。我是编程新手,有点困惑。
我需要上传 5 -10 张图片并从头开始对它们执行 PCA。但是我的第二个选项卡的绘图输出没有呈现 prop table 。 ** 所有图像在第一个选项卡上显示良好**,问题出现在之后的过程中。我很欣赏关于如何使用 Rshiny 的一些清晰度,我觉得我缺少一些基本的东西。
library(shiny)
library(EBImage)
#ui
ui <- fluidPage(
titlePanel("Eigenfaces"),
sidebarLayout(
sidebarPanel (
fileInput("images","Upload images", multiple = T, accept = c('image/png',"image/jpeg"))
),
mainPanel(
tabsetPanel(
tabPanel('Images for PCA', plotOutput("image")),
tabPanel('Matrix', plotOutput("matrix"))
)
)
))
server <- function(input, output) {
img <- reactive ({
f<- input$images
if(is.null(f))
return(NULL)
readImage(f$datapath)
})
output$image <- renderPlot({
req(img())
plot(img(), all = TRUE)
})
output$matrix <- renderPlot({
req(img())
image_matrix <-do.call('cbind',lapply(img(),as.numeric))
#covaraince matrix
im <-scale(image_matrix, center = TRUE)
images <- cov(im)
#eigen computation
eigen_comp<-eigen(images)
#eigen vectors
eigen_vec <-eigen_comp$vectors
#eigen values
eigen_values <-eigen_comp$values
#proportion of eigen values
y = round(prop.table(eigen_values),3)
plot(y, type ="b")
})
}
# Run the application
shinyApp(ui = ui, server = server)
使用 as.list 功能,我能够将图像引入并获取绘图
matrices <- reactive ({
req(img)
if(is.null(img()))
return(NULL)
f<- input$images
faces <- as.list(f$datapath)
image_list= lapply(faces,readImage)
image_matrix <-do.call('cbind',lapply(image_list,as.numeric))
y <-scale(image_matrix, center= TRUE)
})
faces for PCA
Variance plot
请帮忙。我是编程新手,有点困惑。
我需要上传 5 -10 张图片并从头开始对它们执行 PCA。但是我的第二个选项卡的绘图输出没有呈现 prop table 。 ** 所有图像在第一个选项卡上显示良好**,问题出现在之后的过程中。我很欣赏关于如何使用 Rshiny 的一些清晰度,我觉得我缺少一些基本的东西。
library(shiny)
library(EBImage)
#ui
ui <- fluidPage(
titlePanel("Eigenfaces"),
sidebarLayout(
sidebarPanel (
fileInput("images","Upload images", multiple = T, accept = c('image/png',"image/jpeg"))
),
mainPanel(
tabsetPanel(
tabPanel('Images for PCA', plotOutput("image")),
tabPanel('Matrix', plotOutput("matrix"))
)
)
))
server <- function(input, output) {
img <- reactive ({
f<- input$images
if(is.null(f))
return(NULL)
readImage(f$datapath)
})
output$image <- renderPlot({
req(img())
plot(img(), all = TRUE)
})
output$matrix <- renderPlot({
req(img())
image_matrix <-do.call('cbind',lapply(img(),as.numeric))
#covaraince matrix
im <-scale(image_matrix, center = TRUE)
images <- cov(im)
#eigen computation
eigen_comp<-eigen(images)
#eigen vectors
eigen_vec <-eigen_comp$vectors
#eigen values
eigen_values <-eigen_comp$values
#proportion of eigen values
y = round(prop.table(eigen_values),3)
plot(y, type ="b")
})
}
# Run the application
shinyApp(ui = ui, server = server)
使用 as.list 功能,我能够将图像引入并获取绘图
matrices <- reactive ({
req(img)
if(is.null(img()))
return(NULL)
f<- input$images
faces <- as.list(f$datapath)
image_list= lapply(faces,readImage)
image_matrix <-do.call('cbind',lapply(image_list,as.numeric))
y <-scale(image_matrix, center= TRUE)
})
faces for PCA
Variance plot