EBImage 包的显示功能在 shinyapps.io 中不显示交互式图像

Display function of EBImage package do not show interactive image in shinyapps.io

我正在使用 R 和 EBImage 包编写一个用于图像分析的闪亮应用程序。闪亮的应用 运行 在本地成功。经过一些尝试,我想通过shinyapps.io平台访问应用程序。

在 shinyapps.io 中,应用渲染图像(静态)显示正确,但交互式图像显示不正确。它仍然是空白的。

¿有想法吗?

谢谢

这是代码:

library("shiny")
library("EBImage")

ui <- fluidPage(

# Application title
titlePanel("Image display"),

# Sidebar with a select input for the image
sidebarLayout(
   sidebarPanel(
     fileInput("image", "Select image")
),

# Show a plot of the generated distribution
mainPanel(
  tabsetPanel(
    tabPanel("Static raster", plotOutput("raster")),
    tabPanel("Interactive browser", displayOutput("widget"))
  )
)
)

)

server <- function(input, output) {

img <- reactive({
f <- input$image
if (is.null(f))
  return(NULL)        
readImage(f$datapath)
})

output$widget <- renderDisplay({
req(img())
display(img())
})

output$raster <- renderPlot({
req(img())
plot(img(), all=FALSE)
})

}

# Run the application
shinyApp(ui = ui, server = server)

我也偶然发现了这个问题。我认为这是因为显示功能被设计为在交互式会话中使用。

修复只是将方法参数添加到显示调用中。所以你的代码应该是:

...

output$widget <- renderDisplay({
  req(img())
  display(img(), method = 'browser') # <- this should make the trick
})

...