In mathematics, the Lehmer mean of a tuple of positive real numbers, named after Derrick Henry Lehmer,[1] is defined as:

The weighted Lehmer mean with respect to a tuple of positive weights is defined as:

The Lehmer mean is an alternative to power means for interpolating between minimum and maximum via arithmetic mean and harmonic mean.


The derivative of is non-negative

thus this function is monotonic and the inequality


The derivative of the weighted Lehmer mean is:

Special cases


Signal processing

Like a power mean, a Lehmer mean serves a non-linear moving average which is shifted towards small signal values for small and emphasizes big signal values for big . Given an efficient implementation of a moving arithmetic mean called smooth you can implement a moving Lehmer mean according to the following Haskell code.

lehmerSmooth :: Floating a => ([a] -> [a]) -> a -> [a] -> [a]
lehmerSmooth smooth p xs =
    zipWith (/)
            (smooth (map (**p) xs))
            (smooth (map (**(p-1)) xs))

Gonzalez and Woods call this a "contraharmonic mean filter" described for varying values of p (however, as above, the contraharmonic mean can refer to the specific case ). Their convention is to substitute p with the order of the filter Q:

Q=0 is the arithmetic mean. Positive Q can reduce pepper noise and negative Q can reduce salt noise.[2]

See also


  1. ^ P. S. Bullen. Handbook of means and their inequalities. Springer, 1987.
  2. ^ Gonzalez, Rafael C.; Woods, Richard E. (2008). "Chapter 5 Image Restoration and Reconstruction". Digital Image Processing (3 ed.). Prentice Hall. ISBN 9780131687288.