R 如何在闪亮的应用程序中创建上载图像的堆栈
我下面有一个闪亮的应用程序,可以识别图像。我上传了下面的图片,它会显示出来,你会看到的。问题是我想在R 如何在闪亮的应用程序中创建上载图像的堆栈,r,shiny,R,Shiny,我下面有一个闪亮的应用程序,可以识别图像。我上传了下面的图片,它会显示出来,你会看到的。问题是我想在stack()函数中使用此文件的名称(“DJI_0104.jpg”),以便创建图像的堆栈。然后我绘制结果(纹理)。基本上,我正在寻找一种只使用上传图像名称的方法,就像R104()中那样,它可以工作。你可以找到.jpg 库(闪亮) 图书馆(base64enc) 图书馆(光栅) 图书馆(glcm) 选项(shinny.maxRequestSize=30*1024^2) ui您可以找到更多详细信息,但这
stack()
函数中使用此文件的名称(“DJI_0104.jpg”),以便创建图像的堆栈。然后我绘制结果(纹理)。基本上,我正在寻找一种只使用上传图像名称的方法,就像R104()中那样,它可以工作。你可以找到.jpg
库(闪亮)
图书馆(base64enc)
图书馆(光栅)
图书馆(glcm)
选项(shinny.maxRequestSize=30*1024^2)
ui您可以找到更多详细信息,但这里有一个解决方案:在base64()
反应式中,infle
是在fileInput()
的输出之后构建的,该输出包含4个字段:name
、size
、type
和datapath
(参见上面的链接)。
如下划线所示,使用infle$name
将使您的shinyApp正常工作
最好。我不明白,但如果您想要文件名,我想它在infle$name
中。所以我应该使用stack(infle$name)?R105
library(shiny)
library(base64enc)
library(raster)
library(glcm)
options(shiny.maxRequestSize = 30*1024^2)
ui <- fluidPage(
fileInput("upload", "Upload image", accept = "image/png"),
uiOutput("image"),
plotOutput("textures")
)
server <- function(input, output){
base64 <- reactive({
inFile <- input[["upload"]]
if(!is.null(inFile)){
dataURI(file = inFile$datapath, mime = "image/png")
}
})
output[["image"]] <- renderUI({
if(!is.null(base64())){
tags$div(
tags$img(src= base64(), width="100%"),
style = "width: 400px;"
)
}
})
#That does not work
R105 <- reactive({
stack(base64())
})
#That works
R104 <- reactive({
stack("DJI_0104.jpg")
})
textures <- reactive({
glcm(raster(R105(), layer=3))
})
output$textures<-renderPlot({
#Create a stack of the image
plot(textures())
})
}
shinyApp(ui, server)