Imaging package, with an emphasis on journaling, i.e. recording history of changes. Undo/redo operations, ability to display multiple versions (currently under construction), etc. The history is persistent, i.e. across sessions. Can be run from the R command line, or from a Shiny-based GUI.
You will need the following packages for the command-line interface to the package:
source("http://bioconductor.org/biocLite.R", verbose = FALSE) #Install package
biocLite("EBImage", suppressUpdates=TRUE, suppressAutoUpdate=FALSE, ask = FALSE)
GUI Installation: Install from CRAN.
install.packages(c('shiny','shinyjs'))
Having done this, you can install ShinyImage. For instance, download the .zip package available here and unpack it, creating a directory/folder ShinyImage-master. Then from a terminal window, run
R CMD build ShinyImage-master
R CMD INSTALL -l z ShinyImage_0.1.0.tar.gz
with z being the location you wish to install ShinyImg to (changing the version number as necessary).
Alternatively, ShinyImage can be installed using devtools. User’s working directory must be set to ShinyImage-master. From R,
> install.packages(c('devtools', 'roxygen2'))
> devtools::install()
Here we will perform several actions, both to illustrate some ShinyImage operations and also to show the journaling. All operations will use the R command line; examples of the GUI are given later in this document.
# load image, whether local file or from the Web
> tiger <-
shinyimg$new("https://upload.wikimedia.org/wikipedia/commons/1/1c/Tigerwater_edit2.jpg")
# 'tiger' is an object of class 'shinyimg', which in turn is a subclass
# of 'R6'
# set autodisplay on
# after first image modification,
# image will render and pop up in a new window
# or user can manually render image
> tiger$set_autodisplay()
# manually rendering image
> tiger$render()
# crop the image
> tiger$crop()
[1] "Select the two opposite corners of a rectangle on the plot."
# add brightness
> tiger$add_brightness()
# add contrast
> tiger$add_contrast()
# add gamma
> tiger$add_gamma()
# add blur
> tiger$add_blur()
# remove brightness
> tiger$remove_brightness()
# remove contrast
> tiger$remove_contrast()
# remove gamma
> tiger$remove_gamma()
# remove blur
> tiger$remove_blur()
# we have had nine actions, and can undo the last 8 of them
# we will undo the last five actions (remove blur and remove gamma)
# by calling undo five times
# undoes the removal of the blur
> tiger$undo()
# undoes the removal of gamma
> tiger$undo()
# undoes the removal of contrast
> tiger$undo()
#undoes the removal of brightness
> tiger$undo()
# undoes the adding of the blur
> tiger$undo()
# we can also redo the adding of the blur
> tiger$redo()
# we can also save the image to edit later on
> tiger$save("tiger-water.si")
# and later we can come back after a cold boot to do:
> tiger <- shinyload("tiger-water.si")
# if you want to revert to a previous saved state, you can also do:
> tiger$load("tiger-water.si")
# this will load the image back to the state it was in when you saved the image.
> tiger$undo() # not too late to undo changes made before the save!
Download from CRAN:
install.packages(c('shiny','shinyjs'))
Run these commands from within R.
> runShiny()
./configure --prefix=y --enable-shared=yes
where y is your desired installation directory for fftwtools, say /usr/local.
export C_INCLUDE_PATH=x/fftw-3.3.6-pl1/api export LD_RUN_PATH=y/lib export LIBRARY_PATH=y/lib
sudo apt-get install libtiff-dev
sudo apt-get install fftw-dev
sudo apt-get install fftw3 fftw3-dev pkg-config