Cstira::filter::AdaptiveBilateralFilter | Computes adaptive bilateral filter as described in reference Bibtex reference: article{ zhang08adaptive, author = {Zhang, B. and Allebach, J. P.}, title = {Adaptive Bilateral Filter for Sharpness Enhancement and Noise Removal}, journal = {IEEE Trans. Image Processing}, volume = {17}, number = {5}, pages = {664–678} year = {2008} } |
Cstira::contrastenhance::AdaptiveEnhanceLuong | Adaptive contrast enhancement accoring to method of Hiep Luong The implementation is based on the text of his PhD thesis "Advanced Image and Video Resolution Enhancement Techniques", 2008, Ghent University, TELIN-IPI, page 57 and following |
Cstira::contrastenhance::AdaptiveHistogramEqualizer | Class for adaptive histogram equalization like in https://en.wikipedia.org/wiki/Adaptive_histogram_equalization |
Cstira::diffusion::AnisotropicDiffusion | A class to compute anisotropic diffusion for more info, see http://www.cs.sfu.ca/~stella/papers/blairthesis/main/node22.html |
Cstira::filter::AnisotropicGaussian | |
Cstira::imagedata::ArrayGrid< T > | A class to contain a regular grid of integer or float numbers, structs and even more complex objects |
Cstira::imagedata::ArrayGrid< bool > | |
Cstira::imagedata::ArrayGrid< double > | |
Cstira::imagedata::ArrayGrid< histogram::stira::histogram::FloatHistogram * > | |
Cstira::imagedata::ArrayGrid< int > | |
Cstira::imagedata::ArrayGrid< std::complex< double > > | |
Cstira::imagedata::ArrayGrid< stira::imagedata::LocalOrientation * > | |
Cstira::imagedata::ArrayGridTools< T > | A class with operations to perform on a regular grid |
Cstira::steerable::BasicFilterKernels | A container class to store taps for steerable filters G2 and H2 by Freeman and Adelson |
►Cbinary_function | |
CRandom::dSquared | |
Cstira::filter::blockMatch | Structure to compare image blocks We use the coordinates of the center of the candidate block and its Euclidean intensity distance with a given reference block. This distance is the summed squared intensity difference of two blocks |
Cstira::degradationestimation::BlurEstimator | A class to estimate blur by searching a range of blur values and selecting the one with the best gradient kurtosis References: - "Blur Identification based on Kurtosis Minimization". D. Li, R. Mersereau and S. Simsk in IEEE ICIP2005 |
Cstira::degradationestimation::BlurEstimatorHu | A class to estimate blur using method of Hu and de Haan References: - "Low Cost Robust Blur estimator". H. Hu and G. De Haan in IEEE ICIP 2006, Oct. 8-11, 2006, Atlanta (GA), pp. 617-620 |
Cstira::imageanalysis::CannyEdgeDetector | Canny edge detector inspired on http://en.wikipedia.org/wiki/Canny_edge_detector ftp://figment.csee.usf.edu/pub/Edge_Comparison/source_code http://www.pages.drexel.edu/~nk752/cannyTut2.html http://www.cvmt.dk/education/teaching/f09/VGIS8/AIP/canny_09gr820.pdf |
CcartesianCoord | |
Cstira::imagetools::ChromaticAdaptation | A class for color adaptation Chromatic adaptation is the estimation of the representation of an object under a different light source than the one in which it was recorded |
Cstira::common::clusterEntry | |
Cstira::common::ClusteringLearning | Class for 2D point cloud analysis Uses OpenCV's functionalities |
Cstira::imagedata::cmyk_t | Representation of a single CMYK color |
Cstira::imagetools::ColorBalancer | Ref: http://scien.stanford.edu/class/psych221/projects/00/trek/ |
Cstira::imagedata::ColorConstants | Usefull constants related to color and color spaces * References: reference white points: http://www.digitalcolour.org/toolbox.htm Illuminants: Danny Pascale. "A Review of RGB color spaces". (Babel Color). http://www.babelcolor.com/download/A review of RGB color spaces.pdf |
Cstira::filter::ColorLookupTable | Colour lookup table to assign colours to the 4096 labels occuring in LBP's with a 12 point neighborhood |
Cstira::imagedata::ColorValue | Struct that represents the color value triplet and an identifier |
Cstira::imagedata::compare_neighbor_entry_t | |
Cstira::imageanalysis::CompareCurvesInImage | Compares two gray value images in which mono-colored curves are drawn |
Cstira::degradationestimation::CompareSmoothSharpDijk | Class to compare effects of sharpening and filtering using joint histograms of gradients Reference: "A new measure for the effect of sharpening and smoothing filters on images", J. Dijk, D. de Ridder, P.W. Verbeek, J. Walraven, I.T. Young, and L.J. van Vliet in: B.K. Ersboll, P. Johansen (eds.), SCIA'99, Proc. 11th Scandinavian Conference on Image Analysis (Kangerlussuaq, Greenland, June 7-11), Pattern Recognition Society of Denmark, Lyngby, 1999, 213-220. WORK IN PROGRESS |
Cstira::steerable::ComputeOrientation | A class to compute local orientation in an image |
Cstira::steerable::ComputeSteerableFilteredImages | A class to compute the basic steerable filtered images according to Freeman and Adelson |
Cstira::imageanalysis::ContourTracing | Contour tracing class Traces contours that go mainly horizontally |
Cstira::common::Curve | Class that contains a curve. For us, a curve is a list of 8-neighborhood connected pixels in an stl vector |
Cstira::histogram::CurveSegment | |
Cstira::common::CurveSet | Class to manage a set of curves |
Cstira::common::dataRow | Help struct to create data interpolation |
►Cstira::deconvolve::DeconvolveMaster | Parent class for computing deconvolutions |
►Cstira::deconvolve::IterativeDeconvolve | Parent class for computing iterative deconvolution schemes |
Cstira::deconvolve::GNCDeconvolve | Child class for computing GNC-based image deconvolution GNC stands for Graduated Non Convexity, related stuff to markov random fields |
Cstira::deconvolve::RichardsonLucyDeconvolve | Child class for computing Richardson-Lucy deconvolution |
Cstira::deconvolve::TikhonovMillerDeconvolve | Child class for computing Tikhonov-Miller deconvolution Based on implementation of my thesis student Tim Stevens |
Cstira::deconvolve::VanCittertLandweberDeconvolve | Child class for computing Van Cittert or Landweber deconvolution |
Cstira::deconvolve::WienerDeconvolve | Child class for computing wiener deconvolution |
Cstira::filter::DifferenceOfGaussians | Creates a Difference of Gaussians filtered image http://en.wikipedia.org/wiki/Difference_of_Gaussians |
Cstira::imageanalysis::DistanceTransform | Class to compute distance transform based on method below Distance Transforms of Sampled Functions P. Felzenszwalb, D. Huttenlocher Theory of Computing, Vol. 8, No. 19, September 2012 http://cs.brown.edu/~pff/dt/ |
Cstira::imagedata::DistinctColorGenerator | Generate distinct colors for visualization Based on http://stackoverflow.com/questions/309149/generate-distinctly-different-rgb-colors-in-graphs Generates (I, 0, 0), (0, I, 0), (0, 0, I), (I, I, 0), (I, 0, I), (0, I, I) with I 255, 128, 64+0x128=64, 64+1x128=192, 32+0x64=32, 32+1x64=96, 32+2x64=160, 32+3x64=224, .. |
Cstira::common::DrawFigures | A class to draw some simple parametric figure contours |
Cstira::imagetools::DrawImageTools | Class with operations on image objects; This class draws within an existing image without creating a new image object |
CExample | |
Cstira::common::ExecutionTimer | Small timer class to get execution timings of applications Ref: http://osr600doc.sco.com/en/SDK_c++/_Measuring_Program_Execution_Tim.html For windows, this becomes http://www.dreamincode.net/forums/showtopic24685.htm with some code #include <windows.h> // code long int before = GetTickCount(); |
Cstira::fouriertools::FFT | A class to hold spectral bands of an image |
Cstira::fouriertools::FFTBand | Data structure for FFT manipulations |
►Cstira::fouriertools::FFTCalculator | Parent class to compute the Fourier transforms based on several libraries Survey of FFT implementations: http://www.jjj.de/fft/fftpage.html Child classes specifically offer interface to |
Cstira::fouriertools::FFTWCalculator | A class to compute the Fourier transforms based on the FFTW library |
Cstira::fouriertools::KISSFFTCalculator | A class to compute the Fourier transforms based on the KISS FFT library by Mark Borgerding Mark Borgerding wrote all the kiss_fft files Source: http://sourceforge.net/projects/kissfft/ |
Cstira::common::FileAccess | Class to facilitate file access in directories |
Cstira::imageanalysis::FindMaximalIncludedRectangles | Finds maximal rectangles contained in an object Maximal means that the rectangle can not be in its whole part of a larger rectangle Algorithm is from http://www.montefiore.ulg.ac.be/~pierard/rectangles/ |
Cstira::imagetools::FisheyeCorrector | Simple class to correct Fisheye distortion Reference: http://www.tannerhelland.com/4743/simple-algorithm-correcting-lens-distortion/ |
Cstira::common::FitCurve | Class to fit a parametric function to a set of data points For the moment, only linear, quadratic, exponential and polynomial fit are available The polynomial fit uses OpenCV's matrix operations |
CfitRec | |
Cstira::common::FixedBuffer< T > | A class to represent a buffer of fixed size |
Cstira::FlashROF | |
Cstira::imageanalysis::FloodFill | Class that implements a simple flood fill Based on recursive implementation described in http://en.wikipedia.org/wiki/Flood_fill |
Cstira::imagetools::FractalGenerator | Class to generate fractals It can generate the Mandelbrot set and associated Julia sets |
Cstira::imageanalysis::FunctionsOpenCV | |
Cstira::filter::GaussConvolve | Convolves image with Gaussian PSF |
►Cstira::imagetools::GeometricTransform | Geometric parametric transformation of an image |
Cstira::imagetools::AffineTransform | Class to apply affine transform to an image x' = a11 * x + a12 * y + dx y' = a21 * x + a22 * y + dy |
Cstira::imagetools::RigidTransform | Class to apply rigid transform to an image x' = cos(t) * x - sin(t) * y + dx y' = sin(t) * x + cos(t) * y + dy |
Cstira::imagetools::Translation | Class to translate an image |
Cstira::imagetools::GretagMacbethColorChecker | A class for generating the Gretag - Macbeth Color Checker chart References: http://www.rags-int-inc.com/PhotoTechStuff/MacbethTarget/ http://www.brucelindbloom.com/index.html?ColorCheckerRGB.html |
Cstira::imagedata::GridConverter | Class to convert a grid of one data type to another |
Cstira::imagedata::GridExtender< T > | Extends input grid in a user-selected way |
Cstira::imagetools::GridGenerator | Generates different predefined grids |
Cstira::imagedata::GridStatistics< T > | |
Cstira::contrastenhance::HazeRemover | Haze removal from single image Ref: 1) Single Image Haze Removal using Dark Channel Prior Kaiming He, Jian Sun, and Xiaoou Tang IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2009 http://personal.ie.cuhk.edu.hk/~hkm007/ 2) TODO: add matting to refine processing at depth transitions A Closed Form Solution to Natural Image Matting. A. Levin D. Lischinski and Y. Weiss. IEEE Trans. Pattern Analysis and Machine Intelligence, Feb 2008 Current website: http://www.wisdom.weizmann.ac.il/~levina/ Older, with pdf http://people.csail.mit.edu/alevin/papers/Matting-Levin-Lischinski-Weiss-CVPR06.pdf and matlab code http://people.csail.mit.edu/alevin/matting.tar.gz UNDER CONSTRUCTION!! |
ChistList | |
Cstira::histogram::HistogramMaster< T > | Simple histogram class |
►Cstira::histogram::HistogramMaster< double > | |
Cstira::histogram::FloatHistogram | Class for floating point valued histograms E.g. needed to represent an normalized histogram when performing histogram equalization WARNING: currently only works for default case when bin size is 1 |
►Cstira::histogram::HistogramMaster< int > | |
Cstira::histogram::IntHistogram | Simple histogram class WARNING: currently only works for default case when bin size is 1 |
Cstira::contrastenhance::HistogramTools | Class with tools for image intensity remapping using histograms, like histogram matching and histogram equalization |
Cstira::imageanalysis::HOG | Class to compute Image descriptor based on Histogram of Orientated Gradients (HOG) for gray-level images References: - https://software.intel.com/en-us/node/529070 |
Cstira::imageanalysis::HoughTransform | Canny edge detector |
Cstira::imagedata::Image | A class to hold image data. It consists of three things: the actual image data, the corresponding metadata and some operations that can be executed on an image as a whole. The image data arev stored as a vector of ArrayGrids that represent the spectral bands (like red, green, blue, ...) of an image |
Cstira::imagetools::ImageIO | A class to hold spectral bands of an image |
Cstira::imagedata::ImageStatistics | |
Cstira::imagetools::ImageTools | Class with operations on image objects; Each of these operations creates a new image object that the caller becomes responsable for |
Cstira::common::IntensityPoint | |
►Cstira::imagetools::Interpolator | A class for interpolation |
Cstira::imagetools::BicubicInterpolator | Child class for bicubic interpolation Source: http://www.paulinternet.nl/?page=bicubic |
Cstira::imagetools::BilinearInterpolator | Child class for bilinear interpolation Source: http://en.wikipedia.org/wiki/Bilinear_interpolation |
Cstira::imagetools::NearestNeighborInterpolator | Child class for Nearest Neighbor interpolation |
Cstira::histogram::JointHistogram | Conditional or joint histogram class WARNING: currently only works for default case when bin size is 1 |
Ckiss_fft_cpx | |
Ckiss_fft_state | |
Ckiss_fftnd_state | |
Cstira::filter::KuwaharaFilter | Computes Kuwahara filtered image |
Cstira::imagedata::lab_t | Elementary color profile representations In this file, we have a few data structures and a class to represent some elementary color profiles that translate between a machine dependant CMYK space and a device independant Lab space |
Cstira::filter::LaplacianOfGaussianFilter | Creates a Laplacian of Gaussian filtered image |
Cstira::common::LineSegment< T > | A class to represent a 2D line segment by a point couple |
Cstira::filter::LocalBinaryPattern | Computes the Local Binary Pattern operation for each pixel in the image |
Cstira::imagedata::LocalOrientation | A class to contain the local orientation for a certain grid position |
Cstira::filter::LogGabor | Generates Log Gabor filtered image Fourier domain transfer function is implemented in fouriertools/TransferFunctionGenerator Reference: Peter Kovesi: http://www.csse.uwa.edu.au/~pk/Research/MatlabFns/PhaseCongruency/Docs/convexpl.html |
Cstira::imagedata::lut_entry_t | Single entry in a lookup table that translates between a CMYK color and a Lab color |
Cstira::common::MathUtils | A class with some handy mathematical functions |
Cstira::filter::MedianFilter | Class for classical and hybrid median filter |
Cstira::common::MonotonicCubicSplineInterpolator | |
Cstira::imageanalysis::mycomparison< T > | Help class: needed by priority_queue for ordering the elements |
Cstira::imagetools::myMinMax | |
Cstira::common::NeighborPointPair | |
Cstira::wavelet::NoiseEstimator | A class to estimate sigma for white noise with the Mean Absolute Deviation method of Donoho References: - "Ideal spatial adaptation by wavelet shrinkage", D. Donoho and I. Johnstone, Biometrika, 1994, vol. 81, pp. 425–455 (relevant section is on 17th page of the paper, just above section 4.3) |
Cstira::filter::NonLocalMeansFilter | Non-local means filter |
Cstira::filter::NonSeparableFilter | Filters an image using a non-separable filter kernel |
Cstira::imagetools::NumberGridTools< T > | Child class of ArrayGrid in specific case that the template represents numerical values In this case, certain extra operations are possible, like finding min and max, add, multiply, subtract Methods in this class are divided in the following "sections": 0. CONSTRUCT / DESTRUCT |
Cstira::imagedata::OrientationGrid | A data class to hold a grid of local orientations: for each pixel, a local orientation and magnitude are kept from this representation, it should be fairly easy to implement the Hough transform for different parametric models like straight lines and circles: loop over all possible values of the parameter sets for the lines to check a) based on parameters, generate parametric representation of candidate line (circle, curve) b) for all pixels along this line, check if the orientation map (direction/strength) supports the presence of this candidate if yes, add 1 to accumulator for the given parameters |
Cstira::common::PcaResult | Struct to hold results of a PCA analysis of the passed points |
Cstira::imagetools::PerlinNoise | Class to generate clouds of Perlin noise code slightly adapted from code of Isaac McGarvey: http://infohost.nmt.edu/~imcgarve/perlin_noise/ |
Cstira::imageanalysis::PixelElement< T > | Little helper class to compare PixelElement's to order them in the priority queue |
Cstira::common::Point< T > | A class to represent a 2D point |
Cstira::common::Point< double > | |
Cstira::common::Point< int > | |
Cstira::common::pointCluster | Struct to hold results of a single point cluster |
Cstira::common::Polygon | Class that contains a polygon. For us, a polygon is a list of vertices in an stl vector, where the first point equals the last point |
Cstira::imagedata::ProfileCorrect | Experimental class to interpolate CLUTS in ICC color profiles from measured or estimated values |
Cstira::imagedata::ProfileData | Class to manage data in a color profile Basically consists of a color LookUp Table (CLUT) between a device space (A) and an independant space (B) This independant space is usually L*a*b*. In a profile, we usually have two tables: in A2B, the values in the A space are on a regular grid and the corresponding B values usually aren't; in the B2A, the values in the B space are on a regular grid and the corresponding A values usually aren't |
Cstira::imagedata::Pyramid< T > | A data class to contain all subbands of a pyramid decomposition These bands are grouped per resolution level. All bands in one resolution level are grouped in a member class PyramidLevel. So, a pyramid contains a vector of pointers to "PyramidLevel" objects for the recursive scales and an extra pointer to a "PyramidLevel" object for the residual scale (like used in the steerable pyramid, is NULL if no residual scale is used) |
Cstira::imagedata::Pyramid< double > | |
►Cstira::imagedata::Pyramid< std::complex< double > > | |
Cstira::imagedata::CWTPyramid | Special child data class to contain complex-valued lowpass levels for a subsampled complex wavelet transform In essence a container for objects of the class PyramidLevel that contain the actual bands |
Cstira::steerable::PyramidBurtAdelson | Class implementing the Laplacian pyramid accoring to Burt and Adelson |
Cstira::pyramidapplications::PyramidContrastEnhancer | A class to demonstrate simple contrast enhancement The original reference used curvelets, we replaced these by a steerable pyramid Original reference: |
Cstira::pyramidapplications::PyramidDenoiser | A class to demonstrate simple denoising of the bands of a steerable pyramid Reference: "Bivariate Shrinkage Functions for Wavelet-based Image Denoising", Sendur, L. and Selesnick, I., IEEE Transactions on Signal Processing, 50(11):2744-2756, November 2002 |
Cstira::pyramidapplications::PyramidKeyPointDetector | A class to demonstrate simple contrast enhancement using a steerable pyramid reference: |
Cstira::imagedata::PyramidLevel< T > | A class to contain a single level of a pyramid decomposition |
Cstira::imagedata::PyramidLevel< double > | |
Cstira::imagedata::PyramidLevel< std::complex< double > > | |
Cstira::steerable::PyramidMaster< T > | Parent class to compute FFT based real- and complex-valued steerable pyramids (decomposition/reconstruction) |
►Cstira::steerable::PyramidMaster< double > | |
Cstira::steerable::PyramidReal | Child class to compute FFT based real-valued steerable pyramid decomposition/reconstruction Bibtex reference for formulae used here: Formulae used from appendix; main paper is about texture denoising article{ portilla03image, author = {Portilla, J. and Strela, V. and Wainwright, M. and Simoncelli, E.}, title = {Image denoising using scale mixtures of Gaussians in the wavelet domain}, journal = {IEEE Trans. Image Processing}, volume = {12}, number = {11}, pages = {1338–1351} year = {2003}, url = {http://citeseer.ist.psu.edu/article/portilla03image.html} } |
►Cstira::steerable::PyramidMaster< std::complex< double > > | |
Cstira::steerable::PyramidComplex | Child class to compute FFT based complex-valued steerable pyramid decomposition/reconstruction Formulae used from appendix; main paper is about texture modeling |
Cstira::imagetools::PyramidTools | Class with operations on Pyramid objects |
CqParam | |
Cstira::common::QuantileNormalDistribution | Class to check if a histogram follows a normal distribution |
CRandom | |
Cstira::common::RectangularROI< T > | A class to represent a rectangular ROI. The edges of this ROI are parallel with the x and y axes. Here, we consider a closed ROI, i.e., the edge points also belong to the ROI |
Cstira::common::RectangularROI< int > | |
CRegistrationDemon | |
Cstira::registration::RegistrationWrapper | C++ Wrapper for Intramodal registration software from Philippe Thévenaz http://bigwww.epfl.ch/thevenaz/registration/ |
Cstira::contrastenhance::Retinex | Retinex contrast enhancement/color restoration |
CrOper | |
CrParam | |
Cstira::histogram::RunLengthHistogram | Histogram to keep track which values are found over which run lengths Reference: http://www.nlpr.ia.ac.cn/2008papers/gjhy/gh87.pdf http://www.roborealm.com/help/ShapeHistogram.php |
Cstira::filter::SeparableFilter | Filters an image using a separable filter kernel |
Cstira::deconvolve::SimulateDegradation | Class to simulate image degradation, by blurring and applying noise |
Cstira::imageanalysis::SLIC | |
Cstira::histogram::Spatiogram | |
CsphericalCoord | |
Cstira::common::Statistics< T > | Class to compute some simple statistics Note void ProcessArray ( const int * , size_t numInts ) ; can be called directly with an stl vector as follows ProcessArray ( &foo[0], foo.size() ); |
Cstira::imageanalysis::StegerLineDetector | Steger line detector article{ steger98line, author = {Steger, C.}, title = {An unbiased detector of curvilinear structures}, journal = {IEEE Trans. Pattern Analysis and Machine Intelligence}, volume = {20}, number = {2}, pages = {113–125}, month = {February}, year = {1998} } |
Cstira::imageanalysis::StereoMatchDepth | |
Cstira::common::StringUtils | A class with some handy functions to manipulate STL strings |
CSVD | |
Cstira::common::TextFileUtils | A class with some handy functions to manipulate ASCII text files |
Cstira::imagetools::TextureGenerator | Class to generate different kinds of textures code slightly adapted from http://lodev.org/cgtutor/randomnoise.html |
Cstira::imageanalysis::Thinning< T > | Morphological thinning: applies the following set of structure elements; |
Cstira::fouriertools::TransferFunctionGenerator | Generate transfer functions to be applied in the fourier domain |
Cstira::imagedata::TransformColorSpace | Transformations between color spaces |
Cstira::filter::UnsharpMask | Enhances image sharpness by unsharp masking |
Cstira::imageanalysis::WatershedMeyer< T > | Template class for watershed transformations variant of Meyer algorithm, as used in Matlab http://www.mathworks.com/access/helpdesk/help/toolbox/images/watershed.html Meyer, Fernand, "Topographic distance and watershed lines," Signal Processing , Vol. 38, July 1994, pp. 113-125 Alternative watershed algorithms with source code can be found on http://www.esiee.fr/~info/tw/ |
Cstira::imageanalysis::WatershedToboggan | Watershed segmentation immersion according to Lin et al (Algorithm 1), as described in article{ lin06toboggan, author = {Yung-Chieh Lin, Yu-Pao Tsai, Yi-Ping Hung, and Zen-Chung Shih.}, title = {Comparison Between Immersion-Based and Toboggan-Based Watershed Image Segmentation}, journal = {IEEE Trans. Image Processing}, volume = {15}, number = {3}, pages = {632–640}, year = {2006} } http://ippr.csie.ntu.edu.tw |
►Cstira::wavelet::Wavelet | Parent class to compute wavelet decomposition / reconstruction For the moment just a fast Haar wavelet is available. Fast in the sense that the downsampling and upsampling are directly integrated in the computations and that no unnecessary coefficients are computed that are removed by the subsampling |
Cstira::wavelet::CriticallySubsampledTransform | Parent class to compute redundant, non-subsampled wavelet decomposition / reconstruction |
Cstira::wavelet::NonSubsampledTransform | Computes orthogonal redundant (i.e., non-subsampled) wavelet decomposition / reconstruction This class implements the a-trous algorithm of Mallat |
Cstira::wavelet::SubsampledTransform | |
Cstira::wavelet::WaveletFilterSet | Struct containing filter taps needed for analysis and reconstruction |
Cstira::wavelet::WaveletTapGenerator | Wavelet tap set factory Generates a set of decomposition/reconstruction filter taps for the type of wavelet specified |