Added parts of my developments to the vigra Computer Vision library. 1. A local filter function environment, which can be used to apply any given filter function on a complete image. Like convolveImage, this environment also supports correct border handling at the image boundaries. To demonstrate the use, I added a generic median filter and some filters for speckle removal as well. 2. A Coherence Enhancing Shock Filter as proposed by J. Weickert 2002. 3. A correlation environment, which provides traditional correlation approaches using sliding windows as well as FFT powered fast versions of the cross-correlation as well as the normalized cross-correlation according to J.P. Lewis 1995. All components are tested - tests are supplied by means of vigra tests. And they are all documented by means of doxygen comments. All callable algorithms provide the new MultiArrayView calling mechanisms as well as the good old image iterators.
Merge branch 'master' of https://github.com/BSeppke/vigra into bseppke
added missing #include
fixed a few warnings
replaced tabs with 4 spaces
added a correlationFFT prototype and calling functions according to the convolveFFT environment.
re-factored the correlation framework, so that the pure correlation itself is implemented by means of an FFTW-Plan like it has already been demonstrated for the convolution. Adapted the tests and the normalized correlation variant to use the new functionality and added zero padding features to the functions.
removed erroneous multi_math namespace for the conj function. This might have caused automatic compilation errors for Travis. But worked for me on mac...
enabled initMultiArrayBorder() to handle asymmetric borders
introduced VIGRA_SINGLE_THREADED preprocessor flag
made FFTWPlan initialization threaded-safe; refactored FFTWCorrelatePlan and correlateFFT()
replaced detail::setZeroBorders() with initMultiArrayBorder()
removed erroneous multi_math namespace for the conj function. This might have caused automatic compilation errors for Travis. Now, with the correct calling syntax and the multi_math namespace usage before each calling, it will work
cmake: improved configuration of multi-threaded programs
updated files according to the vigra repo
Replaced the std::sort by faster std::nth_element for the median filter. Also did major work on the fast normalized cross-correlation algorithm. It now uses the vigra IntegralImage creation facilities and became much more generic. At least it should work for images/arrays with 1,2 or 3 dimensions. Higher dimensions may be added with a smarter accessor function to the integral images. These are currently hard coded for 1,2 and 3-dimensional arrays. And the best... all test are still running.
fixed rounding of mask radius