亲爱的 stackexchange 世界。我想问一个问题,关于我在用 R 编写的一个小程序时遇到的问题。我编写了一个代码,可以让您导入图像并使用EBImage()
库对其进行操作。我使用gWidgets()
库,因此用户可以进行动态操作。代码是这样的:
library("EBImage")
library("gWidgets2")
setwd(choose.dir())
imageinput<-file.choose()
image<-readImage(imageinput)
##defininig the color mode
colorimage<-c(Greymode="gray",RGBmode="rgb")
updateImage <-function (h,...) {
image1<-((svalue(brightness)+image*svalue(contrast))^(svalue(gamma)))
image2<-channel(image1,colorimage[svalue(colormode)])
display(image2)
}
colormode <- gradio(names(colorimage), horizontal=FALSE,handler=updateImage)
brightness<-gslider(from=-1,to=1,by=.1, value=0,handler=updateImage)
contrast <- gslider(from=0,to=10,by=.1, value=1,handler=updateImage)
gamma <- gslider(from=0,to=10,by=0.1, value=1,handler=updateImage)
window <- gwindow("Image Editing")
BigGroup <- ggroup(cont=window)
group <- ggroup(horizontal=FALSE, container=BigGroup)
tmp <- gframe("Colormode", container=group)
add(tmp, colormode)
tmp <- gframe("Brightness", container=group)
add(tmp, brightness, expand=TRUE)
tmp <- gframe("Contrast", container=group)
add(tmp, contrast, expand=TRUE)
tmp <- gframe("Gamma", container=group)
add(tmp, gamma, expand=TRUE)
但是我面临一个问题(正如我在上一个问题中发布的那样,但我解决了一些问题,我认为重新发布一个具有更好代码并解决了许多问题的新问题会很好)。问题是我无法在 gWidgets GUI 中显示我构建的图像以及它是如何动态编辑的。虽然有一种方法可以查看图像display()
EBImage 包的功能查看图像的方法,但它不是我想要的,因为它显示在 Web 浏览器中而不是 GUI 中。
如果有人知道我能做些什么来解决这个问题,我将不胜感激。