An Image Processing Toolkit

Incorporates functions for image preprocessing, filtering and image recognition. The package takes advantage of 'RcppArmadillo' to speed up computationally intensive functions. The histogram of oriented gradients descriptor is a modification of the 'findHOGFeatures' function of the 'SimpleCV' computer vision platform, the average_hash(), dhash() and phash() functions are based on the 'ImageHash' python library. The Gabor Feature Extraction functions are based on 'Matlab' code of the paper, "CloudID: Trustworthy cloud-based and cross-enterprise biometric identification" by M. Haghighat, S. Zonouz, M. Abdel-Mottaleb, Expert Systems with Applications, vol. 42, no. 21, pp. 7905-7916, 2015, . The 'SLIC' and 'SLICO' superpixel algorithms were explained in detail in (i) "SLIC Superpixels Compared to State-of-the-art Superpixel Methods", Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sabine Suesstrunk, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 34, num. 11, p. 2274-2282, May 2012, and (ii) "SLIC Superpixels", Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sabine Suesstrunk, EPFL Technical Report no. 149300, June 2010.

The OpenImageR package is an image processing library. It includes functions for image preprocessing, filtering and image recognition. More details on the functionality of OpenImageR can be found in the package Documentation and Vignette.

To install the package from CRAN use,


and to download the latest version from Github use the install_github function of the devtools package,


Use the following link to report bugs/issues,


OpenImageR 1.1.1

  • I modified the rotate_nearest_bilinear Rcpp function in the utils.cpp file to fix the ASAN-gcc error.

OpenImageR 1.1.0

  • I fixed the ASAN-gcc error.
  • I commented 3 test cases for the Solaris OS, otherwise it gives an error (see the comments in the test-gabor.R tests file).
  • I updated the Vignette Gabor Feature extraction.

OpenImageR 1.0.9

I added the GaborFeatureExtract R6 class, which as the name suggests extracts Gabor features from images (I updated the documentation and Vignettes too)

OpenImageR 1.0.8

I added the DARMA_64BIT_WORD flag in the Makevars file to allow the package processing big datasets

OpenImageR 1.0.7

I removed the threads parameter from the Augmentation function as there is no significant improvement (in execution speed) between a threaded and a non-threaded version. I modified the OpenMP clauses of the .cpp files to address the ASAN errors.

OpenImageR 1.0.6

I fixed a bug in the translation_mat function of the utils.cpp source file ( and Moreover, I added the padded_value parameter in the translation and Augmentation R functions to allow the user to adjust the shifted values ( in case that shift_rows or shift_cols is not 0 ). The padded_value parameter can take either a numeric value or a numeric vector depending on the dimensions of the image. Previously, the shifted values were replaced by default with 0.

OpenImageR 1.0.5

I fixed a bug in the dhash function according to the Changelog of the imagehash python library. Moreover, I added a function to round float numbers in the image_hashing.cpp source file, otherwise by creating hash values using the bilinear interpolation method the returned values are incorrect.

OpenImageR 1.0.4

I modified the R script files to accept extension types similar to .tiff such as .tif, .TIFF or .TIF

OpenImageR 1.0.3

I modified the Augmentation function to correct an issue which occured due to the zca_comps parameter

OpenImageR 1.0.2

I did OpenMP optional for all cpp files due to the fact that the OSX OS does not currently support openMP ( r-devel-osx-x86_64-clang )

I removed the floor() function from the lines 45, 46 of the hog_features.cpp, because otherwise Solaris OS throws the following error:

  • error: call of overloaded ‘floor(int)’ is ambiguous

I can not fix the following error in the hog_features.cpp file for the r-oldrel-windows platform as it has either to do with the RcppArmadillo version or is GCC specific,

  • error: could not convert '{{-0x00000000000000001, 0, 1}, {-0x00000000000000002, 0, 2}, {-0x00000000000000001, 0, 1}}' from '' to 'arma::mat {aka arma::Mat}'

Platforms, which support newer versions of GCC (GCC >= 4.9.0) and a recent version of RcppArmadillo (>= 0.7) do not throw such an error.

OpenImageR 1.0.1

I modified the Makevars files, so that OpenImageR can be installed error-free in the following OS's,

  • r-devel-osx-x86_64-clang
  • r-patched-solaris-sparc
  • r-patched-solaris-x86
  • r-oldrel-windows-ix86+x86_64

OpenImageR 1.0.0

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.1.4 by Lampros Mouselimis, 16 days ago

Report a bug at

Browse source code at

Authors: Lampros Mouselimis [aut, cre] , Sight Machine [cph] (findHOGFeatures function of the SimpleCV computer vision platform) , Johannes Buchner [cph] (average_hash , dhash and phash functions of the ImageHash python library) , Mohammad Haghighat [cph] (Gabor Feature Extraction) , Radhakrishna Achanta [cph] (Author of the C++ code of the SLIC and SLICO algorithms (for commercial use please contact the author))

Documentation:   PDF Manual  

GPL-3 license

Imports Rcpp, shiny, jpeg, png, tiff, utils, R6

Suggests testthat, knitr, rmarkdown, grid, covr

Linking to Rcpp, RcppArmadillo

System requirements: The package requires a C++11 compiler.

Imported by CNVScope, SuperpixelImageSegmentation.

Suggested by ClusterR.

See at CRAN