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)