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.
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 # the image being used is titled 'A tiger in the water' # By Bob Jagendorf # [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], # via Wikimedia Commons > 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()  "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! # lastly, if we want to save the physical image > tiger$saveImage('tiger.jpg') # we can save it as either jpg, png, or tiff > tiger$saveImage('tiger.png') # if a user does not specify the name, the default is temp.jpeg > tiger$saveImage()
Download from CRAN:
Run these commands from within R.
# using our previous example of our shinyimg object tiger > runShiny(tiger)
./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