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
})
...
我正在使用 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
})
...