Speckle filtering is usually needed in areas where surfaces are outside the matching range. In these regions, stereo matching will usually produce very small, incorrectly triangulated patches. This is due to ambiguous texture which cannot be associated correctly between the left and right camera, if the specified disparity depth range prevents the search in the correctly matching areas. The subnodes of this node allow to control the removal of such speckle regions.



A parameter sub tree. Please refer to the description of the sub nodes for further information.


Setting RegionSize to 0 disables the speckle filter.

Working Principle

Speckle filtering is performed in two passes:

  1. Separate disparity map into regions. A region ends at invalid pixels, or at depth discontinuities larger than ComponentThreshold, specified in disparities.

  2. Remove regions whose area (measured in pixels) is smaller than RegionSize. Pixels of removed regions will be set to invalid.


Depth image without speckle filter. Some regions as they may result from step (1) are marked in black:


Depth image with speckle filter applied. Small, detached regions have been removed, as well as some larger areas that have been cut into multiple regions by step (1).