HarmonicMeanFilter[data,r]
filters data by replacing every value by the harmonic mean value in its range-r neighborhood.
HarmonicMeanFilter[data,{r1,r2,…}]
uses ri for filtering the ![]()
dimension in data.
HarmonicMeanFilter
HarmonicMeanFilter[data,r]
filters data by replacing every value by the harmonic mean value in its range-r neighborhood.
HarmonicMeanFilter[data,{r1,r2,…}]
uses ri for filtering the ![]()
dimension in data.
Details
- HarmonicMeanFilter is used to locally smooth data, particularly when extreme values are present, where the amount of smoothing is dependent on the value of r.
- The function applied to each range-r neighborhood is HarmonicMean.
- The data can be any of the following:
-
list arbitrary-rank numerical array tseries temporal data such as TimeSeries, TemporalData, … image arbitrary Image or Image3D object audio an Audio object video a Video object - For multichannel images and audio signals, HarmonicMeanFilter operates separately on each channel.
- HarmonicMeanFilter[data,{r1,r2,…}] computes the harmonic mean value in
blocks centered on each sample. - HarmonicMeanFilter assumes the index coordinate system for lists and images.
- At the data boundaries, HarmonicMeanFilter uses smaller neighborhoods.
Examples
open all close allBasic Examples (3)
Harmonic mean filtering of a list:
HarmonicMeanFilter[{1, 2, 30, 2, 1}, 1]Filter a TimeSeries:
ts = TemporalData[TimeSeries, {{{2., 1.7273273294285436, 1.3327016210004698, 1.4661458052069154,
1.3882595510720686, 1.3244472923404507, 1.978745787055135, 1.8920720270815607,
1.386172876452206, 1.6751431393445424, 1.9115655094508386, 1.720406 ... 346095457946575, 1.5001955930812627, 1.461132021178403, 1.589839723535445}},
{{0, 1., 0.01}}, 1, {"Continuous", 1}, {"Continuous", 1}, 1,
{ValueDimensions -> 1, ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, False,
10.1];filtered = HarmonicMeanFilter[ts, .05]ListLinePlot[{ts, filtered}, PlotLegends -> {"original data", "filtered"}]Harmonic mean filtering applied to a color image:
HarmonicMeanFilter[[image], 4]Scope (13)
Data (9)
Apply a moving harmonic mean filter to a vector:
HarmonicMeanFilter[ {1, 2, 3, 4, 5}, 1]HarmonicMeanFilter[{a, b, c, d, e, f}, 1]HarmonicMeanFilter[(| | | | |
| - | - | - | - |
| 0 | 3 | 8 | 2 |
| 7 | 6 | 9 | 6 |
| 5 | 8 | 4 | 1 |
| 3 | 5 | 1 | 6 |), 1]//MatrixFormFilter a TimeSeries:
ts = TemporalData[TimeSeries, {{{2., 1.7273273294285436, 1.3327016210004698, 1.4661458052069154,
1.3882595510720686, 1.3244472923404507, 1.978745787055135, 1.8920720270815607,
1.386172876452206, 1.6751431393445424, 1.9115655094508386, 1.720406 ... 346095457946575, 1.5001955930812627, 1.461132021178403, 1.589839723535445}},
{{0, 1., 0.01}}, 1, {"Continuous", 1}, {"Continuous", 1}, 1,
{ValueDimensions -> 1, ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, False,
10.1];filtered = HarmonicMeanFilter[ts, .1]ListLinePlot[{ts, filtered}, PlotLegends -> {"original data", "filtered"}]data = Quantity[RandomReal[1, 8], "Meters"];
filtered = HarmonicMeanFilter[data, 1]Filter an Audio signal:
a = Import["ExampleData/rule30.wav"];b = HarmonicMeanFilter[a, 15]AudioPlot[{a, b}]Filtering a 2D grayscale image:
HarmonicMeanFilter[[image], 3]HarmonicMeanFilter[Video["ExampleData/fish.mp4"], 5]Harmonic mean filtering of a 3D volume:
HarmonicMeanFilter[[image], 3]Parameters (4)
Specify one radius to be used in all directions:
HarmonicMeanFilter[[image], 3]Increasing the radius will result in smoother images:
Table[Labeled[HarmonicMeanFilter[[image], r], Text["*r* = " <> ToString@r]], {r, {1, 3, 6}}]Harmonic mean filtering just in the first direction:
HarmonicMeanFilter[[image], {5, 0}]HarmonicMeanFilter[[image], {0, 5}]Harmonic mean filtering of a 3D image in the vertical direction only:
HarmonicMeanFilter[[image], {4, 0, 0}]Filtering of the horizontal planes only:
HarmonicMeanFilter[[image], {0, 4, 4}]Applications (3)
HarmonicMeanFilter[[image], 4]Use harmonic mean filtering if your data has outliers:
HarmonicMeanFilter[{1, 2, 3, 4, 100, 6, 7, 8, 9}, 1]ListLinePlot[%, PlotRange -> All]Reduce effect of outliers in an image:
HarmonicMeanFilter[[image], 1]Properties & Relations (4)
The harmonic mean is the reciprocal of the mean of reciprocals of the given data:
x = {1, 2, 3, 4, 5};
HarmonicMeanFilter[x, 1] == (1/MeanFilter[(1/x), 1])For positive data, HarmonicMeanFilter[data,r]≤GeometricMeanFilter[data,r]≤MeanFilter[data,r]:
data = RandomReal[1, 50];
ListLinePlot[{MeanFilter[data, 5], GeometricMeanFilter[data, 5], HarmonicMeanFilter[data, 5]}, PlotRange -> {0, 1}, PlotLegends -> {"mean", "geometric mean", "harmonic mean"}]Harmonic mean filtering is the same as ArrayFilter with function HarmonicMean:
r = 1;
x = {1, 2, -1, 1, 2, 3, 1, -1, 3, 1};
ArrayFilter[HarmonicMean[Flatten[#]]&, x, r, Padding -> None] == HarmonicMeanFilter[x, r][[r + 1 ;; -r - 1]]Harmonic mean filtering is the same as ImageFilter with function HarmonicMean:
ImageCrop[HarmonicMeanFilter[[image], 1], 3] == ImageCrop[ImageFilter[HarmonicMean[Flatten[#]]&, [image], 1], 3]Related Guides
History
Introduced in 2008 (7.0) | Updated in 2015 (10.2) ▪ 2016 (11.0) ▪ 2025 (14.3)
Text
Wolfram Research (2008), HarmonicMeanFilter, Wolfram Language function, https://reference.wolfram.com/language/ref/HarmonicMeanFilter.html (updated 2025).
CMS
Wolfram Language. 2008. "HarmonicMeanFilter." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/HarmonicMeanFilter.html.
APA
Wolfram Language. (2008). HarmonicMeanFilter. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/HarmonicMeanFilter.html
BibTeX
@misc{reference.wolfram_2026_harmonicmeanfilter, author="Wolfram Research", title="{HarmonicMeanFilter}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/HarmonicMeanFilter.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_harmonicmeanfilter, organization={Wolfram Research}, title={HarmonicMeanFilter}, year={2025}, url={https://reference.wolfram.com/language/ref/HarmonicMeanFilter.html}, note=[Accessed: 13-June-2026]}