Standard imaging operations, e.g. crop and contrast adjustment, but with ability to go back and forth through sequence of changes, with records being persistent. Optional Shiny interface. Useful to help with the research reproducibility problem, and as a teaching tool.
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("", verbose = FALSE) #Install packagebiocLite("EBImage", suppressUpdates=TRUE, suppressAutoUpdate=FALSE, ask = FALSE)
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,
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 ()],# via Wikimedia Commons> tiger <-shinyimg$new("")# '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